- •1 Методические рекомендации
- •1.1 Требования к содержанию пояснительной записки
- •1.2 Требования к оформлению пояснительной записки
- •2 Задания на курсовые работы
- •2.1 Задание № 1
- •2.2 Задание № 2
- •2.3 Задание № 3
- •2.4 Задание № 4
- •Номер варианта 1, практическое задание «Разработка приложения для анализа программного кода на языке Паскаль (Условный оператор if … then … else)»
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 (указаны ключевые слова array … of, а также диапазон и тип;
– в программе элементам массива присваиваются правильные по типу значения;
– индекс элемента массива является целым числом.
Вариант 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;
– в программе при вызове вышеперечисленных процедур в качестве параметра используется указатель.
Список литературы
Молчанов А.Ю. Системное программное обеспечение: учебник для вузов / А.Ю. Молчанов. СПб.: Питер, 2006. 396 с.
Свердлов С.З. Языки программирования и методы трансляции: учеб. пособие / С.З. Свердлов. СПб.: Питер, 2007. 638 с.
Фаронов В.В. Турбо Паскаль 7.0. Начальный курс: учеб. пособие / В.В. Фаронов. М.: Нолидж, 1999. 616 с.
Фаронов В.В. Turbo Pascal: учеб. пособие / В.В. Фаронов. СПб.: Питер, 2009. 367 с.
СТП ВГТУ 62-2007. Стандарт предприятия. Курсовое проектирование. Организация, порядок проведения, оформление расчетно-пояснительной записки и графической части.
ПРИЛОЖЕНИЕ А
Федеральное агентство по образованию
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
(ГОУВПО «ВГТУ»)
Факультет автоматики и электромеханики
Кафедра «Автоматизированные и вычислительные системы»
Специальность «Вычислительные машины, комплексы,
системы и сети»
КУРСОВОЙ ПРОЕКТ
по дисциплине «Системное программное обеспечение»
Тема: «Исследование и разработка элементов современных трансляторов и компиляторов»
Пояснительная записка
Разработал(а) студент(ка) __________________________
Подпись, дата Инициалы, фамилия
Руководитель ___________________________
Подпись, дата Инициалы, фамилия
Нормоконтролер ___________________________
Подпись, дата Инициалы, фамилия
Защищена _________________ Оценка __________________
Дата
Воронеж 2010
ПРИЛОЖЕНИЕ Б
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
(ГОУВПО «ВГТУ»)
Кафедра «Автоматизированные и вычислительные системы»
ЗАДАНИЕ
на курсовой проект
по дисциплине «Системное программное обеспечение»
Тема: «Исследование и разработка элементов современных трансляторов и компиляторов»
Студент группы ВМ-073 Васильев Александр Николаевич
Фамилия, имя, отчество