Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра САПР
Методичні вказівки
до виконання курсової роботи
з курсу
«Лінгвістичне забезпечення САПР»
для студентів базового напрямку
6.080400 «Комп’ютерні науки»
Затверджено на засіданні
кафедри «Системи автома-
тизованого проектування»
протокол №
від __________ 2006 р.
Львів 2006
Методичні вказівки до виконання курсової роботи з курсу «Лінгвістичне забезпечення САПР» для студентів базового напрямку 6.0804 «Комп’ютерні науки»
Укладачі:
Бобало С.І., ст. викладач
Свірідова Т.В., асистент
Рецензенти:
Панчак Р.Т., ст. викладач
Каркульовський В.І., доцент, к.т.н.
Відповідальний за випуск:
Ткаченко С.П., доцент, к.т.н.
Вступ
Система автоматизованого проектування (САПР) – це організаційно-технічна система, яка містить комплекс засобів автоматизованого проектування, які взаємозв’язані з підрозділами проектної організації.
Функціональними складовими САПР є:
технічне забезпечення;
математичне забезпечення;
програмне забезпечення;
лінгвістичне забезпечення;
інформаційне забезпечення;
методичне забезпечення;
організаційне забезпечення;
Лінгвістичне забезпечення – це сукупність мов, які використовуються в САПР для представлення інформації про проектовані об’єкти, процес і засоби проектування, якими обмінюються користувачі з ЕОМ і між собою в процесі автоматизованого проектування.
Основні завдання курсу «Лінгвістичне забезпечення САПР» - дати студентам теоретичні і практичні знання в галузі використання мов програмування і розробки мов проектування на основі аналізу об’єкта проектування. Дати основні поняття, принципи і навички створення мовних процесорів: трансляторів, компіляторів, інтерпретаторів.
Основні завдання студента при виконанні курсової роботи – це навчитися:
Аналізувати суть і обсяг завдання, скласти план виконання роботи;
Обґрунтувати варіанти і шляхи розв’язування поставлених задач, порівнювати їх ефективність і обирати найбільш оптимальні;
Практичної роботи по розробці програм для ЕОМ;
Оформляти необхідну технічну і програмну документацію.
При виконанні курсової роботи студент набуде відповідного досвіду практичної роботи з ЕОМ, самостійного проведення машинних експериментів. Виконання курсової роботи сприятиме глибшому засвоєнню курсу «Лінгвістичне забезпечення САПР», а також повторенню суміжних спецкурсів, таких як «Основи програмування», «Системне програмування та операційні системи».
2. Короткі теоретичні відомості.
При розробці та обслуговуванні нових САПР виникає необхідність створення мови проектування цієї системи або якоїсь підсистеми, а також побудови транслятора, який буде перекладати вхідну мову на мову зрозумілу ЕОМ.
В основі математичної теорії побудови трансляторів і компіляторів лежить теорія автоматів і формальних граматик.
В будь-якій схемі трансляції виділяють два етапи:
1. Аналіз вхідної програми;
2. Синтез об’єктної програми;
Аналіз вхідної програми ділиться на два етапи: лексичний аналіз, синтаксичний та семантичний аналіз.
Синтез в свою чергу поділяється на підготовку до генерації коду – розподіл пам’яті та генерацію команд об’єктного коду.
Структура компілятора зображена на рис.1.
Рис.1. Структура компілятора
2.1. Лексичний аналіз
На етапі лексичного аналізу символи вхідної програми групуються в окремі лексичні одиниці – лексеми, які діляться на три групи і заносяться в окремі таблиці:
IDN – ідентифікатори – це імена змінних;
LIT – літерали – константи;
TRM – термінальні символи – розділювачі, операції, службові слова.
На основі цих трьох таблиць формується таблиця стандартних символів.
Приклад: Побудувати компілятор для фрагмента програми
procedure zy( x,s,f :real; var y:real);
begin
If x>0 then y:=x*(s-f)+2*x(s-f-100)
else y:=0;
end;
Лексеми розділяються пропусками, знаками арифметичних операцій, спеціальними символами:
Рис.2. Розділення лексем
Ідентифікатори: zy, x, s, f, y.
Службові слова: procedure, real, var, begin, if, then, else, end.
Розділювачі і знаки операцій: (, ), , :, ;, >, +, *, -.
Знак оператора присвоювання: :=
Константи (літерали): 2, 100, 0
Таблиця термінальних символів - це таблиця, в якій кожен окремий елемент відповідає термінальному символу або службовому слову (табл.1).
Таблиця 1.
Термінальні символи
Індекс
Символ
Розділювач
Інші
1
procedure
службове слово
2
begin
службове слово
3
if
службове слово
4
then
службове слово
5
else
службове слово
6
end
службове слово
7
real
службове слово
8
var
службове слово
9
,
так
10
:
так
11
;
Так
12
(
Так
13
)
Так
14
:=
15
+
операція
16
-
операція
17
*
операція
18
>
операція
Таблиця ідентифікаторів описує всі ідентифікатори, які є у вхідній програмі (табл.2).
Таблиця 2.
Ідентифікатори
Індекс
Ім’я
Атрибути
Адреса
1
zv
Заповнюється на стадії синтаксичного аналізу
Заповнюється на етапі генерації коду
2
x
3
s
4
f
5
y
Таблиця літералів описує всі константи (табл.3)
Таблиця 3.
Літерали
Індекс
Літерал
Основа
Формат
Точність
Інші атрибути
Адреса
1
0
Decimal
Fixet
1
2
2
Decimal
Fixet
1
3
100
Decimal
Fixet
3
Таблиця стандартних символів створюється для того, щоб об’єднати три попередні таблиці і представити програму строкою лексем. Кожній лексемі відповідає стандартний символ. Кожен стандартний символ має вказівник на таблицю відповідних елементів.
Таблиця 4
Стандартні символи
Тип
Індекс у відповідній таблиці
Вказівник на лексему
TRM
1
procedure
IDN
1
zv
TRM
12
(
IDN
2
x
TRM
9
,
IDN
3
s
IDN
4
f
TRM
10
:
TRM
7
real
TRM
11
;
TRM
8
var
IDN
5
y
TRM
13
)
TRM
2
begin
TRM
3
if
TRM
18
>
LIT
1
0
TRM
4
then
TRM
14
:=
TRM
17
*
TRM
16
-
TRM
15
+
LIT
2
2
LIT
3
100
TRM
5
else
TRM
6
end
Правила граматики на етапі лексичного аналізу:
<ідентифікатор>::=<буква>|<буква-цифра>;
<буква>::=A|B|C|…|Z;
<буква-цифра>::=<буква>|<цифра>;
<цифра>::= 0|1|2|...|9;
<літерал>::=<цифра>;
<термінал>::=<операція>|<розділювач>|<службове слово>;
<операція>::=+|-|*|>|:=;
<розділювач>::=(|)|,|:|;
<службове слово>::=procedure|real|var|begin|if|then|else|end.
Оскільки граматика не етапі лексичного аналізу досить проста (відноситься до класу лінійних граматик), то для моделювання роботи лексичного аналізатора можна використати скінченні автомати.
2.2. Синтаксичний аналіз
Синтаксичний аналізатор розподіляє програму на складові і формує її внутрішнє представлення. Синтаксичний і семантичний аналізатори перекладають послідовність лексем у другу послідовність, яка безпосередньо відображає порядок виконання операцій вхідної програми.
Синтаксичний аналіз складається з двох етапів. Завданням першого є розпізнавання фраз – синтаксичних одиниць, які називаються атомами. Кожна фраза складається з лексем і має конкретний зміст. Завданням другого етапу є інтерпретування значень знайдених конструкцій.
Рис.3. Конструкції
Кожній синтаксичній одиниці відповідає певне значення. Воно може бути виражено у формі реальних кодів або у проміжній формі. Серед загально прийнятих форм представлення вхідної програми є:
бездужкові записи;
тетради;
тріади;
зображуючі дерева;
зв’язані спискові структури;
інше.
Використаємо зображуючі дерева і запишемо правила формальної граматики для кожного атома.
Заголовок програми
Рис.4. Зображаюче дерево заголовку програми
Формальна граматика для розпізнавання заголовку G має такі характеристики:
G =(VT, VN, G0, P)
VT – множина термінальних символів (термінальний алфавіт);
VN – множина нетермінальних символів;
G0 – початковий нетермінальний символ
P - скінчена множина правил (продукцій)
VT={procedure, ZY, x, , , s, ,f, :, real, ;, var, y}
VN= {<ID>, <PR>, <PAR>, <ZN>, <ZM>, <Тип>}
G0 = <PR> ( procedure <ID><PR>
P = <PR> ( procedure <ID><PR>|(<PAR>);
<PAR> ( <ZN>; <ZM>;
<ZN> ( <ID> : <Тип>;
<ZM> ( VAR <ZN>;
<ID> ( ZY |x,<ID>|s, <ID>|f|y;
<тип> ( real
Така граматика відноситься до класу контекстно вільних граматик і може моделюватися за допомогою МП автоматів.
Дерево для умовного оператора if x>0 then <оператор 1> else <оператор 2> може бути записане наступним чином
Рис. 5. Дерево для умовного оператора
Формальна граматика
VT = {if, x, >, then, else};
VN = {<S>, <U>, <B>, <T>, <E>, <ID>, <L>, <o1>, <o2>};
G0 = <S> ( if <U>;
P= <S> ( if <U>;
<U> ( <B><T><E>;
<B> ( <ID>><L>;
<T> ( THEN <o1>;
<E> ( ELSE <o2>;
<ID> ( x;
<L> ( 0;
Це контекстно-вільна граматика, яка відображається автоматом з магазинною пам’яттю.
Таблиця 5.
Таблиця зміни конфігурації автомата
N
п/п
Магазин
Стан
Вхідний ланцюжок
1
(<S>
S1
if x>0 then <o1> else <o2>
2
(<U>if
S1
if x>0 then <o1> else <o2>
3
(<U>
S2
x>0 then <o1> else <o2>
4
(<E><T><B>
S1
x>0 then <o1> else <o2>
5
(<E><T><L> ><ID>
S1
x>0 then <o1> else <o2>
6
(<E><T><L> > x
S1
x>0 then <o1> else <o2>
7
(<E><T><L> >
S2
>0 then <o1> else <o2>
8
(<E><T><L>
S2
0 then <o1> else <o2>
9
(<E><T> 0
S1
0 then <o1> else <o2>
10
(<E><T>
S2
then <o1> else <o2>
11
(<E><01><then>
S1
then <o1> else <o2>
12
(<E><01>
S2
<o1> else <o2>--|
13
(<E>
S2
else <о2>--|
14
(<02><else>
S1
else <о2>--|
15
(<02>
S2
<о2>--|
16
(
S
--|
17
Допустити
Управляючі таблиці МП автомата для станів S1 і S2:
Таблиця 6
Стан S1
if
x
>
0
then
<o1>
else
<o2>
--|
<S>
#1
<U>
#2
<E>
#7
<T>
#6
<B>
#3
<L>
#5
<ID>
#4
Стан S2
if
вишт.
зсув
x
вишт.
зсув
>
вишт.
зсув
0
вишт.
зсув
then
вишт.
зсув
<01>
вишт.
зсув
else
вишт.
зсув
<02>
вишт.
зсув
(
вишт.
зсув
#1 – замінити <S> ( <U>if; тримати
#2 – замінити <U> ( <E><T><B>; тримати
#3 – замінити <B> ( <L><ID>; тримати
#4 – замінити <ID> ( x; тримати
#5 – замінити <L> ( 0;
#6 – замінити <T> ( <o1>then;
#4 – замінити <E> ( <o2>else;
При зміні термінальні і нетермінальні символи записуються у магазин у зворотньому порядку по відношенню до правила.
Так правило: <S> ( if <U>
в магазині запишеться як <U>if.
Характеристики МП-автомата
M = (Q, Σ, Г, δ, q0, Z0, F),
де Q – скінчена множина станів: Q = {S1,S2};
Σ – скінчений вхідний алфавіт: Σ = {if, x,>,0, then, <o1>, else, <o2>};
Г – скінчений алфавіт магазинних символів: Г = {<S>, <U>, <E>, <T>, <B>, <L>, <ID>, if, x, > , 0, then, <o1>, else, <o2> };
δ – керуючий пристрій автомата (таблиця 6)
q0 – початковий стан керуючого пристрою: q0= S1;
Z0 – початковий магазинний символ: Z0 = <S>
Нетермінали <о1>, <о2> - це оператори присвоєння:
y:=x*(s-f)+2*x*(s-f-100)
Оператор y:=x*(s-f)+2 та y:=0 відображається за допомогою бінарного дерева розбору
Рис.6. Бінарне дерево розбору
від якого можна перейти до матриці розбору, представити порядок виконання операцій у постфіксній формі, у вигляді тріад або тетрад.
Таблиця 7.
N
п/п
Операція
Операнд 1
Операнд 2
Результат
1
-
s
f
M1
2
*
x
M1
M2
3
*
2
x
M3
4
-
s
f
M4
5
-
M4
100
M5
6
*
M3
M5
M6
7
+
M2
M6
M7
8
:=
y
M7
-
Результатом роботи синтаксичного аналізатора буде заповнена таблиця ідентифікаторів (Табл.2), крім того до цієї таблиці додається ще і таблиця тимчасових змінних (М1, М2, М3, М4, М5, М6, М7), які виникнуть в результаті обробки арифметичного оператора присвоєння.
Таблиця 8.
Індекс
Ім’я
Атрибути
Адреса
Основа
Формат
Точність
Тип пам’яті
1
zy
Ім’я процедури
2
x
Decimal
Fixed
31
Static
3
s
Decimal
Fixed
31
Static
4
f
Decimal
Fixed
31
Static
5
y
Decimal
Fixed
31
Static
M1
Decimal
Fixed
31
Automatic
М2
Decimal
Fixed
31
Automatic
М3
Decimal
Fixed
31
Automatic
М4
Decimal
Fixed
31
Automatic
М5
Decimal
Fixed
31
Automatic
М6
Decimal
Fixed
31
Automatic
М1
Decimal
Fixed
31
Automatic
На ідентифікатори Zv, x, s, f, y виділяється постійна пам’ять, на тимчасові змінні М1, М2, М3, М4, М5, М6, М7 виділяється тимчасова пам’ять, тобто значення тимчасових змінних зберігається тільки на час виконання процедури.
На основі складених таблиць, скінчених та МП автоматів генерується програма компілятора, яка транслюватиме вхідну програму.
2.3. Синтез об’єктної програми.
Синтез об’єктної програми складається з двох етапів: підготовка до генерації коду та генерація об’єктного коду.
2.3.1. Підготовка до генерації коду
Програма розподілу пам’яті переглядає таблицю ідентифікаторів і тимчасових змінних і виділяє пам’ять на кожну змінну. Дійсне число займає 32 біти (4 байти). Перший біт відводиться під знак. Перша відносна адреса дорівнює 0, друга 4 і т.д.
Таблиця 9.
Індекс
Ім’я
Атрибути
Адреса
Основа
Формат
Точність
Тип пам’яті
1
Zv
Ім’я процедури
-
2
X
Decimal
Fixed
31
Static
0
3
S
Decimal
Fixed
31
Static
4
4
F
Decimal
Fixed
31
Static
8
5
Y
Decimal
Fixed
31
Static
12
M1
Decimal
Fixed
31
Automatic
0
М2
Decimal
Fixed
31
Automatic
4
М3
Decimal
Fixed
31
Automatic
8
М4
Decimal
Fixed
31
Automatic
12
М5
Decimal
Fixed
31
Automatic
16
М6
Decimal
Fixed
31
Automatic
20
М1
Decimal
Fixed
31
Automatic
24
2.3.2 Генерація коду.
Після того як компілятор згенерував матрицю розбору (таблиця 7) і таблиці які містять допоміжну інформацію (таблиця 9) можна перейти до генерування об’єктного коду. Використовуючи таблицю 7 згенеруємо код для арифметичних операцій.
Таблиця 10
N
п/п
Операція
Операнд 1
Операнд 2
Команда
1
-
s
f
Load s
Sub f
2
*
x
M1
Mult x
3
*
2
X
Store M2
Load x
Mult 2
4
-
s
f
Store M3
Load s
Sub f
5
-
M4
100
Sub 100
6
*
M3
M5
Mult M3
7
+
M2
M6
Add M2
8
:=
y
M7
Store M7
Sreg M7 Y
Можна провести оптимізацію коду, оскільки операції 1 і 4 повторюються.
3. Основні частини курсової роботи та їх зміст.
Пояснювальна записка курсової роботи є основним документом, що відображає етапи дослідження або розробки, отримані результати і висновки.
Оскільки завданням курсової роботи є побудова трансляторів, компіляторів, інтерпретаторів, тощо, то пояснювальна записка повинна містити відповідні етапи компіляції ( лексичний, синтаксичний, семантичний аналіз) конкретного індивідуального завдання. Кожен оператор вхідної програми повинен представлятися відповідною граматикою, ілюструватися зображуючим деревом, моделюватися скінченим або МП-автоматом. Характеристики автоматів і формальної граматики обов’язково повинні бути приведені.
Зміст курсової роботи (проекту) повинен містити наступні частини:
титульний лист (додаток 1);
завдання на курсову роботу (проект) (додаток 2);
реферат;
календарний план виконання роботи (додаток 3);
зміст;
специфікації;
опис роботи (безпосередньо текст пояснювальної записки);
список використаної літератури;
додатки.
Технічне завдання на курсову роботу повинно оформлятися на бланку завдання на курсову роботу і включає наступні відомості:
назва теми роботи;
термін здачі студентом закінченої роботи;
вихідні дані для роботи;
зміст розрахунково-пояснювальної записки (перелік питань, які підлягають розробці);
календарний план з назвою етапу курсової роботи (проекту) і терміном виконання етапу;
дата видачі завдання, підпис керівника і студента.
В додатку 2 приведений приклад типового бланку завдання для виконання курсової роботи.
Реферат поділяється умовно на дві частини.
У першій частині визначається обсяг, кількість рисунків і таблиць, кількість використаних літературних джерел. У випадку, коли пояснювальна записка складається більше ніж з однієї частини, тоді в рефераті вказується кількість частин і загальний обсяг пояснювальної записки.
У другій частині реферату міститься текст реферату, в якому вказується мета роботи, об’єкт і метод дослідження, основні характеристики.
У специфікації міститься розшифровка всіх вжитих позначень.
Текст пояснювальної записки складається з вступу, основної частини і висновків.
У вступній частині висвітлюється актуальність задачі, мета дослідження і оцінка сучасного етапу проблеми, обгрунтування в загальних рисах необхідності дослідження, наводиться структура роботи і деякі висновки проведеного дослідження.
В основній частині записки має міститися матеріал, що відображає суть, методику й основні результати роботи. В загальному випадку такий матеріал складається з двох частин:
теоретичної;
практичної.
3.1. Теоретична частина містить:
опис поставленої задачі;
науковий-технічний аналіз існуючих методів розв’язання задачі;
вибір математичної моделі задачі;
таблиці ідентифікаторів, літералів, термінальних і стандартних символів;
опис і обґрунтування транслюючої граматики;
опис характеристик скінченого або МП-автомата;
таблиці функцій переходу скінченого автомата, зміни конфігурацій і управляючі для МП-автомата;
опис блок-схеми вибраного алгоритму;
вибір і обґрунтування вибору алгоритмічної мови.
3.2. Практична (експериментальна) частина містить:
програму, яка виконує поставлену задачу;
опис програмної реалізації вибраного алгоритму;
тестовий приклад і його опис;
аналіз результатів;
3.2.1. Опис програми складається з таких розділів:
загальні дані про програму: позначення й найменування програми; коротка довідка про необхідне програмне забезпечення та використовувані мови програмування.
функціональне призначення програми: класи розв’язуваних задач або застосування програми і необхідні дані про функціональне обмеження на застосування.
опис логічної структури: алгоритм програми з посиланням на блок-схеми, використані методи; структура програми з описом складових частин і зв’язку між ними; зв’язки програми з ншими програмами.
використані технічні засоби: типи ЕОМ і пристрої, необхідні для роботи програми.
виклик і завантаження: спосіб виклику програми з носія даних, вхідні точки в програму.
вхідні дані: формат, опис і спосіб кодування, попередня підготовка.
вихідні дані: формат, опис, спосіб кодування.
«Висновки», подібні до вступу. Є важливою частиною пояснювальної записки. Тут підбиваються підсумки виконаної роботи, пропозиції та рекомендації по впровадженню результатів дослідження, напрямки і перспективи розвитку проведеного дослідження.
У додатки виносяться блок-схеми алгоритмів, схеми, таблиці і графіки, лістинги трансляції, вхідні дані до текстового прикладу та результат розв’язку.
4. Вимоги до текстової частини звіту
Зміст пояснювальної записки курсової роботи (проекту) повинен складатися з перелічених у розділі з елементів в указаній послідовності.
Пояснювальна записка повинна бути виконана на одній стороні стандартного листа формату А4 ( 297х210 мм ) і належним чином зшита (переплетеним ).
Титульний лист виконується у відповідності до зразка приведеного у додатку 1.
Текст може бути виконаний рукописним або машинописним способом (через півтора інтервалу) , висота шрифту 12пт.
При виконанні рукописним способом пояснювальна записка подається написаною від руки чітким, розбірливим почерком, чорнилом або пастою чорного, фіолетового або синього кольору. Кольорове чорнило не припустиме.
Якщо студент не може написати текст розбірливим почерком, то робота має бути написана від руки креслярським шрифтом по ГОСТ 2.304 - 68 з висотою літер не менше 2,5мм чорним чорнилом або пастою.
Всі аркуші текстової частини повинні мати наскрізну нумерацію.
На титульній сторінці номер не проставляється, але він входить в загальну нумерацію звіту.
Номер аркуша пишеться в правому верхньому кутку без крапки в кінці.
Текст звіту може поділятися на розділи, підрозділи, пункти.
Заголовки розділів пишуться симетрично відносно тексту великими літерами.
Заголовки підрозділів пишуться з абзацу малими літерами, крім першої (великої літери).
Переноси слів в заголовках не допускаються, крапку в кінці заголовку не ставлять.
Кожний розділ починається з нового аркуша з відповідного заголовку.
Розділи нумеруються в межах всього документу, підрозділи в межах кожного розділу, пункти в межах кожного підрозділу арабськими цифрами, розділені крапкою, наприклад “2.3”- третій підрозділ другого розділу, “1.3.4” - четвертий пункт третього підрозділу першого розділу.
Висновки не нумеруються.
Графічний і ілюстративний матеріал по тексту складається із схем, графіків і рисунків, які виконуються на кальці і наклеюються на окремі листи. Допускається розміщати в текст фотографії і якісно виконані ксерокопії.
Всі ілюстрації крім таблиць іменуються рисунками.
Рисунки нумеруються послідовно арабськими цифрами і супроводжуються підписами зрозумілими без читання тексту. Номер рисунка складається з номера розділу і порядкового номера ілюстрації в межах розділу: наприклад “рис.1.2” - другий рисунок першого розділу.
Таблиці нумеруються в межах розділу послідовно і надписуються. Таблиця з вказанням номера розміщується над відповідним заголовком в правому верхньому куті, наприклад: “Таблиця 3.4” - четверта таблиця третього розділу. Якщо в тексті наведено один рисунок або таблиця, їх не нумерують. Формули нумерують в межах розділу арабськими цифрами в круглих дужках, наприклад “ (4.12)” - дванадцята формула четвертого розділу. Аналогічно посилаються на формули, наприклад “у формулі (4.12)...”.
Схеми алгоритмів і програм необхідно виконувати згідно з ГОСТ19.002-80 і ГОСТ 19.003-80.
Текст програми і опис програми необхідно виконувати згідно з ГОСТ19.401-78 і ГОСТ 19.402-78 відповідно.
У списку літератури джерела розміщуються в порядку посилань у звіті.
Посилання на літературу в тексті дається в кінці фрази арабською цифрою, розміщена в квадратних дужках. Цифра повинна відповідати порядковому номеру джерела.
Відомості про проектну і іншу технічну документацію, про промислові каталоги, прейскуранти і інші подібні документи повинні включати заголовок, тип документації, організацію, що випускає документацію, місто і рік випуску. Відомості про державні і галузеві стандарти повинні включати номер і найменування стандарту, наприклад: ДСТУ 3321-96. Системи конструкторської документації. Терміни та визначення основних понять.
Іноземні роботи в списку літератури приводиться на мові оригіналу, наприклад: Aumiaux M., The Use of Microprocessors, Wiley, New York, 1980.
Відомості про статтю з періодичного видання повинні включати прізвище і ініціали автора, назву статті, найменування видання, рік випуску, том, сторінку , на яких розміщена стаття, наприклад: Новое поколение программного комплекса ЛИРА: точка зрения пользователя. Лантух-Лященко А./ Компьютеры+Программы.-1995.- №3.- с. 55-62
Вимоги та рекомендації до виконання курсової роботи
У відповідності з наведеними вище вимогами до змісту пояснювальної записки курсову роботу слід проводити поетапно. Доцільно дотримуватися такої послідовності в роботі: а) глибоке продумування теми й завдання, розуміння місця даної задачі у лінгвістичному забезпеченні САПР; б) ґрунтовне вивчення рекомендованої літератури по темі завдання на курсову роботу, аналіз і оцінка ефективності існуючих методів і вибір оптимального методу; г) розробка тестової задачі по вибраному методу; д) розроблення програми; е) ознайомлення з практичною роботою на даній ЕОМ у середовищі даної операційної системи; є) відлагодження програми; ж) оформлення роботи.
Доцільно завести щоденник виконання курсової роботи, в який занотовується матеріал поступово, в міру його накопичення. В робочий журнал-щоденник занотовується із зазначенням дати все, що робиться студентом по курсовій роботі: прийняті рішення, виконані обчислення, результати експерименту, тощо. Записи в журналі виконуються у довільній формі.
Матеріал вивчення літературних джерел, їх аналіз, слід готувати в процесі роботи над літературою, але для зручності доцільно занотовувати його в окремий зошит, а не в робочій журнал.
Пояснювальна записка складається за наведеним вище планом. Остаточний її текст відпрацьовується після завершення всіх робіт по курсовій роботі.
Починаючи експериментальну частину курсової роботи, необхідно перш за все ознайомитись з особливостями конкретної операційної системи, в середовищі якої працюватиме дана програма.
Програму слід складати на алгоритмічній мові високого рівня і будувати її у стандартному вигляді. Вимога стандартизації програми означає, насамперед, можливість її використання без щонайменших змін для широкого класу аналогічних задач і переважно стосується форми збереження вхідних і вихідних даних програми.
У процесі роботи студент зобов’язаний систематично, у відповідності з встановленим розкладом до курсової роботи, обговорювати з керівником отримані результати, консультуватися з тих науково-технічних і методичних питань, які виникають в ході виконання роботи.
Список рекомендованої літератури
Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. -М: Мир., 1978. -Т.1. -612 с.;Т.2. -487 с.
Грисс Д. Конструирование компиляторов для цифровых вычислительных машин. -М: Мир, 1975. -350 с.
Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов. ~М: Мир, 1979. -654с.
Хантер Р. Проектирование и конструирование компиляторов. -М: Финансы и статистика, 1984 -232 с.
Кнут Д. Искусство программирования для ЭВМ: В 3 т.-М.: Мир,1976-1978.
Берестовая С.Н. и др. Конструирование систем программированияобработки данных / Под редакцией Е.Л. Ющенко - М: Статистика.1979.-268 с.
Флорес И. Структуры и управление данными. - М: Финансы истатистика, 1982. -319 с.
Лэгсам П., Огенстайн М., Тененбаум А. Структуры данных дляперсональных ЭВМ: Пер с англ. - М: Мир, 1989. -568 с.
Вирт Н., Алгоритмы и структуры данных: Пер. с англ. -М: Мир,1989.-360 с.
Ю.Тихомиров В.П., Давидов М.И. Операционная система ДЕМОС. - М: Финансы и статистика, 1988. -206 с.
Системы автоматизированного проектирования Уч. пособие для втузов /под ред. Норенкова/ М: Высшая школа, 1986.
Справочник по машинной графике в проектировании. /Под ред. В.Е.