АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Завдання на курсову роботу

Читайте также:
  1. I. Мета, завдання та загальні вимоги до виконання курсової роботи
  2. II. Завдання та обов'язки
  3. II. Перевірка виконання домашнього завдання.
  4. II. Перевірка домашнього завдання.
  5. III. Мета, стратегічні напрями та основні завдання Національної стратегії
  6. IV. Домашнє завдання з інструктажем.
  7. V. Домашнє завдання з інструктажем.
  8. VI. Домашнє завдання.
  9. VI. Домашнє завдання.
  10. VI. Домашнє завдання.
  11. VII. Домашнє завдання.
  12. А. Завдання

 

Компілятор повинен запускатися командним рядком з декількома вхідними параметрами. Першим і головним вхідним параметром має бути ім'я вхідного файлу, другим параметром має бути ім'я результуючого файлу. Вимоги до решти параметрів командного рядка і управляючих ключів (якщо вони необхідні), встановлюються виконавцем самостійно.

Командний рядок має бути самодостатнім для функціонування компілятора. Окрім інтерфейсу командного рядка можлива наявність додаткового інтерактивного інтерфейсу користувача для компілятора (у тому числі і графічного) по бажанню виконавця роботи.

Вхідна мова компілятора повинна задовольняти наступним вимогам:

· вхідна програма зачинається ключовим словом program і закінчується ключовим словом end;

· вхідна програма може бути розбита на рядки довільним чином, всі пропуски і переходи рядка повинні ігноруватися компілятором;

· текст вхідної програми може містити коментарі будь-якої довжини, які повинні ігноруватися компілятором (вид коментаря заданий у варіанті завдання);

· вхідна програма має бути єдиним модулем, що містить лінійну послідовність операторів, виклики процедур і функцій не передбачаються;

· мають бути передбачені наступні варіанти операторів вхідної програми:

· оператор привласнення виду < змінна>:=<вираз>;

· умовний оператор вигляду if < умова> then < оператор>, або if < умова> then < оператор> else < оператор>;

· складений оператор виду begin. end;

· оператор циклу, передбачений варіантом завдання;

· вирази в операторах можуть містити наступні операції (мінімум):

· арифметичні операції складання (+) і віднімання (-);

· операції порівняння менше (<), більше (>), рівно (=);

· логічні операції «і» (and), «або» (or), «ні» (not);

· додаткові арифметичні операції, передбачені варіантом завдання;

· операндами у виразах можуть виступати ідентифікатори (змінні) і константи (тип допустимих констант вказаний у варіанті завдання);

· всі ідентифікатори, що зустрічаються в вихідній програмі, повинні сприйматися як змінні, що мають тип, заданого у варіанті завдання (попередній опис ідентифікаторів в вихідній програмі не потрібний);

· при необхідності можна враховувати два зумовлені ідентифікатори InpVar і CompileTest, сенс яких буде ясний з опису вихідної мови, що приводиться нижче.

· Обов’язково організувати вивід результатів обчислень на консоль.

Пріоритет операцій виконавець роботи повинен вибрати самостійно (пріоритет операцій враховується в граматиці вхідної мови). Для зміни пріоритету операцій повинні використовуватися круглі дужки.

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

Компілятор повинен перевіряти наступні семантичні обмеження вхідної мови:

- не допускається присвоєння значень константам;

- не допускається привласнення значення ідентифікатору InpVar;

- не допускається використовувати ідентифікатор CompileTest інакше, як для привласнення йому значень.

Як вихідна (результуючого) мова повинна використовуватися мова асемблера. процесорів типу Intel 80x86 в модифікації вбудованої мови асемблера компілятора Pasca виробництва фірми Borland.

У загальному вигляді результуюча програма повинна мати наступний вигляд:

Program <Ім’я_програми>; {Ім'я програми вибирається виконавцем самостійно}

Var InpVar: <Тип_данних>; {Тип даних вказаний у варіанті завдання}

Var <Спісок_змінних>: <Тип_даних>;

{Список змінних повинен містити перелік всіх змінних з вихідної програми}

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

{Змінні являються оголошені в тексті вихідної програми}

Begin|

Asm|

{Сюди має бути включений текст результуючої програми, породжений компілятором}

end;

end;

begin

readln(InpVar);

writeln(CompileTest(InpVar));

end.

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

Ім'я результуючої програми виконавець вибирає самостійно. Ідентифікатори InpVar і CompileTest є зумовленими змінними, які використовуються для подачі значень на вхід результуючої програми і отримання результату від неї при тестуванні працездатності результуючої програми.

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

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

У випадку, якщо на вхід компілятора подається вхідна програма, що містить семантичні або синтаксичні помилки, компілятор повинен коректно завершувати своє виконання і видавати повідомлення про знайдену помилку у вхідній програмі з вказівкою рядка, в якому знайдена помилка. По можливості, компілятор повинен вказувати тип знайденої помилки. Компілятор може вказати декілька помилок у вхідній програмі, якщо вони були їм виявлені.

 


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)