Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2013, 11:55   #1
pepsik66
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию Интерпретатор на Си

Задали написать простенький интерпретатор с парсером.
Смотрел исходники разных интерпретаторов, но нифига не понимаю (где-то 1 .с и пара .тх, а где-то по 10 .срр и по 30 .test.
Я правильно понимаю, что он должен считать код из .тхт, написанный н моем языке) и выполнить его?
Подскажите хотя бы, с чего начать.
pepsik66 вне форума Ответить с цитированием
Старый 18.01.2013, 15:04   #2
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Во-первых, точно и четко определить все что будет в вашем языке - конструкции, операторы, синтаксис.
Далее можно начинать работать над программой . Пускай у нас только одна главная функция, переменные локальные и только к ней и три типа данных integer, floating, character.
Из операторов у нас оператор ввода/вывода на консоль, оператор присвоения, оператор условия, оператор цикла с предусловием.

Код:
integer a
input a
let a=a*2
print a
В моем примере разделитель команд - это символ новой строки \n

Вот алгоритм программы
пока не конец файла
Считать строку.
Взять первое слово - оператор
удалить из строки первое слово
если оператор == let
operator_let(строка) - отдаем на исполнение оператора присваивание
если оператор == integer
add_integer_variable(строка) - добавляем переменную в какой-то массив переменных
если оператор == print
operator_print(строка) - оператор вывода

и т. д.
Hemul вне форума Ответить с цитированием
Старый 18.01.2013, 15:12   #3
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Какой это язык, если не секрет?)
Blind Guard вне форума Ответить с цитированием
Старый 18.01.2013, 15:18   #4
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

я на ходу придумал просто что-нибудь полегче. Можно отметить сходство с бейсиком
Hemul вне форума Ответить с цитированием
Старый 18.01.2013, 15:27   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Тогда уж легче интерпретатор Брейнфака написать, правда, никакого парсера не понадобится практически.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.01.2013, 15:47   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Следущий по легкости написания интерпретатор - Forth
waleri вне форума Ответить с цитированием
Старый 19.01.2013, 11:04   #7
pepsik66
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию

Какие в итоге должны быть файлы?
И парсер работает только на основе tokena или там еще какие-то фишки есть?
pepsik66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерпретатор 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