Редактирование: INTERPRET
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
'''INTERPRET''' (интерпретировать) — | '''INTERPRET''' (интерпретировать) — стандартное слово [[Каллисто]]. Текстовый интерпретатор. | ||
Интерпретирует последовательность слов, пока | Интерпретирует последовательность слов, пока там что-то есть. | ||
== Ввод слова INTERPRET == | == Ввод слова INTERPRET == | ||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша 2|{{Серая клавиша|2}}]] | В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша 2|{{Серая клавиша|2}}]] | ||
== INTERPRET в предыдущем стандарте Forth-83 (англ.) == | |||
INTERPRET -- M,83 | INTERPRET -- M,83 | ||
Begin text interpretation at the character indexed by the | Begin text interpretation at the character indexed by the | ||
Строка 31: | Строка 14: | ||
buffer. See: "input stream" | buffer. See: "input stream" | ||
== INTERPRET в стандарте Forth-79 (англ.) == | |||
INTERPRET | INTERPRET | ||
Begin interpretation at the character indexed by the contents | Begin interpretation at the character indexed by the contents | ||
Строка 39: | Строка 22: | ||
buffer. | buffer. | ||
== INTERPRET в fig-FORTH Release 1 glossary, май 1979 (англ.) == | |||
INTERPRET | INTERPRET | ||
The outer text interpreter which sequentially executes or compiles | The outer text interpreter which sequentially executes or compiles | ||
Строка 53: | Строка 36: | ||
See NUMBER. | See NUMBER. | ||
== | == История == | ||
Слово INTERPRET появилось в 1958 году в самой первой версии интерпретатора Форта, написанного Чак Муром на Фортране для IBM EDPM 704 для [https://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B8%D1%82%D1%81%D0%BE%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F_%D0%B0%D1%81%D1%82%D1%80%D0%BE%D1%84%D0%B8%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D1%81%D0%B5%D1%80%D0%B2%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D1%8F САО]. Тогда оно ещё не называлось INTERPRET, так в то время команды Форта кодировались числами. | |||
INTERPRET использовал [[WORD]], чтобы считывать слова, разделённые пробелами и [[NUMBER]] для оцифровки слов, в данном случае чисел с плавающей запятой. Подобный ввод в свободном формате был необычен для того времени, но более эффективным (компактней и быстрее) и надёжным. Фортрановский ввод был отформатирован в конкретные колонки и ошибки набора приводили к многочисленным задержкам. | |||
Этот интерпретатор использовал закодированную на Фортране конструкцию IF … ELSE IF, в поисках совпадения одного символа. | |||
В программе CURVE, написанной Чак Муром для Burroughs B5500 в 1964 году ([https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%83%D1%81%D0%BA%D0%BE%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BB%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D1%8F_SLAC Национальная ускорительная лаборатория SLAC], [https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%8D%D0%BD%D1%84%D0%BE%D1%80%D0%B4%D1%81%D0%BA%D0%B8%D0%B9_%D1%83%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%82%D0%B5%D1%82 Стэнфордский университет]), интерпретатор на Алголе с помощью IF… ELSE IF разбивал входной поток на 6-символьные входные слова, называвшиеся ATOM (из Лиспа). | |||
В 1966 году Чак Мур, будучи гуру MCP на 5500, работал в Realtime Systems, Inc (RSI). В то время интерпретатор принимал слова, первые 6 символов которого были значащими, так как размер слова 5500 составлял 48 бит. | |||
: INTERPRET | В 1968 году Чак Мур работал в Mohasco Industries, Inc ([https://en.wikipedia.org/wiki/Amsterdam_%28city%29,_New_York Amsterdam NY], ''англ.''). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово INTERPRET под именем QUERY | ||
== | В 1994 году стандарт ANS заменил слово INTERPRET на EVALUATE | ||
Юрий Семёнов приводит следующее | |||
Иногда текстовый интерпретатор называют «внешним» (''англ.'' outer) интерпретатором, в противоположность [[Адресный интерпретатор|адресному («внутреннему») интерпретатору]]. | |||
== Реализация INTERPRET == | |||
Юрий Семёнов приводит следующее описание слова INTERPRET (стр. 140): | |||
: INTERPRET BEGIN ( начало бесконечного цикла) | : INTERPRET BEGIN ( начало бесконечного цикла) | ||
FINDN ( поиск очередного имени в словаре) | FINDN ( поиск очередного имени в словаре) | ||
Строка 157: | Строка 93: | ||
ELSE DROP [COMPILE] LITERAL THEN | ELSE DROP [COMPILE] LITERAL THEN | ||
THEN AGAIN ; | THEN AGAIN ; | ||
== Ссылки == | == Ссылки == | ||
* | * [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\01.OSNOWY%20FORTA ОСНОВЫ ФОРТА] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | ||
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\09.FUNKZIONIROWANIE%20FORT-SISTEMY ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | |||
Строка 193: | Строка 104: | ||
[[Категория:Слова высокого уровня]] | [[Категория:Слова высокого уровня]] | ||
[[Категория:Интерпретация входного потока Каллисто]] | [[Категория:Интерпретация входного потока Каллисто]] | ||
[[Категория:Слова | [[Категория:Слова Каллисто без стековых диаграмм]] | ||