Написать простейший язык програмирования
Написать программу - простейший язык програмирования. Необходимо реализовать следую щие функции:
- присваивание значений
- основные арифметические операции
- вывод результата
- сохранение в файл
- чтение из файла
Примеры:
а=5 операция присваивания
В? команда вывода
В=35 вывод результата
В=а*с-15 математические функции
С использованием динамических структур, двунаправленных списков. Желательно на делфи, можно и на паскале .
Заранее спасибо.
Вот такую дали индивидуалку ... Если не тяжело, посмотрите, может сможете помочь...
Написать программу - простейший язык програмирования. Необходимо реализовать следую щие функции:
- присваивание значений
- основные арифметические операции
- вывод результата
- сохранение в файл
- чтение из файла
Примеры:
а=5 операция присваивания
В? команда вывода
В=35 вывод результата
В=а*с-15 математические функции
С использованием динамических структур, двунаправленных списков. Желательно на делфи, можно и на паскале .
Заранее спасибо.
Заранее пожалуйста! Нужен парсер текста, и нужен некий исполнительный модуль. Я бы делал интерпретатор команд, и пускай он себе парсит текстовый файл, после чего выдаёт результат. Про парсинг можешь прочитать хотя бы здесь , там книжка лежит. Там же можно и про компиляторы поискать. Ещё посмотри здесь и здесь. Может, будет полезно. Успехов!
... я думаю что всё не так уж тяжело, и не надо придумывать много, программа ведь для 2го курса так что там определённо не надо писать своего компилятора...
Я тоже думаю, что не всё так безнадёжно. Я вообще предполагал некую прогу, которая будет читать текстовый файл и на основании того, что там написано, будет выдавать какой-то результат. Единственное плохо - я лично ещё никак не представил себе, что делать с разобранным текстом...
Если бы кто то помог, был бы рад по самое 14е число... :D
Вот такую дали индивидуалку, надо зделать, сам если чесно не соображаю после праздников, да ещё и сессия в самом разгаре, посовтовали ваш форум, сказали "тебе там точно помогут!" Если не тяжело, посмотрите, может сможете помочь...
Написать программу - простейший язык програмирования. Необходимо реализовать следую щие функции:
- присваивание значений
- основные арифметические операции
- вывод результата
- сохранение в файл
- чтение из файла
Примеры:
а=5 операция присваивания
В? команда вывода
В=35 вывод результата
В=а*с-15 математические функции
С использованием динамических структур, двунаправленных списков. Желательно на делфи, можно и на паскале .
Заранее спасибо.
Однако и задание для второго курса! К сожалению, ничего к сказанному ранее добавить не могу. Сочувствую..
<выражение> скармливаешь функции, что я описал выше, потом ищешь в списке, нет ли там переменной с именем <идентификатор>, если есть, заменяешь значение в структуре, если нету, создаешь структуру (структура - запись вида {имя, тип, значение}) идобавляешь его к списку. Ну и так обрабатывай каждую строку.
Успехов!
Начни с того, что построй вычислитель выражений. Т.е. ты даешь функции строку вида "10+3*(x-12)/-3", а она тебе результат либо ошибку в такой-то позиции строки. x-здесь переменная. Построй список всех объявленых переменных, и в нем ищи если на нее ссылаются. Опять же, не найденая в списке переменная не была объявлена => ошибка. Объявлять переменные еще проще, чем вычислять выражения, разбираешь строку на лексемы вида <идентификатор> '=' <выражение>
<выражение> скармливаешь функции, что я описал выше, потом ищешь в списке, нет ли там переменной с именем <идентификатор>, если есть, заменяешь значение в структуре, если нету, создаешь структуру (структура - запись вида {имя, тип, значение}) идобавляешь его к списку. Ну и так обрабатывай каждую строку.
Успехов!
Всё верно, но зачем повторяться? на форуме есть похожая тема относительно недавно - про ввод формулы "с интЫрфейса юзверя". Так что зрите туда.
И ещё - найди книгу Страуструпа про С++ -> там есть как раз твоя готовая программа ;)
Всё верно, но зачем повторяться? на форуме есть похожая тема относительно недавно - про ввод формулы "с интЫрфейса юзверя". Так что зрите туда.
И ещё - найди книгу Страуструпа про С++ -> там есть как раз твоя готовая программа ;)
В аттаче этого сообщения есть статейка, как писать компилер и исходник к нему на Паскале (всё с комментами), реализованы все фичи, которые тебе нужны.