Редактирование: (

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 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 (англ.) ===
 
== ( в стандарте Forth-79 (англ.) ==
  (              --                            I,122          "paren"
  (              --                            I,122          "paren"
     Used in the form:
     Used in the form:
Строка 57: Строка 45:
     if the input stream is exhausted before the right parenthesis.
     if the input stream is exhausted before the right parenthesis.


=== ( в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
 
== ( в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
  (                                              P,L0
  (                                              P,L0
         Used in the form:
         Used in the form:
Строка 65: Строка 54:
         colon-definition. A blank after the leading parenthesis is required.
         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") приводится такая реализация слова ( :
В Thinking FORTH (стр. 169, "More Tips for Readability") приводится такая реализация слова ( :
  : (  ')' WORD DROP ; IMMEDIATE
  : (  ')' 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: Строка 72:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Слова высокого уровня]]
[[Категория:Слова с признаком IMMEDIATE]]
[[Категория:Средства отладки Каллисто]]
[[Категория:Средства отладки Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:1994 CORE]]
[[Категория:2012 CORE]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/(