Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 34
1

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

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

помогите пожалуйста мне нужно разработать интерпритатор с поддержкой определяемых пользователем функций. сам интерпритатор я написала а вот как написать с поддержкой определяемых пользователем функций не знаю. объясните хоть как можно это написать а дальше сама просто не понимаю как это релизовать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2014, 19:40
Ответы с готовыми решениями:

Разработка интерпретатора языка арифметического выражения с поддержкой определяемых пользователем функции
Нужно разработать интерпретатор языка арифметического выражения с поддержкой определяемых...

использование функции определяемых пользователем
Ни как понять не могу как после создания функции пользователем , вызывать в нужный момент в...

Программа, которая использует три определяемых пользователем функции
Только начал изучать C++ и столкнулся с такой вот задачкой: "Напишите программу, которая...

Программа, которая использует три определяемых пользователем функции
Помогите понять, что не так или...? Напишите программу на С++, которая использует три...

3
8 / 8 / 3
Регистрация: 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.

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

Добавлено через 6 минут
спасибо но это подходит только для интерпритатора си. а мой просто интерпритатор арифметических выражений
0
8 / 8 / 3
Регистрация: 30.04.2013
Сообщений: 25
01.02.2014, 10:14 4
Цитата Сообщение от baranka941 Посмотреть сообщение
спасибо но это подходит только для интерпритатора си. а мой просто интерпритатор арифметических выражений
Сишный код я просто для примера взял. Вот если бы увидеть пример работы вашего интерпретатора, то можно было бы и что-то поконкретнее подсказать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2014, 10:14

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Напишите программу, которая использует три определяемых пользователем функции (включая main ())
Напишите программу на C++, которая использует три определяемых пользователем функции (включая...

Разработать интерпретатор
Народ объясните как вообще его делать. И в чем заключаеться суть. Тоесть я должен создать...

Интерпретатор функций
Помогите придумать интерпретатор функций. Смысл в чем, в textbox вводится формула, по которой...

Разработать интерпретатор команд
1. Разработать интерпретатор команд: - Реализовать метод MatrixApp.Program.doExit следующего вида...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.