nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 17:05



Reply to topic  [ 52 posts ]  Go to page 1, 2, 3, 4  Next
Пишем компилирующий интерпретатор SHABASIC для 8080/8085 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Короче надо изобрести свой бейсик с построчной компиляцией в шитый код :o

Вот это - зрелая идея! :kruto:
С удовольствием на это посмотрю! :wink:

_________________
iLavr


31 Jan 2023 20:29
Profile
Senior

Joined: 01 Jan 2022 04:34
Posts: 162
Location: USSR, Tashkent
Reply with quote
Shaos wrote:
Короче надо изобрести свой бейсик с построчной компиляцией в шитый код :o


ну ваащето и синклеровский и мсх(микрософт) и бк0010 - они фсе такие


31 Jan 2023 20:32
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
imsushka wrote:
Shaos wrote:
Короче надо изобрести свой бейсик с построчной компиляцией в шитый код :o


ну ваащето и синклеровский и мсх(микрософт) и бк0010 - они фсе такие

а вот нифигулечки - ключевые слова бейсика, представляемые разными байтами не являются "шитым кодом" - мы в каком-то из топиков много лет назад ломали копья на эту тему...

P.S. хотя вроде подход реализованный в бейсиках иногда называют "token threading", но это совсем не то, что я имею вивду - я имею ввиду "subroutine threading" (цепочка вызовов подпрограмм), который сам по себе уже является скомпилированной программой и может исполняться без интерпретатора (см. https://en.wikipedia.org/wiki/Threaded_code)

_________________
:dj: https://mastodon.social/@Shaos


31 Jan 2023 20:38
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
imsushka wrote:
Shaos wrote:
Короче надо изобрести свой бейсик с построчной компиляцией в шитый код :o
ну ваащето и синклеровский и мсх(микрософт) и бк0010 - они фсе такие

а вот нифигулечки - ключевые слова бейсика, представляемые разными байтами не являются "шитым кодом" - мы в каком-то из топиков много лет назад ломали копья на эту тему...

И там же мы пришли к выводу, что Вильнусский бейсик именно компилирует в шитый код.
Я к этой идее не раз сам возвращался здесь, но ниасилил... :wink:
Вот мне и интересно - как ты это сделаешь... :roll:

_________________
iLavr


31 Jan 2023 20:42
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Да - точно, Вильнусский бейсик - вот чего про него написано:
Quote:
При запуске программы командой RUN происходит компиляция программы в промежуточный, так называемый шитый код. Шитый код, по сути, представляет собой последовательность адресов вызова подпрограмм и данные для вызовов. При этом транслятор перед исполнением программы переводит все числа во внутренне представление и все выражения — в обратную бесскобочную запись. При выполнении программы исполняющая система производит вызовы указанных подпрограмм и передаёт им подготовленные данные. Таким образом, шитый код выполняется быстрее, чем обычная интерпретация (поскольку при исполнении программы не тратится время на «распознавание» чисел и имён переменных, на преобразование выражений и т. д.), но медленнее, чем программа в машинном коде, полученная на выходе настоящего компилятора.

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

А я себе мыслю компиляцию типа как в форте - закончили редактировать строку программы и она хлоп и откомпилировалась в шитый код :)

И должна быть возможность сохранить откомпилированную программу "без исходников"

_________________
:dj: https://mastodon.social/@Shaos


31 Jan 2023 21:10
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Да - точно, Вильнусский бейсик ...
А я себе мыслю компиляцию типа как в форте - закончили редактировать строку программы и она хлоп и откомпилировалась в шитый код :)

В общем всегда хочется сначала посмотреть образец - а как они это делали? :roll:
Но у меня так и не случилось... :osad:

А насчет форта - без самогО форта там всё равно евойный код работать не будет... :-?
С шитым кодом, как мне представляется, к программе должен цепляться run-time блок кода,
куда и ведут все вызовы шитого кода.

_________________
iLavr


31 Jan 2023 21:23
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Ну райнтайм с базовой математикой и функциями ввода/вывода да будет - хотя если запускать это всё над ShaOS, то всё что надо может быть прямо в ось встроено :)

_________________
:dj: https://mastodon.social/@Shaos


31 Jan 2023 21:39
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Ну ты попробуй... я с интересом и удовольствием посмотрю. :wink:

Кстати говоря, run-time библиотека VB до некоторых пор была частью ОС Windows.
Я всегда ещё очень удивлялся: VB не установлен, а run-time библиотека VB есть! :roll:

О! Смотри-ка! И у Windows 7 она есть!
Attachment:
vb.PNG
vb.PNG [ 13.03 KiB | Viewed 4867 times ]

А у меня на машине никаких VB 6.0 не установлено! :esmile:

_________________
iLavr


Last edited by Lavr on 31 Jan 2023 21:57, edited 1 time in total.



31 Jan 2023 21:49
Profile
Senior

Joined: 01 Jan 2022 04:34
Posts: 162
Location: USSR, Tashkent
Reply with quote
Shaos wrote:
imsushka wrote:
Shaos wrote:
Короче надо изобрести свой бейсик с построчной компиляцией в шитый код :o


ну ваащето и синклеровский и мсх(микрософт) и бк0010 - они фсе такие

а вот нифигулечки - ключевые слова бейсика, представляемые разными байтами не являются "шитым кодом" - мы в каком-то из топиков много лет назад ломали копья на эту тему...

P.S. хотя вроде подход реализованный в бейсиках иногда называют "token threading", но это совсем не то, что я имею вивду - я имею ввиду "subroutine threading" (цепочка вызовов подпрограмм), который сам по себе уже является скомпилированной программой и может исполняться без интерпретатора (см. https://en.wikipedia.org/wiki/Threaded_code)


есть 4 типа шитого кода. это из брусенцова.
я их уже и не помню
прямой - команды проца (вызовы подпрограмм) в перемежку с данными
косвенный - указатели на подпрограммы

вот второй в бейсиках и используется


31 Jan 2023 21:54
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
в бейсике токенизированный "не совсем шитый" код - там и не вызовы, и не адреса, а "токены"

_________________
:dj: https://mastodon.social/@Shaos


31 Jan 2023 21:57
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
в бейсике токенизированный - там и не вызовы, и не адреса, а "токены"

Это смотря в каком бейсике... В QBasic предварительно компилируется в промежуточный Р-код,
ну почти как в Жабе. :o В режиме интерпретации он выполняется быстрее.
А в ехе-шник уже компилируют именно его.

А "токены" - это всего лишь слова бейсика замененные кодами.

_________________
iLavr


31 Jan 2023 22:02
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Lavr wrote:
Ну ты попробуй... я с интересом и удовольствием посмотрю. :wink:

Кстати говоря, run-time библиотека VB до некоторых пор была частью ОС Windows.
Я всегда ещё очень удивлялся: VB не установлен, а run-time библиотека VB есть! :roll:

Ну вот и мне надо рантайм встроить в ShaOS - буду всем потом рассказывать, что поглядите ка только этот ЯВУ всё умеет без "внешних" библиотек :mrgreen:

_________________
:dj: https://mastodon.social/@Shaos


31 Jan 2023 22:04
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Lavr wrote:
Shaos wrote:
в бейсике токенизированный - там и не вызовы, и не адреса, а "токены"

Это смотря в каком бейсике... В QBasic предварительно компилируется в промежуточный Р-код,
ну почти как в Жабе. :o В режиме интерпретации он выполняется быстрее.
А в ехе-шник уже компилируют именно его.

А "токены" - это всего лишь слова бейсика замененные кодами.

Ну ок - в большинстве бейсиков
Так сказать "классический" подход :)

Вот интересное сравнение бейсиков - классических и класса "Tiny Basic":

https://en.wikipedia.org/wiki/Tiny_BASIC

Оказывается самые ранние бейсики были "Compile-and-go" - т.е. компилируемыми в память перед запуском (см. https://en.wikipedia.org/wiki/Compile_and_go_system)

Также в старых бейсиках в IF ... THEN использовался номер строки, куда делается переход (в Электронике МК-85 и по-видимому в Casio было также), а уже в более современных после THEN стало возможным писать выражения, а потом ещё и ELSE появился.

P.S. В МК-85 можно было вот так писать:
Code:
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

т.е. после ; выполняется остаток строки, если условие выполняется, а при наличии THEN делался перескок (получается, что всё что шло после THEN N; как бы ELSE)

_________________
:dj: https://mastodon.social/@Shaos


31 Jan 2023 22:04
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Ну вот и мне надо рантайм встроить в ShaOS - буду всем потом рассказывать, что поглядите ка только этот ЯВУ всё умеет без "внешних" библиотек :mrgreen:

Есть такая песня: Do It! Do It Again With Love! (c) Raffaella Carrà :ebiggrin:

А ОС Windows, собственно говоря, так и выдумали - система умеет всё, а ваши "программы" - это её
приложения, и пользуются её системными вызовами.

_________________
iLavr


31 Jan 2023 22:19
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Lavr wrote:
Есть такая песня: Do It! Do It Again With Love! (c) Raffaella Carrà :ebiggrin:

Я вроде её в таком варианте помню:


https://www.youtube.com/watch?v=YnBs1MuGSAA
Quote:
Italian singer Raffaella Carrà has died July 5, 2021 at the age of 78.

_________________
:dj: https://mastodon.social/@Shaos


31 Jan 2023 22:34
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 52 posts ]  Go to page 1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.