Slide 1 - програмски јазици

Download Report

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