2429

Лексичні одиниці в програмуванні

Шпаргалка

Информатика, кибернетика и программирование

Лексичний устрій тексту програм. Напередвизначені позначення. Класифікація напередвизначених типів. Алфавіт будь-якої мови програмування є підмножиною символів (літер), представлених у спеціальній таблиці ASCII.

Украинкский

2013-01-06

121 KB

5 чел.

Алфавіт мови

Алфавіт будь-якої мови програмування є підмножиною символів (літер), представлених у спеціальній таблиці ASCII.

Зазвичай алфавіт складається з 52 великих і малих літер, 10 десяткових цифр та спеціальних символів, таких, скажімо як +, -, *, >. Алфавіт мови входить до стандартного (напередвизначеного) оточення мови (standard language environment), для того щоб різні реалізації одної мови (транслятори) були однаковими з точки зору обміну текстами мови.

Лексичний устрій тексту програм

На лексичному рівні інкапсуляції текст програми складається з наступних конструкцій:

- пробільні символи;

- коментарі;

  •  лексеми.

Пробільні символи - це символи, які використовуються для відділення лексем і поліпшення читання програми. До пробільних належать такі символи: пробіл, табуляція, новий рядок. Коментарі - це послідовності символів, які не належать тексту програми (мові) і виконують опис пояснень у програмі. Наприклад, коментар у мові С – /*це коментар у мові С*/ чи – // це коментар у мові С.


Лексеми

Лексеми - це простіші програмні конструкції, що складають словниковий запас мови. Також лексеми – це капсули, що інкапсулюють символи алфавіту.

 

Капсула-лексема представляється розміченим ланцюжком наступного виду:

......S1*l1[l2...ln]*Sj...,

де Si, Sj, lk V,а, Si, Sj - пробільні символи чи символи інших лексем;

lk, де k = 1, ..., n - символи капсули-лексеми, при цьому l1 - перший символ, а ln - останній символ лексеми.

ASCII - American Standard Codes Information Interchange

DEC

HEX

CHAR

DEC

HEX

CHAR

DEC

HEX

CHAR

DEC

HEX

СНАЯ

DEC

HEX

СНАЯ

0

0

20

14

40

28

(

60

3C

<

80

50

Р

1

1

21

15

41

29

)

61

3D

=

81

51

Q

2

2

22

16

42

2A

*

62

3E

>

82

52

R

3

3

23

17

43

2B

+

63

3F

?

83

53

S

4

4

24

18

44

2C

,

64

40

@

84

54

Т

5

5

25

19

45

2D

65

41

A

85

55

U

6

6

26

1A

46

2E

.

66

42

В

86

56

V

7

7

27

1B

47

2F

/

67

43

С

87

57

W

8

8

28

1C

48

30

0

68

44

D

88

58

X

9

9

29

ID

49

31

1

69

45

Е

89

59

Y

10

A

30

1E

50

32

2

70

46

F

90

5A

Z

11

В

31

IF

51

33

3

71

47

G

91

5B

[

12

С

32

20

52

34

4

72

48

Н

92

5C

\

13

D

33

21

!

53

35

5

73

49

I

93

5D

]

14

E

34

22

"

54

36

6

74

4A

J

94

5E

^

15

F

35

23

#

55

37

7

75

4B

К

95

5F

_

16

10

36

24

$

56

38

8

76

4C

L

96

60

'

17

11

37

25

%

57

39

9

77

4D

М

97

61

a

18

12

38

26

&

58

ЗА

:

78

4E

N

98

62

b

19

13

39

27

'

59

3B

;

79

4F

О

99

63

с

100

64

d

106

6A

j

112

70

p

119

77

w

125

7D

}

101

65

e

107

68

k

113

71

q

120

78

x

126

7E

~

102

66

f

108

6C

l

114

72

r

121

79

y

127

7F

103

67

g

109

6D

m

115

73

s

122

7A

z

104

68

h

110

6E

n

117

75

u

123

7B

{

105

69

i

111

6F

o

118

76

v

124

7C

|

Примітка. 0 - 32-символи, що не відображуються

Лексичний аналіз

Програма транслятора, яка аналізує лексеми, перевіряючи правильність їх написання, виконує лексичний аналіз (lexical analisys), і називається лексичним аналізатором (lexical analiser), або сканером (scanner). Крім аналізу сканер виконує кодування лексем, і вилучає пробільні символи та символи, що належать до коментарів, внесених у програму. Текст програми, що складається з кодів лексем, використовується у процесі синтаксичного аналізу, що виконується слідом за лексичним аналізом, який також здійснює відповідна програма трансляторa.

Позначення

Всі лексеми в тексті програми є позначеннями. Це означає, що лексеми позначають інші конструкції мови, які будуються і використовуються в процесах трансляції і виконання програми. У загальному випадку, конструкції, які позначають лексеми, називаються значеннями. Всі позначення діляться на напередвизначені та такі, що визначаються.

Класифікація позначень

Напередвизначені позначення

 Напередвизначені позначення – це такі, котрі задані стандартним оточенням мови, отже їх необхідно знати. Поділяються на зарезервовані, стандартні ті зображення.

Зарезервовані позначення - це такі позначення, у яких зв'язок зі значеннями встановлюється стандартним оточенням, наприклад, if, virtual, const, static.

 

Стандартні позначення - це такі, у яких зв'язок зі значенням також установлюється стандартним оточенням, однак у граматиці мови передбачені правила для перевизначення цих позначень, наприклад, позначення integer, +, -.

Індикатори напередвизначених типів - це позначення напередвизначених типів, наприклад, int, integer, char.

Позначення напередвизначених операцій - це символи, пари символів і рідше більш довгі ланцюжки символів, яким стандартним оточенням поставлена у відповідність деяка напередвизначена інтерпретація.

Розрізняються наступні групи позначень:

- позначення операцій напередвизначених типів, звичайно скалярних, наприклад, -, +, *, /;

- позначення операцій відносин (порівняння, більше, менше і т.д.), наприклад, ==, !=, <, >, >=, <=;

- позначення логічних операцій (логічне И, ЧИ, НЕМАЄ і т.д.), наприклад, !, &&, ||;

- позначення операцій маніпулювання бітами (зрушення, побітові И, ЧИ, і т.д.), наприклад, &, ^ , <<, >>, ||.

Позначення напередвизначених розподільників - це такі позначення, значення яких полягає в тому, що вони входять як допоміжні позначення в конструкції більш високих рівнів, наприклад, позначення “(“, “)”, “,” .

Напередвизначені зображення - це такі позначення, у яких зв'язок зі значенням установлюється стандартним оточенням.

Позначення, що визначаються

Позначення, що визначаються - це такі позначення, що складає програміст, керуючись правилами граматики мови. До них належать ідентифікатори та зображення.

Ідентифікатори - це позначення, що відповідають напередвизначеним синтаксичним і прагматичним правилам. Сутність правил є така, що ідентифікатор – це послідовність з символів букв, цифр і символу підкреслення, яка починається тільки з букви (інколи з символу підкреслення). Наприклад, nVal, cChar.

Зображення, що визначаються - це такі позначення, яким відповідають усюди відомі значення. Наприклад, 13, 5.2, ‘А’, “Си”.

Типи

Тип (вид) - це множина значень і множина операцій (дій), які можна виконувати над цими значеннями.

Будь-який тип характеризується наступним:

- позначенням типу (індикатор - задається стандартним оточенням чи обирається програмістом;

- множиною значень і відповідних зображень позначень, що задаються за визначеними правилами;

- множиною операцій, кожна має цілком визначений зміст;

  •  розміром пам'яті, котру буде займати значення даного типу при виконанні програми.

Операції, що описуються явно - це операції, що описуються і реалізуються програмістом явно, як правило при описі типу, що визначається. До них відносяться операції абстрактних типів даних.

Напередвизначені типи - це типи, для яких позначення, множини значень, множина і устрій значень напередвизначені стандартним оточенням і не можуть змінюватися.

Типи, що визначаються - це типи, для яких зазначені властивості визначаються програмістом.


Класифікація типів

Класифікація напередвизначених типів


Скалярні типи

Скалярні типи подаються монолітними значеннями без компонентів. До них належать дискретні та дійсні типи.

Множини значень кожного скалярного типу впорядковані, наперед визначено всі їх відношення, вони мають нижню та верхню межі значень.

Цілі, фіксовані та плаваючі типи утворюють групу числових типів.

Дискретні типи базуються на понятті: дискретного діапазону.

Упорядкована множина значень із максимальним і мінімальним значеннями та функціями визначення попереднього і наступного значення називається дискретним діапазоном (discrete range).

Дискретні типи

Типи в яких множини значень утворюють дискретний діапазон, називаються дискретними типами (discrete type). Ці типи мають множину значень із мінімальним і максимальним значеннями. У кожного відмінного від останнього значення є наступне значення, а в кожного відмінного від першого значення є попереднє значення. Для визначення попереднього і наступного значень передбачаються відповідні функції.

Наприклад, якщо є упорядкована послідовність значень

Т= < 3, 4, 5, 6, 7, 8 >,

Vmin = 3, Vmax = 8 значення, функція визначення наступного значення – це додавання одиниці до даного значення, функція визначення попереднього – це віднімання одиниці від даного значення.

Цілий тип

Цілий тип (integer type) утворюють значення, які називають цілими числами. Тип зазвичай включає в себе значення певного дискретного діапазону. Зображення значень цілого типу це - загальновідомі зображення цілих чисел. Наприклад, 1, 8, 65, 3458.

Для цілих типів визначено позначення в мові С int, арифметичні стандартні операції, операції відношень і основні базові операції.

Перелічуваний тип

Перелічуваний тип (enumeration type) утворюють значення, що задаються явним перелічуванням. До перелічуваних типів належать символьний і логічний типи.

Символьний тип

Символьний тип (charаcter type) – це тип, значення якого задаються (перелічуються) у стандартному оточенні мови, у таблиці ASCII (впорядкованої множини зі 128 значень).

Зображення значень символьного типу - це зображення загально відомих символів, які на письмі беруться в лапки для того, щоб відрізняти зображення від позначень інших об’єктів та зображень цифр цілого типу. Наприклад, „А”, „+”, „5”- це зображення значень символьного типу, а А, +, 5 - це позначення: ідентифікатор - А, позначення дії додавання - + та 5 – зображення значення цілого типу - 5.

Для значень символьного типу напередвизначено позначення типу – char, стандартні операції відношень і базові операції.

Логічний тип

Логічний тип (boolean type) подається (перелічується) двома значеннями, зображеними як 0(FALSE) і 1(TRUE). Ці значення впорядковано так, що FALSE < TRUE.

Для логічного типу наперед визначено позначення – bool, відношення і стандартні логічні та базові операції.

Дійсні типи

Дійсні типи утворюють значення, що є наближеними поданнями відомих у математиці дійсних чисел. Значення подаються десятковим дробом такого виду:

n + 0. d1, d2, ... dk,

де n – ціле число; di {0, 1, ... 9}.

Таке подання означає, що для деякого дійсного значення х, при будь-якому додатному k виконується нерівність:

n + d1/10 + d2/100 + ... + dk/10k  x < n + d1/10 + d2/100 + ... + dk/10k + 1/10k...

Для зображення значень дійсного типу використовують два способи.

1) значення t зображають розбиваючи його дві частини: r – до коми та l – після коми, тобто

t = k, l.

2) значення зображують у вигляді:

х = m.bp,

де m - мантиса (дробове число зі знаком); b – основа системи числення, взята для зображення значення (двійкова, вісімкова, десяткова, шістнадцяткова); p - порядок (ціле число, змінюване у відповідному діапазоні). При цьому, коли значення х розташовується в пам’яті, більша частина значення х відводиться під мантису, а решта під порядок.

1) 23.0045 1) 0.0230045

2) 2.300450Е+001 2) 2.30045Е-002


 

А также другие работы, которые могут Вас заинтересовать

36778. Виртуальный хостинг на основе IP-адресов 45 KB
  2 и необходимо создать виртуальные хосты с именами ваша_фамилия1.com и ваша_фамилия2. Для этого откройте файл etc hosts и допишите в него строки: ваша_фамилия1.com ваша_фамилия2.
36780. Исследование параметров усилителя звуковой частоты 72.5 KB
  Столетовых Кафедра Управление качеством и техническое регулирование Лабораторная работа №7 Тема: Исследование параметров усилителя звуковой частоты Выполнил: ст. Владимир 2010 Цель работы: получить практические навыки работы с электронным осциллографом и звуковым генератором при измерении чувствительности номинальной и максимальной мощности усилителя звуковой частоты. Общие сведения В состав лабораторной установки входит усилитель звуковой частоты осциллограф вольтметр переменного тока звуковой генератор и эквивалент нагрузки Rэ...
36781. МЕДИКО-ТАКТИЧЕСКАЯ ХАРАКТЕРИСТИКА ПОРАЖАЮЩИХ ФАКТОРОВ СОВРЕМЕННЫХ ВИДОВ ОРУЖИЯ 174 KB
  Кризисный характер экономического развития большой группы государств, реальный рост разрыва между экономически развитыми и отсталыми странами, провоцируют политические режимы некоторых стран к попытке решения экономических и внутренних политических проблем вооруженным путем.
36782. Сведения о некоторых командах ОС UNIX для выполнения лабораторной работы 119.5 KB
  Права доступа SUID SGID sticky r w x r w x r w x Права доступа к файлам и каталогам несколько различаются: Права доступа Файл Каталог r чтение чтение из файла получение списка файлов каталога w запись запись в файл изменение содержимого каталога создание и удаление файлов в нем x исполнение исполнение файла если он является сценарием или программой вход в каталог и осуществление в нем поиска Разрешения установленные для каталога имеют более высокий приоритет чем разрешения установленные для файлов этого каталога. Специальные...
36783. Работа с текстом. Форматирование абзацев 950.5 KB
  Выделять можно с помощью мыши и с помощью клавиатуры. Выделение с помощью мыши Фирма Microsoft разрабатывая Word поставила себе целью сделать выделение различных фрагментов текста максимально удобным. Объем фрагмента который вы выделяете зависит от количества щелчков левой кнопки мыши как показано в таблице. Простой щелчок Перемещает в указанное место курсор вставки Двойной щелчок Выделяет слово Тройной щелчок в любом месте текста Выделяет весь абзац Щелчок в любом месте предложения при нажатой клавише [Ctrl] Выделяет все предложение С...
36785. Исследование магнитных полей с помощью измерительной катушки 167 KB
  Приборы и принадлежности: два коротких соленоида планшеты из оргстекла с отверстиями для фиксации измерительной катушки датчик магнитного поля измерительная катушка длинный соленоид блок питания переменного тока амперметр блок сопряжения компьютер. Теоретическая часть В лабораторной работе измерение и исследование переменных магнитных полей осуществляются с помощью датчика измерительной катушки. При помещении датчика в переменное магнитное поле в нем возникает ЭДС индукции величина которой определяется по формуле:...
36786. Измерение логарифмического декремента и добротности 177 KB
  Краткое теоретическое введение Колебательным контуром называется электрическая цепь состоящая из последовательно составленных конденсаторов с емкостью катушки индуктивности и активного сопротивления . Измерение логарифмического декремента затухания и добротности контура производят при различных условиях: а сопротивление катушка индуктивности не имеет сердечника. Колебания в этом случае будут тоже затухающими так как имеет место внутреннее сопротивление катушки индуктивности и соединительных проводов; б сопротивление катушка...