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

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш 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 (англ.) ===
(              --                            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]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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