."

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

." (точка и кавычка) — стандартное слово Каллисто. Начало сообщения.

."             ( −− )                               При исполнении вывести строку, ограниченную кавычкой.
Пример работы слова ."

При исполнении напечатать на индикаторе следующие литеры до кавычки исключительно.

Ввод слова ."

В режиме NUM последовательно нажмите три клавиши  /−/     F   2 

." в стандарте ANS Forth

 6.1.0190   ."                               "dot-quote"                    CORE
        Интерпретация: Семантика интерпретации для этого слова не определена.

        Компиляция: ( "ccc<quote>" -- )
            Выделяет ccc, ограниченную " (двойная кавычка). Добавляет семантику 
            времени-выполнения данную ниже к текущему определению.

        Время-выполнения: ( -- )
            Отображает ccc.

        См.: 3.4.1 Синтаксический анализ, 6.2.0200 .(.

 A.6.1.0190   ."
 Типичное использование:
        : X ... ." ccc"  ... ;

 Реализация может определять семантику интерпретации для ." если желательно. В 
 одной вероятной реализации, интерпретация ." отобразила бы разграниченное 
 сообщение. В другой вероятной реализации, интерпретация ." компилировала бы код 
 для отображения сообщения позже. В еще другой вероятной реализации, 
 интерпретация ." была бы обработана как исключение. Обусловленная этими 
 вариантами Стандартная Программа не может использовать ." при интерпретации. 
 Точно так же Стандартная Программа не может компилировать POSTPONE ." внутри 
 нового слова, и затем использовать это слово при интерпретации.

История

Начиная с Форта-83, слово ." применимо только при компиляции. Для вывода строки при исполнении используйте слово .(

В некоторых старинных Фортах слово ." называлось " (одна литера).

." в предыдущем стандарте Forth-83 (англ.)

     ."           --                            C,I,83     "dot-quote"
                  --   (compiling)
          Used in the form:
                  ." ccc"
          Later execution will display the characters ccc up to but
          not including the delimiting " (close-quote).  The blank
          following ." is not part of ccc.

." в стандарте Forth-79 (англ.)

."                                           I,133      "dot-quote"
    Interpreted or used in a colon definition in the form:
         ." ccc"
    Accept the following text from the input stream, terminated by
    "  (double-quote).   If executing,  transmit this text to  the
    selected output device.   If compiling,  compile so that later
    execution  will  transmit  the  text to  the  selected  output
    device.   At least 127 characters are allowed in the text.  If
    the  input stream is exhausted before the terminating  double-
    quote, an error condition exists.

." в fig-FORTH Release 1 glossary, май 1979 (англ.)

."                                            P,L0
       Used in the form:
           .', cccc"
       Compiles an in-line string cccc (delimited by the trailing ") with
       an execution proceedure to transmit the text to the selected output
       device.
       If executed outside a definition, ." will immediately print the text
       until the final ',. The maximum number of characters may be an
       installation dependent value. See (.").

Реализация

3111 ;#Dotq
3112 ; ."             I ( −− )                               При исполнении вывести строку, ограниченную кавычкой.
3113 ; ." XXX" выводит строку XXX на индикатор во время выполнения определяемого слова.  Код " завершает строку.
3114 ; Это слово нельзя употреблять вне определения через двоеточие.
3115 LDOTQ:          .DB     82H
3116                 .TEXT   "."                     ; ."
3117                 .DB     34
3118                 .DW     LPDOTQ
3119 DOTQ:           .DW CALL, COMP,PDOTQ,LITB
3120                 .DB 34                          ; '"'
3121                 .DW WORD,CAT,ONEP,ALLOT, EXIT

Реализации из SP-Forth 4.20:

: ."  \ 94
\ Интерпретация: семантика неопределена.
\ Компиляция: ( "ccc<quote>" -- )
\ Выделить ccc, ограниченное " (двойными кавычками). Добавить семантику времени 
\ выполнения, данную ниже, к текущему определению.
\ Время выполнения: ( -- )
\ Вывести ccc на экран.
  ?COMP
  ['] _CLITERAL-CODE COMPILE,
  [CHAR] " PARSE DUP C, CHARS
  HERE SWAP DUP ALLOT MOVE 0 C,
  ['] (.") COMPILE,
; IMMEDIATE
: ."
  CLITERAL-CODE COMPILE,
  [CHAR] " PARSE DUP C,
  DP @ SWAP DUP ALLOT MOVE 0 C,
  (.")-CODE COMPILE,
; IMMEDIATE

Советская реализация

Описание и определение слова ." в ядре ФОРТ-ЕС:

                     Экран номер 28
( 31.03.86 LIT" COUNT ," " ". (."/ ." C" ( ,( QUIT ABORT )

: ," ( -> ) C" " WORD С@ 2+ ALLOT ALIGNH ;

: ."  ( -> )  ?COMP  COMPILE (.") ," ;  IMMEDIATE

Определение слова ." в FORTH ИТЭФ:

             HEAD    302Q,'.',242Q,DOTQ,$COL              ; ."
             DW  LIT,34,STATE,AT,ZBRAN,XT-$
             DW  COMP,PDOTQ,$WORD,HERE,CAT,ONEP
             DW  ALLOT, SEMI
   XT:       DW  $WORD,HERE,COUNT,$TYPE,SEMI

Ссылки


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.