Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| ''';''' (точка с запятой) — стандартное слово [[Каллисто]]. | | ''';''' — стандартное слово [[Каллисто]]. |
| ; ( −− ) Закончить определение через двоеточие.
| | |
| [[Файл:CallistoSave.png|thumb|right|264px|Пример работы слова ;]]
| | Закончить определение через двоеточие. |
| Слово ; завершает [[Слово :|определение через двоеточие]].
| |
|
| |
|
| == Ввод слова ; ==
| |
| В [[Режим NUM|режиме NUM]] нажмите [[Клавиша С/П|чёрную клавишу {{Чёрная клавиша|С/П}}]]
| |
|
| |
|
| == ; в стандарте ANS Forth == | | == ; в стандарте ANS Forth == |
| <PRE>
| |
| 6.1.0460 ; "semicolon" CORE | | 6.1.0460 ; "semicolon" CORE |
| Интерпретация: Семантика интерпретации для этого слова не определена. | | Интерпретация: Семантика интерпретации для этого слова не определена. |
Строка 35: |
Строка 31: |
| определить, действительно ли должно быть предпринято какое либо действие, чтобы | | определить, действительно ли должно быть предпринято какое либо действие, чтобы |
| позволить ему быть найденным. | | позволить ему быть найденным. |
| </PRE>
| |
|
| |
| == История ==
| |
| Слово ; является одним из самых древних сохранившихся слов Форта.
| |
|
| |
| Впервые оно появилось в 1964 году под именем END в программе CURVE (по информации из журнала «Байт» за август 1980 года, стр. 76 она называлась TRANSPORT), написанной Чак Муром на Алголе для Burroughs B5500 ([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 Стэнфордский университет]), где означало остановку интерпретации сохранённого определения.
| |
|
| |
|
| Вот пример одного из ранних (1970 год) определений слова Чаком Муром для 2К×48бит версии Форта на Burroughs B-5500, которое выглядит, как современное:
| |
| : SHIFT -1 @T 0 -3 =T ;
| |
|
| |
|
| Хотя из {{colorForth}} убрано двоеточие в пользу кодирования определяемого слова красным цветом, слово ; сохранено. Его использование необязательно — при его отсутствии управление передаётся следующему определяемому слову.
| | == ; в предыдущем стандарте Forth-83 (англ.) == |
| | |
| === ; в предыдущем стандарте Forth-83 (англ.) ===
| |
| ; -- C,I,79 "semi-colon" | | ; -- C,I,79 "semi-colon" |
| sys -- (compiling) | | sys -- (compiling) |
Строка 57: |
Строка 43: |
| return" "9.4 Compilation" | | return" "9.4 Compilation" |
|
| |
|
| === ; в стандарте Forth-79 (англ.) ===
| | |
| | == ; в стандарте Forth-79 (англ.) == |
| ; I,C,196 "semi-colon" | | ; I,C,196 "semi-colon" |
| Terminate a colon definition and stop compilation. If | | Terminate a colon definition and stop compilation. If |
Строка 63: |
Строка 50: |
| before encountering ; an error condition exists. | | before encountering ; an error condition exists. |
|
| |
|
| === ; в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
| |
| ; P,C,L0
| |
| Terminate a colon-definition and stop further compilation. Compiles
| |
| the run-time ;S.
| |
|
| |
| == Реализация ==
| |
| <pre>
| |
| 2510 ;#Semi
| |
| 2511 ; ; I ( −− ) Закончить определение через двоеточие.
| |
| 2512 LSMI: .DB 81H
| |
| 2513 .DB 3BH ; ";"
| |
| 2514 .DW LCOLON
| |
| 2515 SMI: .DW CALL, QCSP, COMP,EXIT, SMUG, LBRAC, EXIT
| |
| </pre>
| |
|
| |
| В 11-й главе американского [http://www.forth.com/starting-forth/sf11/sf11.html Starting FORTH] ''(англ.)'' слово ; определяется через POSTPONE
| |
|
| |
| Вот это определение:
| |
| : ; POSTPONE EXIT SMUDGE POSTPONE [ ; IMMEDIATE
| |
| Реализации из SP-Forth 4.20:
| |
| <pre>
| |
| : ; ( -- )
| |
| RET, [COMPILE] [ SMUDGE
| |
| ClearJpBuff
| |
| 0 TO LAST-NON
| |
| ; IMMEDIATE
| |
| </pre>
| |
| <pre>
| |
| C" SHERE-TAB-CUR" FIND NIP
| |
| [IF]
| |
| : ; PREVIOUS
| |
| ?SET SetOP POSTPONE ; [I] OPT OPT_CLOSE
| |
| DP @ SHERE-TAB-CUR @ CELL- ! ; IMMEDIATE
| |
| [ELSE]
| |
| : ; PREVIOUS
| |
| ?SET SetOP POSTPONE ; [I] OPT OPT_CLOSE ; IMMEDIATE
| |
| [THEN]
| |
| </pre>
| |
|
| |
| === Советская реализация ===
| |
| Юрий Семёнов приводит следующее определение слова ; (стр. 138):
| |
| : ; ?CSP COMPILE EXIT ( завершает описание слова, записав в
| |
| PFA нового слова ссылку на оператор EXIT)
| |
| SMUDGE [ ; IMMEDIATE
| |
|
| |
| У Баранова-Ноздрунова определение слова ; выглядит так (стр. 69):
| |
| : ; ( ---> ) COMPILE EXIT [COMPILE] [ ;
| |
| IMMEDIATE
| |
|
| |
| Описание и определение слова ; в ядре ФОРТ-ЕС:
| |
| <PRE>
| |
| ; HK -> ЗАКОНЧИТЬ ОПРЕДЕЛЕНИЕ ЧЕРЕЗ ДВОЕТОЧИЕ 32
| |
|
| |
| Экран номер 32
| |
| ( 31.03.86 CONSTANT VARIABLE 2CONSTANT 2VARIABLE : ; )
| |
|
| |
| : ; ( -> ) ?CSP COMPILE EXIT UNSMUDGE [COMPILE] [ ; IMMEDIATE
| |
| </PRE>
| |
| Определение слова ; в FORTH ИТЭФ:
| |
| <PRE>
| |
| HEAD 301Q,,273Q,SMI,$COL ; ;
| |
| DW QCSP,COMP,SEMI,SMUG,LBRAC,SEMI
| |
| </PRE>
| |
|
| |
|
| == Ссылки == | | == Ссылки == |
| * {{Исходник|Semi|;}} | | * [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0460 Слово ; (semicolon) в стандарте ANS Forth] ''(англ.)'' и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.0460 комментарии к нему] ''(англ.)'' |
| * См. [[слово :]] и [[Символ с кодом 59|символ ';']]
| | * [http://www.forth200x.org/documents/html/core.html#core:; Слово ; (semicolon) в черновике Forth 200x] ''(англ.)'' и [http://www.forth200x.org/documents/html/rationale.html#rat:core:; комментарий к нему] ''(англ.)'' |
| * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0460 ; (semicolon)] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.0460 комментарии к нему] в стандарте ANS Forth ''(англ.)''
| |
| * Слово [http://forth-standard.org/standard/core/Semi ; (semicolon)] и [http://forth-standard.org/standard/rationale#rat:core:; комментарий к нему] в черновике Forth 200x ''(англ.)'' | |
| * [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://www.forth.com/starting-forth/sf1/sf1.html Fundamental Forth] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
| |
| * [http://www.forth.com/starting-forth/sf11/sf11.html Extending the Compiler] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
| |
|
| |
|
|
| |
|
| | {{нет иллюстраций}} |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Слова высокого уровня]]
| |
| [[Категория:Слова с признаком IMMEDIATE]]
| |
| [[Категория:Компилирующие слова]]
| |
| [[Категория:Стандартные слова]]
| |
| [[Категория:1994 CORE]]
| |
| [[Категория:2012 CORE]]
| |