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

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

Войти
Регистрация
Восстановить пароль
 
baranka941
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 34
#1

Разработать интерпретатор с поддержкой определяемых пользователем функций - C++

25.01.2014, 19:40. Просмотров 290. Ответов 3
Метки нет (Все метки)

помогите пожалуйста мне нужно разработать интерпритатор с поддержкой определяемых пользователем функций. сам интерпритатор я написала а вот как написать с поддержкой определяемых пользователем функций не знаю. объясните хоть как можно это написать а дальше сама просто не понимаю как это релизовать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 19:40     Разработать интерпретатор с поддержкой определяемых пользователем функций
Посмотрите здесь:

Используя механизм перегрузки функций, разработать две версии функции F C++
использование функции определяемых пользователем C++
C++ Разработать класс с набором функций для управления односвязным списком
C++ Напишите программу, которая использует три определяемых пользователем функции (включая main ())
Программа, которая использует три определяемых пользователем функции C++
Разработать программу, которая вычисляет факториал и состоит из функций C++
C++ Разработать шаблон функций, позволяющий вводить координаты точек
Разработать программу создания динамического массива с использованием функций C++
Задание: разработать "Интерпретатор языка". С чего начать? C++
Разработать перегрузку функций C++
C++ Разработать библиотеку функций по условию
C++ Программа, которая использует три определяемых пользователем функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
somebdy
7 / 7 / 1
Регистрация: 30.04.2013
Сообщений: 25
25.01.2014, 23:33     Разработать интерпретатор с поддержкой определяемых пользователем функций #2
Вот смотри, допустим есть функция:
C++
1
2
3
int f(int a, int b) {
    <код>
}
Нам понадобится контейнер (массив например) в который нужно сохранить имя функции, тип возвращаемого значения, список параметров (аргументов), а также тело функции.
Можно эту информацию хранить так: [ {<имя>, <возвр. тип>, <параметры>, <код>}, ... ], где <код>, в свою очередь, также будет являтся контейнером.
Если у вас уже есть работающий интерпретатор, то выполнение <код>-а больших проблем составлять не должно.
Переметры это, по сути, объявление переменных.
С именем и типом думаю всё и так ясно. Имя будем искать в таблице при вызове функции, а тип нужен для возврата значения.

Перейдем к вызову функции.
C++
1
int c = f(1, 2);
Что нам необходимо сделать здесь? Нам нужно увидеть что мы присваиваем переменной c. значение функции f.
Идем в табличку функций, ищем необходимую функцию, сравниваем тип переменной и тип значения функции, и если они одинаковы, либо совместимы (например int и double), то переходим к выполнению тела функции, перед этим объявив переменные, являющиеся параметрами, и присвоив им переданные при вызове функции значения. Выполнив <код>, нам нужно сохранить результат функции в переменную c.

Примерно так я это вижу.
baranka941
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 34
26.01.2014, 16:41  [ТС]     Разработать интерпретатор с поддержкой определяемых пользователем функций #3
ну в общем это так но не для курсача:-(

Добавлено через 6 минут
спасибо но это подходит только для интерпритатора си. а мой просто интерпритатор арифметических выражений
somebdy
7 / 7 / 1
Регистрация: 30.04.2013
Сообщений: 25
01.02.2014, 10:14     Разработать интерпретатор с поддержкой определяемых пользователем функций #4
Цитата Сообщение от baranka941 Посмотреть сообщение
спасибо но это подходит только для интерпритатора си. а мой просто интерпритатор арифметических выражений
Сишный код я просто для примера взял. Вот если бы увидеть пример работы вашего интерпретатора, то можно было бы и что-то поконкретнее подсказать.
Yandex
Объявления
01.02.2014, 10:14     Разработать интерпретатор с поддержкой определяемых пользователем функций
Ответ Создать тему
Опции темы

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