0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 7
1

Написать интерпретатор программного языка -помощь

12.11.2011, 17:29. Показов 2833. Ответов 4
Метки нет (Все метки)

Здраствуйте!
Ребят, кто хорошо разбирается в C++ помогите пожалуйста с реализацией данного задания или хотя бы подтолкните к решению, подскажите литературу и т.п.
У нас программирование всего 1 семестр(т.к. наша специальность частично связана с этим), толком ничего не объясняют, дали задание.
В С++ вникать надо затратить уйму времени, а времени всё мало остается. Решил обратится к вам.
Ниже идёт задание. Заранее благодарен за помощь.
Задание
Написать интерпретатор программного языка (далее называемого В.*) описанного в вашем
варианте. Ваша программа должна считывать код на языке В.* из файла или с клавиатуры (в
зависимости от варианта) и исполнять этот код или записывать в отдельный файл программу C++
эквивалентную исполнению кода.
Варианты заданий.
Варианты a считывают с клавиатуры и сразу исполняют.
Вариант 1 a
Синтаксис языка:
• Программная строка начинается с символа «:» (двоеточие), строка с комментарием
начинается с символа «-» (минус).
• Строка может содержать только одну операцию.
• Переменные не декларируются заранее, их тип определяется при первом использовании.
• Типы данных $ – строка, % – число с плавающей запятой (вводятся с запятой а не с
точкой), @ – целое число.
• Переменные могут быть преобразованы временно в другой тип, если при их последующем
использовании они обозначены как другой тип данных.
• Каждый тип данных должен уметь преобразовываться в другой (например число в строку,
или целое число в число с плавающей запятой).
• Операция > может означать:
◦ Ввод с клавиатуры, если она является первой после :
◦ Вывод на экран, если она является последней на строке.
◦ Запись данных из переменной или константы слева в переменную с права.
• Константы пишутся в одинарных кавычках (вне зависимости от типа данных).
• Операция & – это операция «наоборот»
◦ переписывает строку в обратном порядке символов в ней
◦ с численными переменными она меняет их значение с положительного на
отрицательное
• Программа заканчивается строкой начинающейся с «^».
Пример программы на языке :
- Это пример программы
- считываем строку с клавиатуры
:>$a
- переписываем строку задом на перёд
:&a
- выводим строку на экран
:a>
- записываем строку из двух пробелов в переменную s
:' '>$s
- выводим пробелы на экран
:s>
- записываем длину строки a в чело-численную переменную b
:#a>@b
- выводим значение b на экран
:b>
- записываем число 1,8 в переменную с плавающей запятой
:'1,8'>%c
- выводим на экран
:c>
- выводим на экран переменную преобразованную в целое число
:@c>
^
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2011, 17:29
Ответы с готовыми решениями:

Написать Интерпретатор Программного Языка(собственного)
Здраствуйте! Кто знает C++ помогите пожалуйста с реализацией данного задания!!! Пожалуйста,...

Интерпретатор небольшого языка программирования на С++
Здравствуйте, уважаемые форумчане! Я тут где-то год назад прочитал тему Evg и #pragma о создании...

Не удается откомпилировать интерпретатор М-языка
Задача: взять интерпретатор М-языка на сайте...

Пишем свой интерпретатор языка BASIC
***************** Благодаря форуму и Evg в частности интерпретатор развивается, потихоньку...

4
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
12.11.2011, 18:06 2
Цитата Сообщение от Евгений_Klug Посмотреть сообщение
подскажите литературу и т.п.
бъярн страутап там по моему третий раздел описание создания конкулятора ,классная тема
0
Эксперт С++
5824 / 3475 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
12.11.2011, 18:31 3
Компиляторы: принципы, технологии и инструменты. Ульман, Сети, Ахо
0
Эксперт С++
5049 / 3110 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
12.11.2011, 19:37 4
Nameless One, ИМХО в данной задаче это из пушки по воробьям. Здесь очень ограниченный набор команд, при этом синтаксис тоже настолько ограничен, что даже нормальный лексический анализатор не понадобится. Синтаксический анализ тоже не нужен, а семантические ошибки возможны в очень ограниченном количестве. Так что тут достаточно конечный автомат реализовать (можно даже свитчем, если не заморачиваться) и простенькую таблицу идентификаторов, чтобы удобнее работать с типами было.
0
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 7
13.11.2011, 10:02  [ТС] 5
Спасибо большое за литературу, мне конечно это не сильно помогло, так знаний практически по С++ нет. Может кто-нибудь алгоритм решения подскажет, буду очень благодарен.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2011, 10:02
Помогаю со студенческими работами здесь

Интерпретатор/компилятор ассемблер-подобного языка
Привет! Чую, что изобрёл велисипед, даже скорее велопарк, но всё же, поделюсь: Некоторое время...

Пишем свой интерпретатор языка BASIC
Добрый день. Я смотрю, тут на форуме была тема коллективного написания интерпретатора BASIC на...

Задание: разработать "Интерпретатор языка". С чего начать?
Здравствуйте, вручили темку на курсовик, ну точнее как вручили, не успел взять то, что хотел -...

Написать интерпретатор
здравствуйте,ребята помогите написать интерпретатор на языке С++. у кого небудь есть готовый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru