
Среда программирования: Delphi 7.0
Название работы: Транслятор с мини pascal
Вид работы: Курсовая работа
Тематика работы: Компиляторы
Объем программы: 6 (по десятибалльной шкале)
Уровень сложности: 7 (по десятибалльной шкале)
Разработчик (автор):
Программист сайта kursovik.com
(письмо автору)
Данная работа написана ЧЕЛОВЕКОМ без использования ИИ
Ключевые слова: компилятор, файл, транслятор, интерпретатор, паскаль, язык, синтаксис
Функции программы:
Нужно построить интерпретатор Паскале подобного языка, синтаксис которого описан ниже.
Программа проверяет синтаксис входного файла и при этом строит дерево разбора программы.
Дерево разбора доступно для просмотра пользователю.
После успешной проверки синтаксиса программу можно запустить на выволнение.
Описание синтаксиса языка:
1. депак является сильно урезанной реализацией настоящего паскаля.
всякая правильная программа на депаке правильно будет работать и на паскале.
2. заглавные и строчные буквы в тексте программы не различаются.
3. все переменные в депаке имеют только целые неотрицательные значения,
не превышающие 65535. их имена состоят из одной латинской буквы.
описание переменных в программе всегда одно и имеет вид:
var <список перменных через запятую>:word;
например:
var a,t,b,z:word;
4. арифметические выражения в депаке состоят не более чем из одного
арифметического действия; скобки запрещены. вид возможных
арифметических выражений:
a const
a+b const+a a+const
a-b const-a a-const
a*b const*a a*const
a div b const div a a div const (деление нацело).
формально разрешено действие над двумя числами типа const1+const2 и т.п.
в приведенных выражениях a и b - имена переменных,
а const1 и const2 - произвольные значения целых чисел в
диапазоне 0-65535 включительно .
5. оператор присвоения имеет традиционный синтаксис:
<переменная>:=<арифметическое выражение>;
арифметическое выражение должно удовлетворять требованиям пункта 4.
6. внутри всех конструкций языка (условный оператор, циклы)
допускается использование составного оператора, заключенного
между служебными словами begin/end и состоящего из нескольких
операторов присвоения.
например:
begin
x:=2*n;
k:=x+1;
end;
разрешается писать один оператор внутри begin/end, но отсутствие
операторов между ними считается ошибкой.
; перед end ставить не обязательно.
7. условие может иметь вид:
<арифметическое выражение> <знак> <арифметическое выражение>
где <знак> - один из следующих: = <> > < >= <=
8. условный оператор имеет вид:
if <условие> then <оператор1> else <оператор2>;
операторы 1 и 2 могут быть только операторами присвоения (или составными)!!!
9. циклы могут быть записаны следующими способами:
while <условие> do <оператор>;
repeat <оператор> until <условие>;
for <переменная>:=<выражение> to <выражение> do <оператор>;
for <переменная>:=<выражение> downto <выражение> do <оператор>;
оператор в теле цикла может быть только оператором присвоения или составным!!!
примечание. напомним, что в паскале конструкция repeat/until одновременно
служит ограничителями составного оператора. поэтому в депаке сочетание
repeat begin считается ошибкой.
10. цикл for c задаваемым шагам имеет вид:
for <переменная>:=<выражение> to <выражение> step <выражение> do <оператор>
for <переменная>:=<выражение> downto <выражение> step <выражение> do <оператор>;
11. для вывода результатов используется процедура
writeln(<переменная1>,<переменная2>,<переменная3>);
количество выводимых на дисплей чисел обязательно равно трем!
(допускается повторение одной и той же переменной). после writeln();
12. программа должна иметь следующую структуру:
program <имя>;
var <список>:integer;
begin <операторы программы>
end.
именем программы может служить любое сочетание символов до ";". <список>
представляет собой имена переменных, разделенных запятыми (см. пример в п.3).
13. разрешается использовать комментарии, заключая произвольный текст
в { }. отмечающие комментарий скобки должны быть обязательно парными;
внутри комментария символ { воспринимается как ошибка. число и размер
комментариев ограничен только наличием свободного места для текста.
14. цикл for c задаваемым шагам имеет вид:
for <переменная>:=<выражение> to <выражение> step <выражение> do <оператор>;
for <переменная>:=<выражение> downto <выражение> step <выражение> do <оператор>;
Описание (отчет):
Есть
на 49 страниц, посмотреть оглавление

minipas
win2kapp
minipas
w2kmain
minipas
win2kapp
strtools
descript
win2kapp
about
minipas
comp
minipas
w2kstrs
about
about
logomain
w2kmain
win2kapp
logomain
w2kmainПеред покупкой готовой работы не забудьте проверить её оригинальность. Запросить у администратора проверку текущей оригинальности работы по версии системы Антиплагиат.РУ
Отчет к программе. СодержаниеВведение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Проектироавание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Кодирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ . . . . . . .