Редактирование:
Слово [
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == Слово [ обнуляет переменную [[STATE]]. Поскольку переключать [[INTERPRET|текстовый интерпретатор]] в состояние исполнения имеет смысл только из состояния компиляции, слово [ имеет [[IMMEDIATE|признак немедленного исполнения]] — чтобы исполниться и выполнить своё назначение, когда происходит компиляция. Слово [ чаще всего используется во время определения слова для временного переключения в состояние исполнения. Например, чтобы что-то подсчитать в [[Стек данных|стеке]] во время компиляции, а потом переключиться обратно с помощью [[Слово ]|слова ]]]. <pre> 96 rrSTATE .EQU 1108 ; 11108 STATE − STATE=0 − исполнение, STATE=128 − компиляция 97 pSTATE .EQU 108 98 rlSTATE .EQU 1109 ; … 2347 ;#Bracket 2348 ; [ I ( −− ) Установить состояние исполнения. 2349 LLBRAC: .DB 81H 2350 .TEXT "[" 2351 .DW LDALLOT 2352 LBRAC: .DW JLBRAC ; Переключить текстовый интерпретатор в состояние исполнения 2353 JLBRAC: CX ; Прекратить компиляцию, начать исполнение (обнулить STATE) 2354 SETSTATE: PPM rlSTATE 2355 CX 2356 PPM rrSTATE 2357 KGOTO9 </pre> === Реализации в SP-Forth 4.20 === <pre> : [ \ 94 CORE \ Интерпретация: семантика неопределена. \ Компиляция: Выполнить семантику выполнения, данную ниже. \ Выполнение: ( -- ) \ Установить состояние интерпретации. [ слово немедленного выполнения. STATE 0! ; IMMEDIATE </pre> <pre> : [ [COMPILE] [ ; IMMEDIATE </pre> === Советская реализация === У Баранова-Ноздрунова приводится следующее описание слова [ (стр. 24): : [ ( ---> ) 0 STATE ! ; IMMEDIATE Определение [ в ядре ФОРТ-ЕС использует слово [[0!]] <PRE> [ Н -> ПЕРЕКЛЮЧИТЬ ТЕКСТОВЫЙ ИНТЕРПРЕТАТОР 22 В РЕЖИМ ИСПОЛНЕНИЯ Экран номер 11 ( 31.03.86 ! 0! @ С! С@ , С, EXECUTE ) : 0! ( A-> ) 0 SWAP ! ; Экран номер 22 ( 31.03.86 FILL ERASE BLANK COMPILE [ ] MIN MAX HEX DECIMAL) : [ ( -> ) STATE 0! ; IMMEDIATE </PRE> В FORTH ИТЭФ слово [ было [[примитив]]ом, вот его определение: <PRE> HEAD 301Q,,333Q,LBRAC ; [ ; Прекращение компил., начало исполн. (обнуление STATE) MOV WORD PTR [DI]+54Q,0 NEXT </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице