Пишем компилирующий интерпретатор SHABASIC для 8080/8085

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24028
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Пишем компилирующий интерпретатор SHABASIC для 8080/8085

Post by Shaos »

Alikberov wrote:Мой план немножечко отличается.

Проограмма может запускаться в трёх режимах:
  1. Холодный Пуск / Первый Прогон - с исполнением всего кода от начала до конца в порядке описания листинга, чтобы собрать адреса всех меток и т.д.;
  2. Горячий Запуск - исполнение кода в алгоритмическом порядке;
  3. Холостой Пуск - печать содержимого кода в текстовом листинге.
А зачем так? Я думал в таком направлении - если есть текст программы (или что тоже самое - набираем программу в диалоговом режиме), то по ходу вычитки (или ввода) строк происходит построчная компиляция и далее этот скомпилированный код можно использовать как программу без исходников, а исходники можно сохранить отдельно и как текст, и как текст со скомпилированным кодом, чтобы была возможность продолжить дальнейшую работу над программой ( типа файл проекта ; )

А так то у тебя практически то, что я и хотел получить, но в твоих терминах "Холодный пуск" - это компиляция, "Горячий запуск" - исполнение скомпилированного, а вот "Холостой пуск" скомпилированная программа вроде как делать не должна т.к. у нас отдельно лежит исходный текст :wink:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Пишем компилирующий интерпретатор SHABASIC для 8080/8085

Post by Alikberov »

Shaos wrote:А зачем так?
Так получилось, в теории. :mrgreen:
Shaos wrote:Я думал в таком направлении - если есть текст программы (или что тоже самое - набираем программу в диалоговом режиме), то по ходу вычитки (или ввода) строк происходит построчная компиляция и далее этот скомпилированный код можно использовать как программу без исходников, а исходники можно сохранить отдельно и как текст, и как текст со скомпилированным кодом, чтобы была возможность продолжить дальнейшую работу над программой ( типа файл проекта ; )
У меня как бы интерактивного режима не предусматривается. :no:
В частности, если этот Бейсик с Победитом проинтегрировать, чтобы получить подобие интегрированной оболочки типа Borland Pascal, где правишь листинг и жмёшь F5 для запуска! :idea:
Shaos wrote:А так то у тебя практически то, что я и хотел получить, но в твоих терминах "Холодный пуск" - это компиляция,
Немножечко неверно.
Компиляция - генерация кода из исходного текста.
В моём же случае, код - уже сгенерирован. Но адреса меток ещё не определились.
Shaos wrote:"Горячий запуск" - исполнение скомпилированного, а вот "Холостой пуск" скомпилированная программа вроде как делать не должна т.к. у нас отдельно лежит исходный текст :wink:
Если всё делать с акцентом на XXI век, исключаем режим непосредственного управления директивами? :roll:
User avatar
Shaos
Admin
Posts: 24028
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Пишем компилирующий интерпретатор SHABASIC для 8080/8085

Post by Shaos »

Как раз полной компиляции хотелось бы избежать :roll:
Прелесть инкрементной компиляции (по мере добавления строк) как раз состоит в том, что она в разы быстрее!
Для ретро платформ - самое то (ибо они и так тормозные)
Ну и соответственно диалоговый режим всё ещё нужен, а полновесный редактор как раз как бы и не очень (полновесный редактор нужен для нормальных языков типа Си, там Паскаля, ну или Робби)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Пишем компилирующий интерпретатор SHABASIC для 8080/8085

Post by Alikberov »

Shaos wrote:Как раз полной компиляции хотелось бы избежать :roll:
Прелесть инкрементной компиляции (по мере добавления строк) как раз состоит в том, что она в разы быстрее!
Это и понятно.
Ввёл командной строкой, откопилировалось и вставилось в общий код - над этим я тоже думаю.

Но под Победит тоже поддержку иметь надо (как разработчик редактора, я как бы обязан поддержать это) - интегрированный компилятор текста.
Shaos wrote:Для ретро платформ - самое то (ибо они и так тормозные)
Ну и соответственно диалоговый режим всё ещё нужен, а полновесный редактор как раз как бы и не очень (полновесный редактор нужен для нормальных языков типа Си, там Паскаля, ну или Робби)
Потому и на уровне Монитора я этим занимаюсь тоже.
Типа, чтобы после очередного Сброса не перезапускать среду, а сразу набрать:

Code: Select all

РАДИО-86РК
-->LIST
:mrgreen:
User avatar
Shaos
Admin
Posts: 24028
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Пишем компилирующий интерпретатор SHABASIC для 8080/8085

Post by Shaos »

Лучше так :)

Code: Select all

РАДИО-86РК
-->B
NEW?
N
LIST
Я тут за главного - если что шлите мыло на me собака shaos точка net
imsushka
Maniac
Posts: 232
Joined: 01 Jan 2022 04:34
Location: USSR, Tashkent

Re: Пишем компилирующий интерпретатор SHABASIC для 8080/8085

Post by imsushka »

что вы подразумеваете под компиляцией ?

вааще то что на синклере да и на ямахе кувт, бейсик хранится в кодах. на рк не помню

в текстовом виде там нет программы. при вызове листинга коды меняются на текст.
код исполняется как байт-машина

турбо паскаль 1 (2ой не помню) тоже при компиляции получался байткод
User avatar
Shaos
Admin
Posts: 24028
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Пишем компилирующий интерпретатор SHABASIC для 8080/8085

Post by Shaos »

Компиляция в коды 8080
А тэги - это не коды, а недоразумение :)
Я тут за главного - если что шлите мыло на me собака shaos точка net