![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 11.11.2012
Сообщений: 7
|
![]()
Задали написать простенький интерпретатор с парсером.
Смотрел исходники разных интерпретаторов, но нифига не понимаю (где-то 1 .с и пара .тх, а где-то по 10 .срр и по 30 .test. Я правильно понимаю, что он должен считать код из .тхт, написанный н моем языке) и выполнить его? Подскажите хотя бы, с чего начать. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 03.10.2010
Сообщений: 321
|
![]()
Во-первых, точно и четко определить все что будет в вашем языке - конструкции, операторы, синтаксис.
Далее можно начинать работать над программой . Пускай у нас только одна главная функция, переменные локальные и только к ней и три типа данных integer, floating, character. Из операторов у нас оператор ввода/вывода на консоль, оператор присвоения, оператор условия, оператор цикла с предусловием. Код:
Вот алгоритм программы пока не конец файла Считать строку. Взять первое слово - оператор удалить из строки первое слово если оператор == let operator_let(строка) - отдаем на исполнение оператора присваивание если оператор == integer add_integer_variable(строка) - добавляем переменную в какой-то массив переменных если оператор == print operator_print(строка) - оператор вывода и т. д. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 14.03.2012
Сообщений: 139
|
![]()
Какой это язык, если не секрет?)
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 03.10.2010
Сообщений: 321
|
![]()
я на ходу придумал просто что-нибудь полегче. Можно отметить сходство с бейсиком
![]() |
![]() |
![]() |
![]() |
#5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Тогда уж легче интерпретатор Брейнфака написать, правда, никакого парсера не понадобится практически.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Следущий по легкости написания интерпретатор - Forth
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 11.11.2012
Сообщений: 7
|
![]()
Какие в итоге должны быть файлы?
И парсер работает только на основе tokena или там еще какие-то фишки есть? |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Интерпретатор | koljsch | C++ Builder | 0 | 07.11.2012 02:22 |
Интерпретатор | Дэнис | Помощь студентам | 10 | 24.02.2012 22:31 |
интерпретатор | aram111 | Помощь студентам | 2 | 15.10.2011 22:22 |
Интерпретатор | Bizunov | Помощь студентам | 0 | 03.06.2011 15:52 |