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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
'''(''' (скобка, открывающая круглая скобка) — стандартное слово [[Каллисто]]. Комментарий — пропустить следующий текст до [[Символ с кодом 41|закрывающей круглой скобки]].
(              ( −− )                              Комментарий. Игнорировать входные литеры до закрывающей круглой скобки.
[[Файл:comment.gif|thumb|right|178px|[[INTERPRET]] и комментарий.<br>Картинка из книги Лео Броди «Starting FORTH»]]
[[Файл:comment.gif|thumb|right|178px|[[INTERPRET]] и комментарий.<br>Картинка из книги Лео Броди «Starting FORTH»]]
'''(''' (скобка, открывающая круглая скобка) — стандартное слово [[Каллисто]].
Комментарий — пропустить следующий текст до закрывающей круглой скобки.
Слово ( отмечает начало комментария; все следующие литеры до первой ) (закрывающей скобки) считаются комментарием и при обработке вводимого текста [[Каллисто]] пропускаются.
Слово ( отмечает начало комментария; все следующие литеры до первой ) (закрывающей скобки) считаются комментарием и при обработке вводимого текста [[Каллисто]] пропускаются.
Комментарии в [[Каллисто|Каллисто 1.0]] не могут быть вложенными — первый найденный символ ) завершает комментарий.


== Ввод слова ( ==
== Ввод слова ( ==
В [[Режим NUM|режиме NUM]] нажмите чёрную клавишу {{ШГ→}}
В [[Режим NUM|режиме NUM]] нажмите чёрную клавишу [[Клавиша ШГ вправо|{{Чёрная клавиша|ШГ→}}]]


== ( в стандарте ANS Forth ==
== ( в стандарте ANS Forth ==
<pre>
  6.1.0080  (                              "paren"                        CORE
  6.1.0080  (                              "paren"                        CORE
         Компиляция: Исполняет семантику выполнения, данную ниже.
         Компиляция: Исполняет семантику выполнения, данную ниже.
Строка 26: Строка 25:
  Типичное использование:
  Типичное использование:
         ...  ( 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: Строка 38:
           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: Строка 48:
     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: Строка 56:
         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 ( −− )                              Комментарий. Игнорировать входные литеры до закрывающей круглой скобки.
Впервые оно появилось в 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 Стэнфордский университет]). Комментарий заканчивался символом ;
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
Строка 118: Строка 84:


== Ссылки ==
== Ссылки ==
* {{Исходник|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/html3/core/p.html ( (paren)] и [http://www.forth200x.org/documents/html3/rationale.html#rat:core:p комментарий к нему] в черновике Forth 200x ''(англ.)''
* [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 Комментарий на Википедии]
Строка 134: Строка 99:
[[Категория:Слова с признаком IMMEDIATE]]
[[Категория:Слова с признаком IMMEDIATE]]
[[Категория:Средства отладки Каллисто]]
[[Категория:Средства отладки Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:Слова Каллисто без стековых диаграмм]]
[[Категория:1994 CORE]]
[[Категория:2012 CORE]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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