Редактирование:
(;CODE)
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == Слово (;CODE) лишено заголовка, так как его заведомо невозможно использовать в новых словах. Действительно, ведь после [[токен]]а (;CODE) должен идти низкоуровневый код, а ЭКВМ не в состоянии исполнять [[ЯМК|код ЯМК]] из [[Регистр памяти данных|области данных]]. Также отсутствие заголовка экономит место в [[Память программ|памяти программ]]. Отсутствие заголовка у каллистянского (;CODE) компенсируется возможностью писать удобные высокоуровневые обработчики с помощью механизма [[⟨BUILDS|<BUILDS]]…[[DOES⟩|DOES>]]. <pre> 3072 ;#xSemiCODE 3073 ; (;CODE) ( −− ) Записать в поле кода LAST следующий адрес и EXIT (слово без заголовка). 3074 ; Слово (;CODE) невозможно использовать в приложениях, т.к. код ЯМК выполняется лишь из памяти программ. 3075 ; Для экономии места слово (;CODE) лишено заголовка. 3076 ; 3077 ; Записать в поле кода последней статьи следующий адрес и закончить определение. 3078 ;LPSCOD: .DB 7 3079 ; .TEXT "(" ; "(;CODE)" 3080 ; .DB 3BH 3081 ; .TEXT "CODE)" 3082 ; .DW LSMUG ; >R LAST NAME> ! 3083 PSCOD: .DW CALL, FROMR, LATES,N2CFA, STORE, EXIT </pre> Реализации из SP-Forth 4.20: <pre> : CODE-ORIG HEADER HIDE !CSP INIT-ASM ; … : CODE TRUE StartColonHelp [T] CODE-ORIG CONTEXT @ PREVIOUS CONTEXT ! ; : CODE1 \ для словаря не TC-WL CODE-ORIG ; </pre> <pre> : (;CODE) R> LATEST 5 - ! ; … : _CODE ( START A NATIVE CODE DEFINITION ) HEADER HIDE !CSP INIT-ASM ; : _;CODE ( CREATE THE [;CODE] PART OF A LOW LEVEL DEFINING WORD ) ?CSP !CSP COMPILE (;CODE) POSTPONE [ INIT-ASM ; … ' _CODE IS CODE ' _;CODE IS ;CODE </pre> <pre> : _END-CODE2 EndColonHelp _END-CODE [I] ALSO TC ; ' _END-CODE2 IS END-CODE </pre> <pre> ( END CODE DEFINITIONS ) IN-ASM : END-ASM A; PREVIOUS ; IN-HIDDEN : _END-CODE ( END A CODE DEFINITION ) END-ASM ?FINISHED ?UNRES ?CSP REVEAL RESTORE-CURRENT CODE-ALIGN EXIT-ASSEMBLER ; IN-ASM DEFER END-CODE ' _END-CODE IS END-CODE DEFER ;C ' _END-CODE IS ;C </pre> === Советская реализация === У Баранова-Ноздрунова определение слова (;CODE) выглядит так (стр. 68): : (;CODE) ( ---> ) R> LAST NAME> ! ; Определение слова (;CODE) в ядре ФОРТ-ЕС: <PRE> (;CODE) *К -> ЗАПИСАТЬ В ПОЛЕ КОДА ПОСЛЕДНЕЙ СТАТЬИ 31 СЛЕДУЮЩИЙ АДРЕС И ЗАКОНЧИТЬ ОПРЕДЕЛЕНИЕ Экран номер 31 ( 31.03.86 LATEST DEFINITIONS SMUDGE UNSMUDGE IMMEDIATE ID.) : (;CODE) ( ->) R> LATEST NAME> ! ; </PRE> Определение слов (;CODE) и ;CODE в FORTH ИТЭФ: <PRE> HEAD 207Q,'(;CODE',251Q,PSCOD,$COL ; (;CODE) DW FROMR,LATES,PFA,CFA,STORE,SEMI ... HEAD 305Q,';COD',305Q,SEMIC,$COL ; ;CODE DW QCSP,COMP,PSCOD,LBRAC,SMUG,SEMI </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице