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

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

Внимание! Вы не авторизовались на сайте. Ваш 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: Строка 27:
 
  Типичное использование:
 
  Типичное использование:
 
         ...  ( 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: Строка 40:
 
           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: Строка 50:
 
     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: Строка 58:
 
         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: Строка 86:
  
 
== Ссылки ==
 
== Ссылки ==
* {{Исходник|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://forth-standard.org/standard/core/p ( (paren)] и [http://forth-standard.org/standard/rationale#rat:core:p комментарий к нему] в черновике Forth 200x ''(англ.)''
Строка 134: Строка 101:
 
[[Категория:Слова с признаком IMMEDIATE]]
 
[[Категория:Слова с признаком IMMEDIATE]]
 
[[Категория:Средства отладки Каллисто]]
 
[[Категория:Средства отладки Каллисто]]
[[Категория:Стандартные слова]]
+
[[Категория:Слова Каллисто без стековых диаграмм]]
[[Категория:1994 CORE]]
 
[[Категория:2012 CORE]]
 

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

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

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