Оглядываясь на такие экзотические скриптовые языки, как PERL и RUBY, которые раньше всюду управляли интернет сайтами, я подумал, а не разработать ли нечто подобное и для РАДИО-86РК?
Если в Windows и Linux пакетные файлы описываются как Batch и Bash, синтаксис которых своеобразен, почему бы и на РАДИО-86РК не описывать файлы автоматизации на каком-то своём синтаксисе?
Главное условие - компактность интерпретатора/парсера/транслятора.
Если в машинный код внедрить в синтаксис скрипта, можно существенно сэкономить на размере.
Но, те, кто когда-нибудь программировал в машинном коде, помнит, что ручная адресация всяческих условных и безусловных переходов - настоящая головная боль.
Потому - обязательна поддержка меток.
Ниже я представляю экспериментальную среду для редактирования и запуска скрипта.
В качестве демонстрации я описал там сценарий-затравку для игры «Питон».
Синтаксис прост.
- Каждый байт транслируется в конечный код как есть
- Каждое слово транслируется в конечный код как есть
- Буквы «G-Z» адресуют область переменных/меток (ячейки 7640-767F Монитора)
- Символ «@» используеся для чтения из ячейки переменной/метки
- Символами «[» и «]» экранируется блок
- Символ «:» адресует текущий адрес кода для метки
- Строчные комментарии отделяются как в ассемблере - через «;»
Code: Select all
;;;;;;;;;;;;;
; SCRIPT-86RK
;;;;;;;;;;;;;
F803K F81BI ; LET K=F803,I=F81B
F809S F818T ; LET S=F809,T=F818
F821Z ; LET Z=F821
:G 21 ; LXI H,"***ПИТОН***"
[0D 0A "***ПИТОН***" 0A 00]
CD T@ ; CALL TEXT
:W 21 ; LXI H,"НАЖМИТЕ <ВК>"
[0D 07 "НАЖМИТЕ <ВК>" 00]
CD T@ ; CALL TEXT
CD K@ ; CALL KEY
FE 1B C8 ; IF KEY==ESC THEN RETURN
FE 0D C2 W@ ; IF KEY<>13 THEN GOTO W