Page 14 - 4476
P. 14

вище  вимог.  Допускається  розширювати  набір  дозволених
                            операцій  і  операторів  вхідної  мови  за  умови  задоволення
                            заданим мінімальним вимогам, але при цьому не дозволяється
                            використовувати  операції  і  операторів  з  інших  варіантів
                            завдання  –  всі  такі  оператори  обов'язково  повинні
                            трактуватися як помилкові.
                                 Компілятор  повинен  перевіряти  наступні  семантичні
                            обмеження вхідної мови:
                                   не допускається присвоєння значень константам;
                                   перевіряти  змінні  та  константи  на  сумісність  типів
                            даних.
                                 Як      вихідна      (результуюча)       мова      повинна
                            використовуватися      мова     асемблера    процесорів     типу
                            Intel 80x86 .
                                 У загальному вигляді результуюча програма повинна
                            мати наступний вигляд:
                                 Program <Ім’я_програми>; {Ім'я програми вибирається
                            виконавцем самостійно}
                                 Var InpVar: <Тип_данних>; {Тип даних вказаний у
                            варіанті завдання}
                                 Var <Спісок_змінних>: <Тип_даних>;
                                 {Список змінних повинен містити перелік всіх змінних з
                            вихідної програми}
                                 Function CompileTest(InpVar: <Тип_данних>):
                            <Тип_данних>;
                                 {Змінні являються оголошені в тексті вихідної програми}
                                 Begin|
                                   Asm|
                                 {Сюди має бути включений текст результуючої програми,
                            породжений компілятором}
                                   end;
                                 end;
                                 begin
                                                           13
   9   10   11   12   13   14   15   16   17   18   19