Вот это - зрелая идея!Shaos wrote:Короче надо изобрести свой бейсик с построчной компиляцией в шитый код![]()

С удовольствием на это посмотрю!

Moderator: Shaos
Вот это - зрелая идея!Shaos wrote:Короче надо изобрести свой бейсик с построчной компиляцией в шитый код![]()
ну ваащето и синклеровский и мсх(микрософт) и бк0010 - они фсе такиеShaos wrote:Короче надо изобрести свой бейсик с построчной компиляцией в шитый код![]()
а вот нифигулечки - ключевые слова бейсика, представляемые разными байтами не являются "шитым кодом" - мы в каком-то из топиков много лет назад ломали копья на эту тему...imsushka wrote:ну ваащето и синклеровский и мсх(микрософт) и бк0010 - они фсе такиеShaos wrote:Короче надо изобрести свой бейсик с построчной компиляцией в шитый код![]()
И там же мы пришли к выводу, что Вильнусский бейсик именно компилирует в шитый код.Shaos wrote:а вот нифигулечки - ключевые слова бейсика, представляемые разными байтами не являются "шитым кодом" - мы в каком-то из топиков много лет назад ломали копья на эту тему...imsushka wrote:ну ваащето и синклеровский и мсх(микрософт) и бк0010 - они фсе такиеShaos wrote:Короче надо изобрести свой бейсик с построчной компиляцией в шитый код![]()
https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D0%B9%D1%81%D0%B8%D0%BA_%D0%92%D0%B8%D0%BB%D1%8C%D0%BD%D1%8E%D1%81При запуске программы командой RUN происходит компиляция программы в промежуточный, так называемый шитый код. Шитый код, по сути, представляет собой последовательность адресов вызова подпрограмм и данные для вызовов. При этом транслятор перед исполнением программы переводит все числа во внутренне представление и все выражения — в обратную бесскобочную запись. При выполнении программы исполняющая система производит вызовы указанных подпрограмм и передаёт им подготовленные данные. Таким образом, шитый код выполняется быстрее, чем обычная интерпретация (поскольку при исполнении программы не тратится время на «распознавание» чисел и имён переменных, на преобразование выражений и т. д.), но медленнее, чем программа в машинном коде, полученная на выходе настоящего компилятора.
В общем всегда хочется сначала посмотреть образец - а как они это делали?Shaos wrote:Да - точно, Вильнусский бейсик ...
А я себе мыслю компиляцию типа как в форте - закончили редактировать строку программы и она хлоп и откомпилировалась в шитый код
есть 4 типа шитого кода. это из брусенцова.Shaos wrote:а вот нифигулечки - ключевые слова бейсика, представляемые разными байтами не являются "шитым кодом" - мы в каком-то из топиков много лет назад ломали копья на эту тему...imsushka wrote:ну ваащето и синклеровский и мсх(микрософт) и бк0010 - они фсе такиеShaos wrote:Короче надо изобрести свой бейсик с построчной компиляцией в шитый код![]()
P.S. хотя вроде подход реализованный в бейсиках иногда называют "token threading", но это совсем не то, что я имею вивду - я имею ввиду "subroutine threading" (цепочка вызовов подпрограмм), который сам по себе уже является скомпилированной программой и может исполняться без интерпретатора (см. https://en.wikipedia.org/wiki/Threaded_code)
Это смотря в каком бейсике... В QBasic предварительно компилируется в промежуточный Р-код,Shaos wrote:в бейсике токенизированный - там и не вызовы, и не адреса, а "токены"
Ну вот и мне надо рантайм встроить в ShaOS - буду всем потом рассказывать, что поглядите ка только этот ЯВУ всё умеет без "внешних" библиотекLavr wrote:Ну ты попробуй... я с интересом и удовольствием посмотрю.![]()
Кстати говоря, run-time библиотека VB до некоторых пор была частью ОС Windows.
Я всегда ещё очень удивлялся: VB не установлен, а run-time библиотека VB есть!
Ну ок - в большинстве бейсиковLavr wrote:Это смотря в каком бейсике... В QBasic предварительно компилируется в промежуточный Р-код,Shaos wrote:в бейсике токенизированный - там и не вызовы, и не адреса, а "токены"
ну почти как в Жабе.В режиме интерпретации он выполняется быстрее.
А в ехе-шник уже компилируют именно его.
А "токены" - это всего лишь слова бейсика замененные кодами.
Code: Select all
40 IF A=5;IF B=0 THEN 30;B=B-1;GOTO 20
50 IF A=6;IF B=C THEN 30;B=B+1;GOTO 20
Есть такая песня: Do It! Do It Again With Love! (c) Raffaella CarràShaos wrote:Ну вот и мне надо рантайм встроить в ShaOS - буду всем потом рассказывать, что поглядите ка только этот ЯВУ всё умеет без "внешних" библиотек
Я вроде её в таком варианте помню:Lavr wrote:Есть такая песня: Do It! Do It Again With Love! (c) Raffaella Carrà![]()
Italian singer Raffaella Carrà has died July 5, 2021 at the age of 78.