Читаем Системное программное обеспечение. Лабораторный практикум полностью

Полное описание входного языка должно быть задано в грамматике входного языка, которая строится исполнителем на первом этапе работы. Грамматика входного языка должна предусматривать любые входные цепочки, удовлетворяющие изложенным требованиям. Допускаются любые модификации входного языка по выбору исполнителя, если они не выходят за рамки указанных требований. Допускается расширять набор разрешенных операций и операторов входного языка при условии удовлетворения заданным минимальным требованиям, но при этом не разрешается использовать операции и операторы из других вариантов задания – все такие операторы обязательно должны трактоваться как ошибочные.

Компилятор должен проверять следующие семантические ограничения входного языка:

• не допускается присвоение значений константам;

• не допускается присвоение значения идентификатору InpVar;

• не допускается использовать идентификатор Compi 1 eTest, иначе как для присвоения ему значений.

В качестве выходного (результирующего) языка должен использоваться язык ассемблера процессоров типа Intel 80x86 в модификации встроенного языка ассемблера компилятора Pascal производства фирмы Borland.

Результирующая программа должна иметь следующий вид:

Prog <Имя_программы>;

{Имя программы выбирается исполнителем самостоятельно}

Var InpVar: <Тип_данных>;

{Тип данных указан в варианте задания}

Var <Список_переменных>: <Тип_данных>;

{Список переменных должен содержать перечень

всех переменных из исходной программы}

Function CompileTest(InpVar: <Тип_данных>): <Тип_данных>;

{Переменные CompileTest и InpVar являются предопределенными

в тексте исходной программы}

Begin

Asm

{Сюда должен быть включен текст результирующей программы,

порожденный компилятором}

end;

end;

begin

readln(InpVar);

writeln(CompileTest(InpVar));

end.

Всю неизменную часть результирующей программы компилятор должен порождать самостоятельно вне зависимости от поданной на вход исходной программы.

Имя результирующей программы исполнитель выбирает самостоятельно. Идентификаторы InpVar и CompileTest являются предопределенными переменными, которые используются для подачи значений на вход результирующей программы и получения результата от нее при тестировании работоспособности результирующей программы.

Тип данных, используемый для всех переменных, задается в варианте задания.

Все встречающиеся в исходной программе идентификаторы следует считать простыми скалярными переменными, не требующими выполнения преобразования типов. Ограничения на длину идентификаторов и констант во входной программе исполнитель выбирает самостоятельно, но выбранная длина не должна быть меньше 32.В случае если на вход компилятора подается входная программа, содержащая семантические или синтаксические ошибки, компилятор должен корректно завершать свое выполнение и выдавать сообщение о найденной ошибке во входной программе с указанием строки, в которой найдена ошибка. По возможности компилятор должен указывать тип найденной ошибки. Компилятор может указать несколько ошибок во входной программе, если они были им обнаружены.

<p>Варианты заданий</p>

Предлагаемые варианты заданий приведены в табл. 5.2.

Таблица 5.2. Варианты заданий на выполнение курсовой работы

Ниже поясняются цифровые обозначения, используемые в табл. 5.2. Типы констант:

2 – двоичные;

8 – восьмеричные;

16 – шестнадцатеричные.

Дополнительные операции:

*, / – умножение и деление;

>> << – сдвиги вправо и влево (арифметические или логические – по выбору);

++ – инкремент (увеличение значения переменной на 1);

– декремент (уменьшение значения переменной на 1).

Типы дополнительных операторов цикла:

1. Цикл с предусловием вида while <выражение> do <оператор>.

2. Цикл с постусловием типа repeat <оператор> until <выражение>.

3. Цикл с постусловием вида do <оператор> while <выражение>.

4. Два варианта цикла с перечислением по заданной переменной вида for <переменная>:=<выражение> to <выражение> do <оператор> либо for <переменная>:=<выражение> downto <выражение> do <оператор>.

Типы комментариев:

1. Комментарий в фигурных скобках: {…}.

2. Комментарий в круглых скобках со звездочкой: (*…*).

3. Комментарий за двойной косой чертой до конца строки: //….

4. Комментарий внутри косых черт со звездочкой: /*…*/.

Методы оптимизации:

1. Исключение лишних операций.

2. Свертка объектного кода.

<p>Порядок оценки результатов работы</p>

Выполненная курсовая работа оценивается по следующим показателям:

• содержание пояснительной записки;

• функциональность построенного компилятора;

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных

Все жанры