Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 70029.doc
Скачиваний:
3
Добавлен:
01.05.2022
Размер:
148.48 Кб
Скачать

1.2 Требования к оформлению пояснительной записки

Общий объем пояснительной записки по курсовому проекту составляет 20-25 листов формата А4, выполненных в редакторе Microsoft Word одной из последних версий на момент формирования расчетно-пояснительной записки.

К оформлению записки предъявляются следующие требования:

– шрифт Times New Roman Cyr 14 пт;

– полуторный интервал;

– страницы пронумерованы, номера располагаются внизу страницы по центру;

– абзацы выровнены по ширине, первая строка абзаца имеет отступ 1.25 см;

– названия разделов, а также заголовки «Введение», «Заключение» и «Список литературы» выводятся прописными буквами и выровненными по центру;

– названия подразделов выводятся с первой прописной буквы, остальные строчные и оформляются как абзацы;

– подписи к рисункам выводятся по центру под рисунком в виде «Рисунок 1.1 – Структурная схема основной программы»;

– название таблицы выводится над таблицей без абзацного отступа в виде «Таблица 1.2 – Структура таблицы ПРИБОРЫ».

2 Задания на курсовые работы

2.1 Задание № 1

Провести теоретическое исследование процесса работы компилятора. Рассмотреть в своей работе следующие вопросы:

– компилятор и этапы его работы;

– построение таблиц идентификаторов и лексем;

– лексический, синтаксический и семантический анализ;

Объем теоретической части 10-15 страниц.

2.2 Задание № 2

Создать программное приложение, анализирующее текст программы на языке Паскаль. Программа должна открывать любой файл с расширением .pas, .dpr или .txt и загружать его в отдельное поле (которое можно в любой момент очистить и загрузить в него другой файл);

Добавить в программное приложение модуль, составляющий таблицу идентификаторов программы. Он должен обладать следующими функциями:

1) поиск всех переменных главной программы и вывод на экран их имен и типов;

2) поиск всех функций программы и вывод на экран их имен и типов результата;

3) поиск всех процедур программы и вывод на экран их имен.

Все три вида идентификаторов должны выводиться в отдельные строковые таблицы.

2.3 Задание № 3

Добавить в разрабатываемое программное приложение модуль, составляющий таблицу лексем программы. Он должен обладать следующими функциями:

1) Поиск всех лексемы главной программы, вывод на экран их имен и типов;

2) Присвоение всем лексемам кодовых обозначений;

3) Возможность просмотра всех лексем программы выбранного типа (пользователь выбирает тип из раскрывающегося списка.

2.4 Задание № 4

Дополнить разрабатываемое приложение программным модулем, осуществляющий анализ правильности определенной конструкции программного кода с точки зрения синтаксиса и семантики. Он должен обладать следующими функциями:

– анализировать текст программы, чтобы проверить правильность написания определенной конструкции программного кода.

– выдавать отчет о допущенных ошибках с указанием номера строки, где находится ошибка.

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

Вариант 1

Анализируемая конструкция

Условный оператор IF … THEN … ELSE.

Правила оформления конструкции

Условный оператор имеет следующие формы записи:

if логическое выражение then

оператор 1

else

оператор 2;

if логическое выражение then

begin

группа операторов 1

end

else

begin

группа операторов 2

end;

if логическое выражение then оператор;

if логическое выражение then

begin

группа операторов

end;

Если логическое выражение истинно, тогда выполняется оператор 1 или группа операторов 1, иначе выполняется оператор 2, или группа операторов 2, или оператор if пропускается и выполняется следующий за ним оператор.

Проверяемые условия:

– перед else отсутствует точка с запятой;

– после if стоит условие;

– если после if несколько условий, разделенных операторами and или or, то эти условия должны быть заключены в скобки.

Вариант 2

Анализируемая конструкция

Оператор перехода GOTO.

Правила оформления конструкции

Оператор перехода имеет следующий вид:

goto метка;

Метка представляет собой целое число без знака в диапазоне 1-9999 или идентификатор (имя). Метка записывается перед помеченным оператором и отделяется от него двоеточием. Метка должна быть объявлена в разделе label. Например:

label

10, aaa;

...

begin

goto 10;

aaa: a := 2;

10: y := y + a;

end.

Проверяемые условия:

– после goto указана метка;

– метка, поставленная после goto, описана в разделе label

– метка, поставленная после goto, встречается в тексте программы.

Вариант 3

Анализируемая конструкция

Оператор цикла FOR.

Правила оформления конструкции

Оператор цикла с параметром имеет вид:

for i := m1 to m2 do

begin

операторы циклической части программы

end;

Здесь for, to, do – служебные слова; i – счетчик цикла (или управляющая переменная); m1, m2 – начальное и конечное значения параметра цикла.

Если в цикле выполняется один оператор, то операторные скобки begin и end не пишутся.

for i := m1 to m2 do

оператор;

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

Если параметр цикла имеет целый тип, то он автоматически увеличивается на +1 от значения m1 до значения m2. Если параметр цикла должен уменьшаться на –1, то вместо служебного слова to используют downto.

Проверяемые условия:

– счетчик цикла является целым или символьным значением;

– предел цикла является целым или символьным значением;

– в конструкции не пропущены слова to (downto) и do.

Вариант 4

Анализируемая конструкция

Оператор цикла WHILE.

Правила оформления конструкции

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

while условие do

begin

операторы циклической части программы (тело цикла)

end;

Здесь while, do – зарезервированные слова; условие - выражение логического типа.

Если в циклической части стоит всего один оператор, то операторные скобки begin и end можно не указывать и оператор цикла примет вид:

while условие do оператор;

Проверяемые условия:

– после while стоит условие (или несколько условий, разделенных операторами and и or);

– в конструкции не пропущено слово do.

Вариант 5

Анализируемая конструкция

Оператор цикла REPEAT … UNTIL.

Правила оформления конструкции

Цикл с последующим условием используется в тех случаях, когда заранее неизвестно число повторений цикла. Общий вид оператора:

repeat

Оператор 1;

Оператор2;

Оператор N;

until условие;

Здесь repeat, until – зарезервированные слова; условие - выражение логического типа.

Проверяемые условия:

– после until стоит условие (или несколько условий, разделенных операторами and и or);

– в конструкции не пропущены слова repeat и do.

Вариант 6

Анализируемая конструкция

Оператор выбора CASE.

Правила оформления конструкции

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

case выражение (переключатель) of

константа 1: оператор 1;

константа 2: оператор 2;

константа n: оператор n

[else оператор k]

end;

Здесь case, of, else, end – зарезервированные слова. Квадратные скобки говорят о том, что эта часть конструкции может отсутствовать.

Проверяемые условия:

– в качестве переключателя используется значение порядкового типа (кроме real и string);

– в конструкции не пропущено слово of;

– диапазоны значений оператора выбора не пересекаются.

Вариант 7

Анализируемая конструкция

Объявление массива (любого) и обращение к его элементам.

Правила оформления конструкции

Массив – это сложный тип, представляющий собой структуру, состоящую из фиксированного числа компонент одного типа. Описание массива в разделе var имеет вид:

var

a: array [t1] of t2;

где а – имя массива, array, of – служебные слова (означают «массив из…»), t1 – тип индексов; t2 – тип компонент (базовый тип).

Количество индексов определяет размерность массива. Индексы могут быть целого (кроме longint), символьного, логического, перечисляемого и диапазонного типов. Индексы разделяются запятыми и заключаются в квадратные скобки. Компоненты массива могут быть любого типа, кроме файлового.

Проверяемые условия:

– правильность объявления массива в разделе var (указаны ключевые слова arrayof, а также диапазон и тип;

– в программе элементам массива присваиваются правильные по типу значения;

– индекс элемента массива является целым числом.

Вариант 8

Анализируемая конструкция

Описание и вызов процедур.

Правила оформления конструкции

Общий вид процедуры следующий:

procedure f (var g1:t1; g2:t2; …);

Раздел описаний

begin

Раздел операторов

end;

Здесь f – имя процедуры; gi - формальные параметры (g1 – формальный параметр-переменная, записывается со служебным словом var; g2 – формальный параметр-значение); t - типы формальных параметров.

Проверяемые условия:

– правильность объявления процедуры (впереди стоит слово procedure, затем имя и список параметров – впрочем, последний может отсутствовать);

– правильность передачи параметров при вызове процедуры (тип и количество параметров указаны верно).

Вариант 9

Анализируемая конструкция

Описание и вызов функций.

Правила оформления конструкции

Функция – это группа операторов, в результате выполнения которых вычисляется одно значение, присваиваемое имени функции. Описание функций включает заголовок; раздел описаний; блок операторов функции:

function имя функции (формальные параметры): тип;

Раздел описаний

begin

Раздел операторов

Имя функции := результат

end;

Проверяемые условия:

– правильность объявления функции (впереди стоит слово function, затем имя, список параметров и тип);

– правильность передачи параметров при вызове функции (тип и количество параметров указаны верно);

– правильность присвоения результата функции (результат должен быть присвоен переменной, тип которой совпадает с типом функции).

Вариант 10

Анализируемая конструкция

Описание записи и обращение к ее элементам.

Правила оформления конструкции

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

type

tr = record

f11, f12,…, f1l: t1;

f21, f22,…, f2m: t2;

fk1, fk2,…,fkn: tk;

end;

var

mp: tr;

Здесь tr – имя типа; mp – имя записи; l – число полей типа t1; m – число полей типа t2; n – число полей типа tk; fij – имена полей (элементов записи); служебные слова record, end – выполняют роль операторных скобок, открывающей и закрывающей соответственно.

Обращение к элементу записи (полю) fij осуществляется следующим образом: mp.fij, где mp – имя записи, fij – имя элемента (поля). Между именем записи и именем поля ставится точка.

Проверяемые условия:

– описание записи находится в разделе type и заканчивается словом end;

– правильность ссылки на поле записи (имя поля пишется после имени переменной записи и точки, возможность использования оператора with можно не учитывать);

– правильность присвоения значений полям записи (полям соответствующего типа присваивать значения такого же типа).

Вариант 11

Анализируемая конструкция

Объявление файловой переменной и установление связи с файлом.

Правила оформления конструкции

Для организации ввода-вывода информации в файл в программе используются специальные переменные файлового типа. Переменные файлового типа описываются следующим образом:

var

имя переменной: file of тип элементов файла;

Например,

var

a: file of integer;

b: file of real;

Проверяемые условия:

– файловая переменная объявлена в разделе var;

– в программе есть процедура Assign, в которой указаны соответствующие параметры (файловая переменная и имя файла – строковая константа или переменная типа string).

Вариант 12

Анализируемая конструкция

Описание и использование переменных типа Integer (присвоение результата).

Правила оформления конструкции

Целые переменные типа Integer описываются с использованием одноименного зарезервированного слова:

var

i, j, k : integer;

Значения целого типа получаются при вычислении следующих функций:

Abs(x) – абсолютная величина х (х – целое);

Sqr(x) – квадрат значения х (х – целое);

Inc(x [,i]) – увеличивает х на величину i, если i отсутствует, то на 1;

Dec(x [,i]) - уменьшает х на величину i, если i отсутствует, то на 1;

Trunc(x) – целая часть х (х – вещественное);

Round(x) – округление до ближайшего целого (х - вещественное).

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

Succ(i) – следующее целое число (т.е. i+1);

Pred(i) – предыдущее целое число (т.е. i-1).

Проверяемые условия:

– переменным типа Integer в программе присваиваются только целые значения – либо целочисленная константа, либо результат целочисленной функции (3-5 вариантов стандартных, а также указанные в программе пользовательские функции), либо результат арифметической операции (имеющей однозначно целый результат).

Вариант 13

Анализируемая конструкция

Описание и использование переменных типа Real (присвоение результата).

Правила оформления конструкции

Вещественные переменные типа Real описываются с использованием одноименного зарезервированного слова:

var

a, d, k : real;

Следующие функции дают вещественный результат при вещественном и целом аргументах:

Sin(x) – синус;

Cos(x) – косинус;

Ln(x) – натуральный логарифм;

Exp(x) – экспонента;

Sqrt(x) – квадратный корень;

Arctan(x) – арктангенс.

Проверяемые условия:

– переменным типа Real в программе присваиваются только целые значения – либо вещественная константа, либо результат вещественной функции (3-5 вариантов стандартных, а также указанные в программе пользовательские функции), либо результат арифметической операции (имеющей однозначно вещественный результат).

Вариант 14

Анализируемая конструкция

Описание и использование символьных переменных (описание и присвоение результата).

Правила оформления конструкции

Символьные переменные описываются с помощью зарезервированного слова char:

var

s, t, e: char;

Значением переменной символьного типа является один символ, заключенный в апострофы, например:

‘F’ ‘8’ ‘*’

Символьные переменные можно сравнивать между собой, при этом сравниваются коды символов.

Существуют функции, которые устанавливают соответствие между символом и его кодом:

Ord(с) – выдает номер символа с;

Chr(i) – выдает символ с номером i.

Проверяемые условия:

– переменным типа Char в программе присваиваются только символьные значения – либо символьная константа, либо результат символьной функции (стандартная функция Chr, а также указанные в программе пользовательские функции), либо результат операции (имеющей однозначно символьный результат).

Вариант 15

Анализируемая конструкция

Описание и использование строковых переменных (присвоение результата).

Правила оформления конструкции

Переменные строкового типа описываются с помощью служебного слова string:

var

b: string [100];

Особенности:

– допускается использовать операцию конкатенации в операторе присваивания, так как строки могут динамически изменять свою длину: а := a + ‘ вычислений’;

– максимальная длина строковой переменной 255 символов, это указание длины может быть опущено.

Функции, ориентированные на работу со строками.

Concat(S1, S2,…) – функция слияния строк, S1, S2,…- строки, число строк может быть произвольным. Результатом работы функции является строка. Если длина результирующей строки больше 255 символов, то строка усекается до 255 символов.

Copy(S, Index, Count) – функция выделения строки из исходной строки S длиной Count символов, начиная с символа под номером Index.

Length(S) – функция определения текущей длины строки, возвращает число равное текущей длине строки.

Pos(S1, S2) – функция поиска в строке S2 подстроки S1. выдает номер позиции первого символа подстроки S1 в строке S2 (или 0, если этой строки нет).

Проверяемые условия:

– переменным типа String в программе присваиваются только строковые значения – либо строковая константа, либо строковый результат функции (стандартные, а также указанные в программе пользовательские функции), либо результат арифметической операции (имеющей однозначно строковый результат).

Вариант 16

Анализируемая конструкция

Описание и использование переменных типа Integer (как параметр стандартной или пользовательской функции/процедуры).

Правила оформления конструкции

См. аналогичный раздел варианта 12

Проверяемые условия:

– переменная, использованная как целый параметр функции или процедуры, описана в разделе var и является целой;

– в качестве стандартных проверить 3-5 вариантов процедур или функций.

Вариант 17

Анализируемая конструкция

Описание и использование переменных типа Real (как параметр стандартной или пользовательской функции/процедуры).

Правила оформления конструкции

См. аналогичный раздел варианта 13.

Проверяемые условия:

– переменная, использованная как вещественный параметр функции или процедуры, описана в разделе var и является вещественной;

– в качестве стандартных проверить 3-5 вариантов процедур или функций.

Вариант 18

Анализируемая конструкция

Описание и использование символьных переменных (как параметр стандартной или пользовательской функции/процедуры).

Правила оформления конструкции

См. аналогичный раздел варианта 14.

Проверяемые условия:

– переменная, использованная как символьный параметр функции или процедуры, описана в разделе var и является символьной;

– в качестве стандартной проверить функцию Ord.

Вариант 19

Анализируемая конструкция

Описание и использование строковых переменных (как параметр стандартной функции/процедуры).

Правила оформления конструкции

См. аналогичный раздел варианта 15.

Проверяемые условия:

– переменная, использованная как строковый параметр функции или процедуры, описана в разделе var и является строковой;

– в качестве стандартных проверить 3-5 вариантов процедур или функций.

Вариант 20

Анализируемая конструкция

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

Правила оформления конструкции

Логические переменные описываются с помощью зарезервированного слова boolean:

var

p1, p2 : boolean;

Переменные логического типа принимают два значения: true (истина), false (ложь).

Логические операции над операндами логического типа также дают логический результат:

not – отрицание (операция НЕ);

and – логическое умножение (операция И);

or – логическое сложение (операция ИЛИ);

xor – исключающее ИЛИ.

Проверяемые условия:

– переменным типа Boolean в программе присваиваются только логические значения – либо true или false, либо логический результат функции (стандартные, а также указанные в программе пользовательские функции), либо результат арифметической операции (имеющей однозначно строковый результат).

Вариант 21

Анализируемая конструкция

Операторные скобки Begin и End

Правила оформления конструкции

Составной оператор – объединение нескольких операторов в одну группу.

Форма записи составного оператора:

begin

оператор 1;

оператор 2;

оператор n-1;

оператор n

end;

В этой конструкции служебные слова begin (начало) и end (конец) называются операторными скобками. Слово begin выполняет роль открывающей скобки, слово end – роль закрывающей скобки. После слова begin и перед словом end разрешается не ставить знак конца оператора, т.е. точку с запятой.

Также в программе используется операторная скобка end без begin, указывающая:

– на окончание описания типа записи;

– на окончание оператора case.

Проверяемые условия:

– совпадение числа begin и end в телах функций и процедур;

– если в программе есть описание типа записи или встречается оператор case, то следует учесть данную ситуацию.

Вариант 22

Анализируемая конструкция

Операторы вывода Write и WriteLn.

Правила оформления конструкции

Оператор вывода данных из памяти на экран дисплея имеет следующие формы записи:

Write (b1, b2,…, bn) – выводит последовательно значения b1, b2,…, bn;

WriteLn (b1, b2,…, bn) - выводит последовательно значения b1, b2,…, bn и осуществляет переход на новую строку.

В качестве параметров В1, В2, Вn могут быть использованы целые, вещественные, символьные и логические переменные, а также символьные константы, заключенные в апострофы.

Для вывода целых и вещественных чисел можно указывать форматы. Формат указывается через двоеточие после переменной.

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

WriteLn(y:5:2);

для изображения вещественной переменной y отводит пять позиций, из них две – под дробную часть. Оставшиеся три позиции распределяются так: одна позиция - под точку и две – под знак числа и целую часть.

Проверяемые условия:

– в операторах Write и WriteLn встречаются только константы или переменные, описанные в разделе var;

– если встречается форматированный вывод чисел - проверить его на правильность.

Вариант 23

Анализируемая конструкция

Объявление файловой переменной и использование ее в качестве параметра функции или процедуры.

Правила оформления конструкции

Для организации ввода-вывода информации в файл в программе используются специальные переменные файлового типа. Переменные файлового типа описываются следующим образом:

var

имя переменной: file of тип элементов файла;

Например,

var

a: file of integer;

b: file of real;

Следующие процедуры и используются для работы с файлами:

Reset (F) и ReWrite (F) – для открытия файла;

Close (F) – для закрытия файла;

Read(F, A) и Write(F, A) – для чтения и записи данных в файл (f- файловая переменная);

Seek(f, i), EOF(f), Filesize(f), Filepos(f) – для перемещения по файлу (или для позиционирования в файле).

Проверяемые условия:

– файловая переменная объявлена в разделе var;

– в программе при вызове вышеперечисленных процедур в качестве параметра используется файловая переменная.

Вариант 24

Анализируемая конструкция

Объявление текстовой файловой переменной и использование ее в качестве параметра функции или процедуры.

Правила оформления конструкции

Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу text.

var

f : text;

Следующие процедуры и используются для работы с файлами:

Reset (F) и ReWrite (F) – для открытия файла;

Close (F) – для закрытия файла;

Read(F, A), Write(F, A), ReadLn(F, A), WriteLn(F,A)– для чтения и записи данных в файл (f- файловая переменная);

SeekEOLN(f, i), SeekEOF(f)– для позиционирования в файле.

Проверяемые условия:

– файловая переменная объявлена в разделе var;

– в программе при вызове вышеперечисленных процедур в качестве параметра используется файловая переменная.

Вариант 25

Анализируемая конструкция

Объявление и использование типизированных указателей.

Правила оформления конструкции

Как правило, в Турбо Паскале указатель связывается с некоторым типом данных. Такие указатели называются типизированными. Для объявления типизированного указателя используется значок ^, который помещается перед соответствующим типом, например:

var

p1: ^integer;

р2 : ^real;

В Турбо Паскале можно передавать значения только между указателями связанными с одним и тем же типом данных. Если, например,

var

p1, p2: ^integer;

p3: ^ real;

pp: pointer;

то присваивание

p1 := p2;

вполне допустимо, в то время как

p1 : = p3;

Основные функции для работы с указателями:

New (p) – выделение памяти под новый указатель;

Dispose (p) – освобождение памяти, занимаемой указателем;

Mark (p) – помещение адреса текущей границы динамической памяти в указатель p.

Release (p) – освобождение всей выделенной динамической памяти, начиная с адреса p.

Проверяемые условия:

– указатели правильно объявлены в разделе var;

– в программе при вызове вышеперечисленных процедур в качестве параметра используется указатель.

Список литературы

  1. Молчанов А.Ю. Системное программное обеспечение: учебник для вузов / А.Ю. Молчанов. СПб.: Питер, 2006. 396 с.

  2. Свердлов С.З. Языки программирования и методы трансляции: учеб. пособие / С.З. Свердлов. СПб.: Питер, 2007. 638 с.

  3. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс: учеб. пособие / В.В. Фаронов. М.: Нолидж, 1999. 616 с.

  4. Фаронов В.В. Turbo Pascal: учеб. пособие / В.В. Фаронов. СПб.: Питер, 2009. 367 с.

  5. СТП ВГТУ 62-2007. Стандарт предприятия. Курсовое проектирование. Организация, порядок проведения, оформление расчетно-пояснительной записки и графической части.

ПРИЛОЖЕНИЕ А

Федеральное агентство по образованию

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ГОУВПО «ВГТУ»)

Факультет автоматики и электромеханики

Кафедра «Автоматизированные и вычислительные системы»

Специальность «Вычислительные машины, комплексы,

системы и сети»

КУРСОВОЙ ПРОЕКТ

по дисциплине «Системное программное обеспечение»

Тема: «Исследование и разработка элементов современных трансляторов и компиляторов»

Пояснительная записка

Разработал(а) студент(ка) __________________________

Подпись, дата Инициалы, фамилия

Руководитель ___________________________

Подпись, дата Инициалы, фамилия

Нормоконтролер ___________________________

Подпись, дата Инициалы, фамилия

Защищена _________________ Оценка __________________

Дата

Воронеж 2010

ПРИЛОЖЕНИЕ Б

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ГОУВПО «ВГТУ»)

Кафедра «Автоматизированные и вычислительные системы»

ЗАДАНИЕ

на курсовой проект

по дисциплине «Системное программное обеспечение»

Тема: «Исследование и разработка элементов современных трансляторов и компиляторов»

Студент группы ВМ-073 Васильев Александр Николаевич

Фамилия, имя, отчество