You are on page 1of 10

ЛЕКСИЧКА

АНАЛИЗА
ПРОГРАМСКИ ПРЕВОДИОЦИ
Проф. др Ненад Јовановић

© N. Jovanović, 2017-2022 1
Лексичка анализа
 Реч лексикологија потиче од грчких речи
Λέξη (лекси), што значи „реч“ и Λόγια
(логиа) што значи „наука“, па је
лексикологија део науке о језику који
проучава речи у њиховом заначењу
основних градивних јединица језичких
конструкција.

© N. Jovanović, 2017-2022 2
Лексички анализатор
 Програм на неком програмском језику се
састоји од кључних речи, идентификатора,
сепаратора, бројева...
 Лексички анализатор је саставни део сваког
преводиоца програмских језика и он узима ток
карактера, групише их у најмање самосталне
јединице лексичког система (лексема) и
производи излазну секвенцу типова јединица
лексичког система (токена), који се предају
синтаксном анализатору.

© N. Jovanović, 2017-2022 3
Токен
 Токен је пар који се састоји од имена токена
и, опционо, вредности атрибута.
 Задатак лексичког анализатора је да
открије и обезбеди наредни улазни токен и
проследи га синтаксном анализатору.

© N. Jovanović, 2017-2022 4
Табеле
 Такође, у току лексичке анализе се
формирају различите табеле које се користе
у осталим фазама преводења.
 Константе се смештају у табелу константи,
променљиве у табелу променљивих...

© N. Jovanović, 2017-2022 5
Типови токена
 Програмски језик класификује токене у
коначан скуп типова токена.
 На пример, неки типови токена су:
• кључна реч,
• идентификатор,
• релација,
• додела,
• константа,
• граничник...

© N. Jovanović, 2017-2022 6
Образац
 У процесу лексичке анализе проблем је
како низ симбола идентификовати
одређеним токеном.
 За то се користе обрасци.
 Образац или шаблон одређује начин који
једнозначно дефинише који низови
одговарају ком токену.

© N. Jovanović, 2017-2022 7
Лексема
 Лексема је секвенца карактера изворног
програма која је идентификована од
лексичког анализатора као инстанца
токена.
 Лексема се препознаје на основу
формалног описа помоћу шаблона за који
је генерисан одређени токен.

© N. Jovanović, 2017-2022 8
Пример
 На пример, посматра се код на C језику:
printf(“Ukupno = %d\n”, rezultat);

 Језичка конструкција “printf“ је лексема


која одговара образцу за токен кључна реч.
 Елеменат „rezultat“ је лексема која
одговара образцу за токен идентификатор.
 “Ukupno = %d\n” је лексема која
одговара токену литерал.

© N. Jovanović, 2017-2022 9
Примери
 На пример, нека је дат код у програмском језику
ФОРТРАН:
E = M * C ** 2
 Токени са придруженим атрибутима су наведени у
наставку:
• <id, pointer na TS za E>
• <op_dod>
• <id, pointer na TS za M>
• <op_mul>
• <id, pointer na TS za C>
• <op_exp>
• <num, type integer, val 2>
© N. Jovanović, 2017-2022 10

You might also like