Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''(''' (скобка, открывающая круглая скобка) — стандартное слово [[Каллисто]]. Комментарий — пропустить следующий текст до [[Символ с кодом 41|закрывающей круглой скобки]]. | | '''(''' — стандартное слово [[Каллисто]]. |
| ( ( −− ) Комментарий. Игнорировать входные литеры до закрывающей круглой скобки.
| |
| [[Файл:comment.gif|thumb|right|178px|[[INTERPRET]] и комментарий.<br>Картинка из книги Лео Броди «Starting FORTH»]]
| |
| Слово ( отмечает начало комментария; все следующие литеры до первой ) (закрывающей скобки) считаются комментарием и при обработке вводимого текста [[Каллисто]] пропускаются.
| |
|
| |
|
| Комментарии в [[Каллисто|Каллисто 1.0]] не могут быть вложенными — первый найденный символ ) завершает комментарий.
| | Комментарий — пропустить следующий текст до закрывающей круглой скобки. |
|
| |
|
| == Ввод слова ( ==
| |
| В [[Режим NUM|режиме NUM]] нажмите чёрную клавишу {{ШГ→}}
| |
|
| |
|
| == ( в стандарте ANS Forth == | | == ( в стандарте ANS Forth == |
| <pre>
| |
| 6.1.0080 ( "paren" CORE | | 6.1.0080 ( "paren" CORE |
| Компиляция: Исполняет семантику выполнения, данную ниже. | | Компиляция: Исполняет семантику выполнения, данную ниже. |
Строка 26: |
Строка 20: |
| Типичное использование: | | Типичное использование: |
| ... ( ccc) ... | | ... ( ccc) ... |
| </pre>
| |
|
| |
|
| == История ==
| |
| В Каллисто слово ( взято из Форта, где оно — одно из самых древних и устоявшихся.
| |
|
| |
|
| Впервые слово ( появилось в 1964 году под именем COMMENT в программе CURVE, написанной Чак Муром на Алголе для 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 Стэнфордский университет]). Комментарий заканчивался символом ;
| | == ( в предыдущем стандарте Forth-83 (англ.) == |
| | |
| Уже тогда ввод стал достаточно сложным, чтобы оправдать наличие комментария.
| |
| | |
| === ( в предыдущем стандарте Forth-83 (англ.) ===
| |
| ( -- I,M,83 "paren" | | ( -- I,M,83 "paren" |
| -- (compiling) | | -- (compiling) |
Строка 47: |
Строка 34: |
| remaining in the input stream up to the closing parenthesis. | | remaining in the input stream up to the closing parenthesis. |
|
| |
|
| === ( в стандарте Forth-79 (англ.) ===
| |
| ( -- I,122 "paren"
| |
| Used in the form:
| |
| ( ccc)
| |
| Accept and ignore comment characters from the input stream,
| |
| until the next right parenthesis. As a word, the left
| |
| parenthesis must be followed by one blank. It may freely be
| |
| used while executing or compiling. An error condition exists
| |
| if the input stream is exhausted before the right parenthesis.
| |
|
| |
| === ( в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
| |
| ( P,L0
| |
| Used in the form:
| |
| ( cccc)
| |
| Ignore a comment that will be delimited by a right
| |
| parenthesis on the same line. May occur during execution or in a
| |
| colon-definition. A blank after the leading parenthesis is required.
| |
|
| |
| == Реализация ==
| |
| <pre>
| |
| 3417 ;#p
| |
| 3418 ; ( I ( −− ) Комментарий. Игнорировать входные литеры до закрывающей круглой скобки.
| |
| 3419 ; Комментарий. Игнорировать всё до первой встречной ")" или конца строки (терминал) / экрана (интерпретация блока).
| |
| 3420 LPAREN: .DB 81H
| |
| 3421 .TEXT "("
| |
| 3422 .DW LVOCAB
| |
| 3423 PAREN: .DW CALL, LITB
| |
| 3424 .DB 41 ; ")"
| |
| 3425 .DW WORD, DROP, EXIT
| |
| </pre>
| |
| Реализации из SP-Forth 4.20:
| |
| <pre>
| |
| : ( ( "ccc<paren>" -- ) \ 94 FILE
| |
| \ Расширить семантику CORE (, включив:
| |
| \ Когда разбирается текстовый файл, если конец разбираемой области достигнут
| |
| \ раньше, чем найдена правая скобка, снова заполнить входной буфер следующей
| |
| \ строкой из файла, установить >IN в ноль и продолжать разбор, повторяя
| |
| \ этот процесс до тех пор, пока не будет найдена правая скобка или не
| |
| \ будет достигнут конец файла.
| |
| BEGIN
| |
| [CHAR] ) DUP PARSE + C@ = 0=
| |
| WHILE
| |
| REFILL 0= IF EXIT THEN
| |
| REPEAT
| |
| ; IMMEDIATE
| |
| </pre>
| |
| <pre>
| |
| : ( [COMPILE] ( ; IMMEDIATE
| |
| </pre>
| |
|
| |
| === Советская реализация ===
| |
| В Thinking FORTH (стр. 169, "More Tips for Readability") приводится такая реализация слова ( :
| |
| : ( ')' WORD DROP ; IMMEDIATE
| |
|
| |
| Такое же определение слова ( было в ядре ФОРТ-ЕС:
| |
| <PRE>
| |
| ( Н -> КОММЕНТАРИИ - ПРОПУСТИТЬ СЛЕДУЮЩИЙ ТЕКСТ 28
| |
| ДО ЗАКРЫВАЮЩЕЙ КРУГЛОЙ СКОБКИ
| |
|
| |
| Экран номер 28
| |
| ( 31.03.86 LIT" COUNT ," " ". (."/ ." C" ( ,( QUIT ABORT )
| |
|
| |
| : ( ( ->) C" ) WORD DROP ; IMMEDIATE
| |
| </PRE>
| |
| Определение слова ( в FORTH ИТЭФ:
| |
| <PRE>
| |
| HEAD 301Q,,250Q,PAREN,$COL ; (
| |
| DW LIT,51Q,$WORD,SEMI
| |
| </PRE>
| |
|
| |
|
| == Ссылки == | | == Ссылки == |
| * {{Исходник|p|(}}
| | * См. также слова Каллисто [[\ (Каллисто)|\]] , [[\S]] и [[−−−⟩]] |
| * См. также слова Каллисто [[Слово \|\]] и [[\S]] | |
| * [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0080 Слово ( (paren) в стандарте ANS Forth] ''(англ.)'' и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.0080 комментарий к нему] ''(англ.)'' | | * [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0080 Слово ( (paren) в стандарте ANS Forth] ''(англ.)'' и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.0080 комментарий к нему] ''(англ.)'' |
| * Слово [http://forth-standard.org/standard/core/p ( (paren)] и [http://forth-standard.org/standard/rationale#rat:core:p комментарий к нему] в черновике Forth 200x ''(англ.)'' | | * [http://www.forth200x.org/documents/html/core.html#core:p Слово ( (paren) в черновике Forth 200x] ''(англ.)'' и [http://www.forth200x.org/documents/html/rationale.html#rat:core:p комментарий к нему] ''(англ.)'' |
| * [http://www.compiler.su/dlinnye-kommentarii.php Длинные комментарии на compiler.su] | | * [http://www.compiler.su/dlinnye-kommentarii.php Длинные комментарии на compiler.su] |
| * [https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29 Комментарий на Википедии] | | * [https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29 Комментарий на Википедии] |
| * [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/sf3/sf3.html The Editor (and Staff)] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''
| |
|
| |
|
|
| |
|
Строка 131: |
Строка 46: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Слова высокого уровня]]
| |
| [[Категория:Слова с признаком IMMEDIATE]]
| |
| [[Категория:Средства отладки Каллисто]] | | [[Категория:Средства отладки Каллисто]] |
| [[Категория:Стандартные слова]]
| |
| [[Категория:1994 CORE]]
| |
| [[Категория:2012 CORE]]
| |