Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Alex Astafiev                        2:5000/228.16  18 Mar 2003  18:28:41
 To : Georgii Kostin
 Subject : Исходники компилятора/интерпретатора
 -------------------------------------------------------------------------------- 
 
  GK> Приветствую, All!
  GK> Hужен сабж или ссылки где такой взять. Для демонстрации как это
  GK> пишется. Что-нибудь типа Mini Basic 1.Hебольшой(до 25-30
  GK> kb) 2.Желательно с комментариями 3.Что-бы Copirinth осыобых
  GK> небыло. 4.Hе сильно сложный.
 
 бейсик как и любой интерпретатор легко пишется.
 сделай несколько допущений:
 
 1. программа записывается не в текстовом виде, а в виде кодов
 2. любое бейсик-слово является командой
 3. ограниченый набор команд
 4. Ограниченый набор функций(функции отличаются от команд).
 5. Программы может быть только в столбик
 
 пояснение 1-го.
 
 LET   0x1
 PRINT 0x2
 GOTO  0x3
 FOR   0x4
 NEXT  0x5
 конец программы 0x6
 число 0x7
 строка 0x8
 и так далее..
 
 это избавит от нудного разбора текста. Такой способ записи называется
 токенизацией. Hо придется написать простейшую программу отображения токенов на
 экране. Раньше никаких тектовых редакторов не было, а комьютеру просто давалась
 команда LIST 200-300 и он распечатывал тебе 100-200 строку программы.
 2.
 Это значит что интерпретатор не может встретить что-то, что бы не было командой
 для него.  То есть в программе встречается не A=A+2, а COMPUTE A=A+2,
 не B=2, а LET B=2. Если он встречает что-то непонятное, то просто пишет:
 
 C Nonsense in BASIC, 10:1
 
  :-))))
 
 3.
 Это значит что в начале нужно сесть с бумажкой и составить список бейсик-команд
 которые нужно сделать первыми. Вероятно это LET, PRINT, FOR/NEXT, COMPUTE,
 GOTO.
 
 5. Значит то что по одной команде на строку.
 Самое сложное с чем ты столкнешься - как написать оператор COMPUTE, вычисляющий
 выражения. Это называется Expession evaluation, а часть которая это делает -
 expression evaluator. Если реально нужно, дам. Да и здесь подскажут как
 сделать...
 0 error(s), 0 warning(s)
 
 ---
  * Origin: Фидонет - сеть друзей. Будьте дружественнее! (2:5000/228.16)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Исходники компилятора/интерпретатора   Georgii Kostin   09 Mar 2003 01:38:30 
 Исходники компилятора/интерпретатора   Aleksey Skurihin   18 Mar 2003 14:22:19 
 Исходники компилятора/интерпретатора   Alex Astafiev   18 Mar 2003 18:28:41 
 Исходники компилятора/интерпретатора   Alexander Shevchenko   19 Mar 2003 12:19:25 
 Исходники компилятора/интерпретатора   Sasha Pelepeichenko   20 Mar 2003 20:17:50 
 Re: Исходники компилятора/интерпретатора   Alexey Tomin   19 Mar 2003 08:59:39 
 Re: Исходники компилятора/интерпретатора   Vitaly Lugovsky   20 Mar 2003 03:26:33 
Архивное /ru.algorithms/174643e775c21.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional