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

Перейти к навигации Перейти к поиску

Внимание! Вы не авторизовались на сайте. Ваш 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") приводится такая реализация слова ( :
 
: (  ')' 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: Строка 66:
 
{{заготовка}}
 
{{заготовка}}
 
[[Категория:Слова Каллисто]]
 
[[Категория:Слова Каллисто]]
[[Категория:Слова высокого уровня]]
 
[[Категория:Слова с признаком IMMEDIATE]]
 
 
[[Категория:Средства отладки Каллисто]]
 
[[Категория:Средства отладки Каллисто]]
[[Категория:Стандартные слова]]
 
[[Категория:1994 CORE]]
 
[[Категория:2012 CORE]]
 

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

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

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