Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср апр 24, 2024 00:01

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 225 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Пн фев 20, 2012 19:15 
вопрос писал(а):
gudleifr писал(а):
Если он настраивает, то это его функция, до обсуждения которой мы еще не дошли...

Если классификация полна, то её нужно использовать далее, если неполна - это проявится только во время использования


Использовать для чего? для реверса, для попытки запустить
код на всякой "экзотике", рассмотреть объектный, функциональный, декларативный подходы к кодированию?
Глобально заморочится? Обеспечить "долгую" жизнь созданного
кода?

P.S. Пока на Форте не пишутся востребованные программы, вся
эта классификация мало существенна. Создали например AI Mind
Forth и появились варианты переноса его в "инородную" среду Java-машины.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Пн фев 20, 2012 19:49 
`Kopa писал(а):
Использовать для чего?
Пардон, это моя вина. У меня эта тема слилась с "Разработкой сверху-вниз".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 11:46 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
gudleifr писал(а):
Начала формализмов

Ждём продолжения


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 14:14 
... вернемся к коду.
Поэтому, "слово", это - не статья, не определение или что-то подобное. "Слово", это - действие. Выполнение кода, расположенного по конкретному адресу. Конечно, от прочтения слова во входном потоке до его исполнения проходит целая цепочка событий. Например исполнение слова может быть отложено до лучшего времени (в режиме компиляции). Однако, важно для нас одно: одно слово - одно действие.
Векторные слова и похожие случаи? Это не изменение свойств самого слова - это использование слов, распознающих стоящие за ними слова нетрадиционным способом.
Тоже касается слов, имеющих действия и в контексте исполнения, и в контексте компиляции. Они сами обязаны позаботится о том, в каком контексте находятся, т.е. разделение их действия на два происходит внутри самого действия.
Т.е. важнейшее качество Forth: одно слово - одно действие - один адрес (CFA).
(Примечание. Возникает вопрос. Прерывание цепочки "распознавание потока - исполнение слова" возможно самыми разнообразными способами. Все ли они необходимы? Ведь обходимся мы же всего двумя режимами - компиляции и исполнения).
Вывод о независимости слова от его определения-представления позволяет нам, буквально, расслабиться. Снимается куча проблем. Ведь, в нашей системе есть слова, не имеющие определений, которые мы зафигачили в шитый код еще до того, как заработал интерпретатор. И шитый код "в чистом виде" - лишь абстракция. Что общего в прошивке слова при помощи CODE , "двоеточие" , CREATE , CONSTANT , NONAME ..? Скорее, набор финтов, чем единая схема. Оказывается, это не досадные недоразумения, а Forth-закон: "Плевать, как определено и реализовано слово, главное, оно работает". Ведь, бывают даже слова без имени, или слова с одинаковыми именами.
(Примечание. В связи со словом "слово" некоторые любят употреблять слова "лексема" и "токен". Т.к. речь идет о языке программирования, то эти термины имеют вполне определенный смысл. Лексема - очередной кусок текста, распознанный по правилам лексического анализа. Т.е. обычно лексема у нас только одна - "набор непробельных символов". Токен - конкретная распознанная лексема (нашедшая свое место в грамматическом разборе). Т.е. обычно токен тоже только один - "очередное имя". Самый подходящий термин в этом случае - "символ". Не в смысле "буква" или "иероглиф", а в смысле атомарная графема, служащая для распознавания).


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 14:24 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
В основе форта - безымянные слова 8)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 15:05 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
gudleifr писал(а):
... вернемся к коду.

Все это справедливо только для определенного стандартного исходного форта(например, с набором слов по ANSI-94).

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 15:14 
chess писал(а):
Все это справедливо только для определенного стандартного исходного форта...
В смысле? А, впрочем, лучше не отвечайте.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 15:48 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Т.е. важнейшее качество Forth: одно слово - одно действие - один адрес (CFA).

Вот, как бы, не всегда, см. QUAN и VARIABLE слова.
gudleifr писал(а):
Ведь, бывают даже слова без имени, или слова с одинаковыми именами.
)
А так же неисполнимые слова (которые нельзя называть вслух :)) ) я про R> >R RDROP и им подобные.
а так же слова с разными именами, но одинаковым кодом и данными: ALIAS

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 16:04 
mOleg писал(а):
Вот, как бы, не всегда, см. QUAN и VARIABLE слова.
Прошу разъяснить. Про QUAN ничего не слышал. А VARIABLE слово вполне в этом смысле понятное. выполняет всегда одну ф-ию - возвращает адрес. Или Вы имеете в виду конструкцию вроде TO <var>? Но здесь, <var> не работает, работает TO . Короче, не понял. Прошу объясмнить.
mOleg писал(а):
А так же неисполнимые слова (которые нельзя называть вслух :)) ) я про R> >R RDROP и им подобные.
Опять не понял. Обычные CODE-слова. Опять прошу пояснить.
mOleg писал(а):
а так же слова с разными именами, но одинаковым кодом и данными: ALIAS
А вот это точно не верно. В подобных случаях мы имеем либо две ссылки на один код, либо два одинаковых участка кода. И в том, и в другом случае, действия формально разные. Например, пусть слово A делает "B". А C - алиас A. Значит C делает "то же, что и А", а совсем не "B".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 16:27 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Прошу разъяснить. Про QUAN ничего не слышал. А VARIABLE слово вполне в этом смысле понятное. выполняет всегда одну ф-ию - возвращает адрес. Или Вы имеете в виду конструкцию вроде TO <var>? Но здесь, <var> не работает, работает TO . Короче, не понял. Прошу объясмнить.

да, пардон, я имел ввиду VALUE а не VARIABLE. QUAN - это устаревшее название по сути VALUE. В коде оно выглядит, к примеру в так:
Код:
: VALUE ( x / name --> )
        HEADER
          COMPILE (value)
          COMPILE (store)
          COMPILE (CREATE)
          A,
        ;CREATE ;


gudleifr писал(а):
Опять не понял. Обычные CODE-слова. Опять прошу пояснить.

ну нельзя их исполнять, можно только компилировать. Исполнение может привести к краху системы.

gudleifr писал(а):
В подобных случаях мы имеем либо две ссылки на один код, либо два одинаковых участка кода.

эм, есть два слова, к примеру:
: xxx ." xxx" ;
ALIAS xxx yyy
при исполнении ALIAS будет создано не новое определение, а лишь новое имя (т.е. поле связи + поле флагов + поле имени -- именно они и будут отличаться, в то время как CFA+PFA будут общие)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 16:44 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Форт допускает метапрограммирование. Грубо говоря позволяет работать с кодом как с данными. Поэтому код,
который сам себя модифицирует в порядке вещей. И хотя адрес у него будет один и тот-же, но действие будет разным, в зависимости например от количества его вызовов или .. придумайте сами.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 16:49 
mOleg писал(а):
я имел ввиду VALUE а не VARIABLE...
Тогда, речь идет о том, что действие VALUE-слова - выдача значения (оно одно-единственное). Слово же TO способно "выжать" из переменной еще кое-что - адрес, куда надо зафигачить значение (или кусок кода, который это делает). Это - единственное действие слова TO .
mOleg писал(а):
ну нельзя их исполнять, можно только компилировать. Исполнение может привести к краху системы.
Исполнение на этапе компиляции, ну и что? Главное, что они производят действие, а не то, что это может кому-то навредить.
mOleg писал(а):
: xxx ." xxx" ;
ALIAS xxx yyy
при исполнении ALIAS будет создано не новое определение, а лишь новое имя
Именно, т.о. мы имеем два совершенно разных действия. См. пред. пост. Конечно, использование ALIAS трудно оправдать, но, по крайней мере, например, в ситуации, когда он сохраняет переопределяемое слово, нас интересует, не что конкретно делает C, но то, что оно целиком эмулирует нужное кому-то слово A, символ которого нам понадобился для другого слова.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 16:53 
chess писал(а):
И хотя адрес у него будет один и тот-же, но действие будет разным, в зависимости например от количества его вызовов или ..
А Вам не приходило в голову, что это и есть его действие? Например, когда Вы говорите: "Собеседник мне возражает",- Вы совсем не утверждаете, что он всегда кричит: "Сам дурак!"


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 17:06 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
gudleifr писал(а):
Тогда, речь идет о том, что действие VALUE-слова - выдача значения (оно одно-единственное). Слово же TO способно "выжать" из переменной еще кое-что - адрес, куда надо зафигачить значение (или кусок кода, который это делает). Это - единственное действие слова TO .

не обязательно так, см те же недавно обсуждавшиеся Триггеры. (кстати, я там мог использовать ALIASы вместо TOGGLE и CHECK.
Таким образом, поведение TO и FROM меняется в зависимости от того, с каким словом они используются (хотя возможна реализация TO без такого финта, но эта самая возможность не отменяет другую, использованную возможность).

gudleifr писал(а):
Исполнение на этапе компиляции, ну и что? Главное, что они производят действие, а не то, что это может кому-то навредить.

Нету исполнения на этапе компиляции, в том-то все и дело. Слово действительно непроизносимо само по себе 8)

gudleifr писал(а):
Именно, т.о. мы имеем два совершенно разных действия.

ну почему же? действия, связанные с обоими именами одинаковы, только имена разные.
gudleifr писал(а):
Конечно, использование ALIAS трудно оправдать, но, по крайней мере, например, в ситуации, когда он сохраняет переопределяемое слово

бррь, почему же трудно оправдать?
Я использую его, когда надо создать удачную синтаксическую конструкцию, т.е. сочетание слов, не режущее глаза.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт - словарик
СообщениеДобавлено: Вт фев 21, 2012 17:30 
mOleg писал(а):
Таким образом, поведение TO и FROM меняется в зависимости от того, с каким словом они используются
Никоим образом, их действие всегда одинаково - (в худшем случае) выполнить код, лежащий в следующем слове в определенном месте.
mOleg писал(а):
Нету исполнения на этапе компиляции, в том-то все и дело.
Возможно, мы определим это позже по-строже. Но факт остается фактом, в зависимости от настроения INTERPRET либо разрешает слову действовать, либо откладывает его до лучших времен. Если же слово наглое, IMMEDIATE обязано его выполнить.
mOleg писал(а):
ну почему же? действия, связанные с обоими именами одинаковы
Кто сказал, что "копать" и "делать то же, что и Петя" - одинаковые действия?
mOleg писал(а):
бррь, почему же трудно оправдать [ALIAS]?
Потому, что смена символа всегда чревата последствиями. Вот, "перевели" слово "бизнесмен", не как положено - "деляга", а как "деловой человек", так половину словаря менять пришлось. Где например такие чудесные и емкие слова, как "нажива", "спекулянт"?


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 225 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 15  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB