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

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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
'''(''' (скобка, открывающая круглая скобка) — стандартное слово [[Каллисто]]. Комментарий — пропустить следующий текст до [[Символ с кодом 41|закрывающей круглой скобки]].
+
'''(''' — стандартное слово [[Каллисто]].
(              ( −− )                              Комментарий. Игнорировать входные литеры до закрывающей круглой скобки.
 
[[Файл:comment.gif|thumb|right|178px|[[INTERPRET]] и комментарий.<br>Картинка из книги Лео Броди «Starting FORTH»]]
 
Слово ( отмечает начало комментария; все следующие литеры до первой ) (закрывающей скобки) считаются комментарием и при обработке вводимого текста [[Каллисто]] пропускаются.
 
 
 
Комментарии в [[Каллисто|Каллисто 1.0]] не могут быть вложенными — первый найденный символ ) завершает комментарий.
 
 
 
== Ввод слова ( ==
 
В [[Режим NUM|режиме NUM]] нажмите чёрную клавишу {{ШГ→}}
 
 
 
== ( в стандарте ANS Forth ==
 
<pre>
 
6.1.0080  (                              "paren"                        CORE
 
        Компиляция: Исполняет семантику выполнения, данную ниже.
 
 
 
        Выполнение: ( "ccc<paren>" -- )
 
            Выделяет ccc, ограниченное ) (правая круглая скобка). ( - слово
 
            немедленного исполнения.
 
 
 
            Число символов в ccc может быть нулевое для числа символов в
 
            области анализа.
 
 
 
        См.: 3.4.1 Синтаксический анализ, 11.6.1.0080 (.
 
 
 
A.6.1.0080  (
 
Типичное использование:
 
        ...  ( 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 (англ.) ===
 
      (            --                            I,M,83        "paren"
 
                  --  (compiling)
 
          Used in the form:
 
                  ( ccc)
 
          The characters ccc, delimited by ) (closing parenthesis),
 
          are considered comments.  Comments are not otherwise
 
          processed.  The blank following ( is not part of ccc.  ( may
 
          be freely used while interpreting or compiling.  The number
 
          of characters in ccc may be zero to the number of characters
 
          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/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.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] ''(англ.)''
 
 
  
 
{{нет иллюстраций}}
 
{{нет иллюстраций}}
 
{{заготовка}}
 
{{заготовка}}
 
[[Категория:Слова Каллисто]]
 
[[Категория:Слова Каллисто]]
[[Категория:Слова высокого уровня]]
 
[[Категория:Слова с признаком IMMEDIATE]]
 
 
[[Категория:Средства отладки Каллисто]]
 
[[Категория:Средства отладки Каллисто]]
[[Категория:Стандартные слова]]
 
[[Категория:1994 CORE]]
 
[[Категория:2012 CORE]]
 

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

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

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