Transcript Slide 1 - програмски јазици
Slide 1
Елементи на
програмски јазици
•Азбука
•Зборови и реченици (наредби)
•Податоци и постапки
•Константи
•Променливи и коментари
•Преведувачи
•Интерпретери
•Преведување на програма
1
Slide 2
Азбука на програмски јазик Pascal
• Големи и мали букви од абецеда
A,B,C,…Z и a,b,c…z
• Цифри 0,1,2,3,4,5,6,7,8,9
• Специјални знаци +-)(*{[}}<><>?/
• Резервирани зборови AND ARRAY BEGIN
END CASE CONST TO DO IF ELSE THEN
FILE FOR FUNCTION PROGRAM RECORD
WHILE REPEAT TYPE UNTIL VAR ...
2
Slide 3
Зборови и реченици
• Резервирани зборови - за одредена намена
• Кориснички – ние ги дефинираме
• Зборовите не фигурираат како самостојни
•
•
•
•
елементи ами се комбинираат во јазични
конструкции т.е. наредби
Не секоја низа знаци е збор
Не секоја низа зборови е реченица
Граматика (синтакса и семантика)
Постојат наредби од еден збор
3
Slide 4
Податоци и постапки
• Ученик, компјутер, програмски јазик Pascal ,
•
задача за решавање
Секоја програма има дел за опис на :
Податоци
влезни = параметри
излезни = резултати
Постапка
е главен дел од програмата каде
со наредби се опишува алгоритамот
4
Slide 5
Константи
• Податок чија вредност не се менува
• Целобројни декадни константи 5, -19,...
• Децимални декадни константи
• Знаковни константи : ‘A’, ‘a’
• Логички константи : true , false
• Стринг константи ‘bukva’, ‘broj’ , ‘Risto’
• Комплексни, бинарни, хексадекадни ...
5
Slide 6
Променливи и коментари
•
•
•
•
Вредноста може да се промени
Има име = идентификатор
и константите може да имаат имиња
Правила за формирање имиња
не почнува со цифра или спец. знак
не смее да има празно место
• Коментар за објаснување со :
•
{ ova e komentar}
(* i ova e komentar *)
Во други јазици : /*
komentar vo C
// komentar vo C++
*/
6
Slide 7
Преведувачи
• Програмите во виши програмски јазици не се
•
•
•
извршуваат директно на компјутер
Потребни се преведувачи – compiler
Изворна програма source program (code)
Извршна програма executive program
Изворна програма
Преведувач
Извршна програма
Шематски приказ на процесот на преведување
7
Slide 8
Интерпретери
• Не прават извршен код во машински јазик
• Секвенцијално една подруга ги
•
интерпретираат наредбите и ги извршуваат
Денес се користат преведувачи кои ја
преведуваат изворната програм до меѓукод, а
потоа меѓукодот се извршува , посебно кај
компјутерска мрежа или јазици кои работат
на различни оперативни системи (Java , JVM
Java Virtual Machine)
8
Slide 9
Преведување на програма во
четири фази
Изворна програма
Поток од знаци
Лексичка анализа
скенер
Поток од обележја
Синтаксна анализа
парсер
Синтаксно дрво
Семантичка анализа и
Генерирање меѓукод
Меѓукод
Генерирање на
меѓукод
Машинска програма
9
Slide 10
Прва фаза Лексичка анализа
• Скенерот ја чита програмата како текст
(поток) од знаци и ги групира во
обележја (токенси) разделувајќи ги
според некој знак најчесто blank
• Се отстрануваат коментарите
• Се прави листа на обележја со број на
линија и колона во програмата
• Се јавуваат лексички грешки
10
Slide 11
Втора фаза Синтаксна анализа
• Синтаксниот анализатор – парсер ги
организира обележјата во Синтаксно
дрво користејки BNF-нотација
• Се проверува дали наредбите се
правилно напишани , ако не се се
јавува syntax error
11
Slide 12
Трета фаза Семантика
• Се испитува значењето на наредбите
• Дали една променлива има еднакво значење
•
•
•
•
во цела програма
Дали сите променливи се декларирани
(опишани ) пред нивно користење
Се проверува тип и структура на
идентификатори и изрази
Дали користење на променливи е соодветно
пример да нема собирање број со буква
Итн ...
12
Slide 13
Четврта фаза
• Се генерира меѓуформа и се додава код
од библиотеки за поврзување со
оперативен систем
• Се оптимизира со разни техники во
краен асемблерски или машински код
Целиот процес понекогаш го делиме на компајлирање и линкување
(поврзување)
13
Елементи на
програмски јазици
•Азбука
•Зборови и реченици (наредби)
•Податоци и постапки
•Константи
•Променливи и коментари
•Преведувачи
•Интерпретери
•Преведување на програма
1
Slide 2
Азбука на програмски јазик Pascal
• Големи и мали букви од абецеда
A,B,C,…Z и a,b,c…z
• Цифри 0,1,2,3,4,5,6,7,8,9
• Специјални знаци +-)(*{[}}<><>?/
• Резервирани зборови AND ARRAY BEGIN
END CASE CONST TO DO IF ELSE THEN
FILE FOR FUNCTION PROGRAM RECORD
WHILE REPEAT TYPE UNTIL VAR ...
2
Slide 3
Зборови и реченици
• Резервирани зборови - за одредена намена
• Кориснички – ние ги дефинираме
• Зборовите не фигурираат како самостојни
•
•
•
•
елементи ами се комбинираат во јазични
конструкции т.е. наредби
Не секоја низа знаци е збор
Не секоја низа зборови е реченица
Граматика (синтакса и семантика)
Постојат наредби од еден збор
3
Slide 4
Податоци и постапки
• Ученик, компјутер, програмски јазик Pascal ,
•
задача за решавање
Секоја програма има дел за опис на :
Податоци
влезни = параметри
излезни = резултати
Постапка
е главен дел од програмата каде
со наредби се опишува алгоритамот
4
Slide 5
Константи
• Податок чија вредност не се менува
• Целобројни декадни константи 5, -19,...
• Децимални декадни константи
• Знаковни константи : ‘A’, ‘a’
• Логички константи : true , false
• Стринг константи ‘bukva’, ‘broj’ , ‘Risto’
• Комплексни, бинарни, хексадекадни ...
5
Slide 6
Променливи и коментари
•
•
•
•
Вредноста може да се промени
Има име = идентификатор
и константите може да имаат имиња
Правила за формирање имиња
не почнува со цифра или спец. знак
не смее да има празно место
• Коментар за објаснување со :
•
{ ova e komentar}
(* i ova e komentar *)
Во други јазици : /*
komentar vo C
// komentar vo C++
*/
6
Slide 7
Преведувачи
• Програмите во виши програмски јазици не се
•
•
•
извршуваат директно на компјутер
Потребни се преведувачи – compiler
Изворна програма source program (code)
Извршна програма executive program
Изворна програма
Преведувач
Извршна програма
Шематски приказ на процесот на преведување
7
Slide 8
Интерпретери
• Не прават извршен код во машински јазик
• Секвенцијално една подруга ги
•
интерпретираат наредбите и ги извршуваат
Денес се користат преведувачи кои ја
преведуваат изворната програм до меѓукод, а
потоа меѓукодот се извршува , посебно кај
компјутерска мрежа или јазици кои работат
на различни оперативни системи (Java , JVM
Java Virtual Machine)
8
Slide 9
Преведување на програма во
четири фази
Изворна програма
Поток од знаци
Лексичка анализа
скенер
Поток од обележја
Синтаксна анализа
парсер
Синтаксно дрво
Семантичка анализа и
Генерирање меѓукод
Меѓукод
Генерирање на
меѓукод
Машинска програма
9
Slide 10
Прва фаза Лексичка анализа
• Скенерот ја чита програмата како текст
(поток) од знаци и ги групира во
обележја (токенси) разделувајќи ги
според некој знак најчесто blank
• Се отстрануваат коментарите
• Се прави листа на обележја со број на
линија и колона во програмата
• Се јавуваат лексички грешки
10
Slide 11
Втора фаза Синтаксна анализа
• Синтаксниот анализатор – парсер ги
организира обележјата во Синтаксно
дрво користејки BNF-нотација
• Се проверува дали наредбите се
правилно напишани , ако не се се
јавува syntax error
11
Slide 12
Трета фаза Семантика
• Се испитува значењето на наредбите
• Дали една променлива има еднакво значење
•
•
•
•
во цела програма
Дали сите променливи се декларирани
(опишани ) пред нивно користење
Се проверува тип и структура на
идентификатори и изрази
Дали користење на променливи е соодветно
пример да нема собирање број со буква
Итн ...
12
Slide 13
Четврта фаза
• Се генерира меѓуформа и се додава код
од библиотеки за поврзување со
оперативен систем
• Се оптимизира со разни техники во
краен асемблерски или машински код
Целиот процес понекогаш го делиме на компајлирање и линкување
(поврзување)
13