Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Евгений_Klug
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 7
#1

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

12.11.2011, 17:29. Просмотров 1677. Ответов 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>
^
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2011, 17:29     Написать интерпретатор программного языка -помощь
Посмотрите здесь:

C++ Пишем свой интерпретатор языка BASIC
Курсовая, необходимо написать программу-интерпретатор C++
Написать Интерпретатор Программного Языка(собственного) C++
C++ Интерпретатор небольшого языка программирования на С++
C++ Выделение в исходном коде программы ключевых слов языка и операторов языка по словарю
Интерпретатор/компилятор ассемблер-подобного языка C++
Задание: разработать "Интерпретатор языка". С чего начать? C++
C++ Написать интерпретатор
По русскому названию языка программирования определить английское название этого языка C++
Не удается откомпилировать интерпретатор М-языка C++
Написать простой компилятор языка C C++
Написать интерпретатор логических выражений с построением таблицы четверок и выполнить ее C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,586
Записей в блоге: 12
12.11.2011, 18:06     Написать интерпретатор программного языка -помощь #2
Цитата Сообщение от Евгений_Klug Посмотреть сообщение
подскажите литературу и т.п.
бъярн страутап там по моему третий раздел описание создания конкулятора ,классная тема
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
12.11.2011, 18:31     Написать интерпретатор программного языка -помощь #3
Компиляторы: принципы, технологии и инструменты. Ульман, Сети, Ахо
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.11.2011, 19:37     Написать интерпретатор программного языка -помощь #4
Nameless One, ИМХО в данной задаче это из пушки по воробьям. Здесь очень ограниченный набор команд, при этом синтаксис тоже настолько ограничен, что даже нормальный лексический анализатор не понадобится. Синтаксический анализ тоже не нужен, а семантические ошибки возможны в очень ограниченном количестве. Так что тут достаточно конечный автомат реализовать (можно даже свитчем, если не заморачиваться) и простенькую таблицу идентификаторов, чтобы удобнее работать с типами было.
Евгений_Klug
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 7
13.11.2011, 10:02  [ТС]     Написать интерпретатор программного языка -помощь #5
Спасибо большое за литературу, мне конечно это не сильно помогло, так знаний практически по С++ нет. Может кто-нибудь алгоритм решения подскажет, буду очень благодарен.
Yandex
Объявления
13.11.2011, 10:02     Написать интерпретатор программного языка -помощь
Ответ Создать тему
Опции темы

Текущее время: 19:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru