Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовые проекты / курса не мои / Ильшатей / spo_sanya / Пояснительная записка_my.doc
Скачиваний:
35
Добавлен:
02.05.2014
Размер:
245.76 Кб
Скачать

1.5 Результаты

Идентификаторы, записанные во входном файле:

h7gqghrzwcwxvv9h

c1dl9g

hwy43zxraxf6o2azkbapqd6

iongd

xtvtb3wgt6p

bind44z176d0omc9sgcoyhu4p3vgnawx

2

01u2x5vo1gpasgczm

8g8h2yd1rc59

le

anwzl6yld

ynvv4d6x1

9p4h9y3gfblg

d9pi

gn

mfqrtvr2wta7ermk14

28d5gusn42fgd4r2ip7t59bgu

i1kak6o48veire8oy5ywirgl9cant

dotb7rnfpt

12suuzydbgg6

smtmwnxmcxc4hxnyhblgkw6

un

xgr7g

5ci1otdogy2ioq36

lfezegl50w110gbm1ca32ukop

g8zsrfnvq3kneeu5t2xu0nt0s5n

gnt2k9gv1sp3955mo3

m9vagyz9tcx4bh5si6rfvoci0

y5h8i481yb

ghop8he

khaup6l

4ug0

8xp5kdzu79bt823douido6

nc0pn5n0ulf1xubtgua3sc6u8

cuodi2gekge

vfuhwe9

srpgig84cgx453qtlg

04

c

p8ac5

aiz

kb0cr2ru1m1czzwpw4hq88bvbee

f8700ns1uq7htb81bd3

v4dsowmbptbnev0e4avyo

7d2icsw820uri25p91sn2cb6304

52gazz4iig6dwns8k

ubk3hu7zl

fx7vg811hdzebh0axeq

5s

kkza9s4x459pevz6ab159q2g5l4t5

w7fzq8kbmfhl31gypicu2qz809n

n6w4kk09w1fpgg0bknui

fk2yfdrbx8wv4yihh

glubdaqo3t5o874lruh

o7qxg

zif6egncgn6hb3uy5ksiq4c

svu84fu07

7ykd5afoe1lkq7dess40yep2i5u2br9b

s0ta0gmu

8w4p

ks7z7ht92e02toursqg

mzpcin5bploosbpxxgo1

q489v

c10r4tyy1c

t55xcl5tzad4n6g433

y0r68r2fhy8xm2g11xc6oi

0hwg1orrxb1

mgotrpd91g69t5n2scg0d534uy

okfce80b

4bfya2mwmmtx82186ig

oxv

q2yi8qdd3usq6y6061o

86sp8mo

92cla4w6ap82aeqm50tnv6i7uwa

k91e7ag3nr8icv0cixz7hmv3p1ndiev

8x8f0ymuwa

rv

opqxr

enw2ctf64slxgsl32u2w

ae6ndxh1qvmxdph4v57v79twpu

n8gopg

5ud7wlbmg4gdp

t74gpgvt9a2xv1wns431yqvtcs9rcad

gynu7lozrsnxwsm

erk8tib68

anf1fssslgqqs87minya8vo

4sn9tb16mfwi6w

2t

6sgi9

ow4bgd48ff1kv2llynav9

k9c1cewy

7ufxwadkfaa

ntadtgongmz1s5s311rg7

ucc53x6ixw

r3l8xwe6gw83eb6todn0

ot7pddpz8d9on5pqhhqmg6n91b

ha7gsb9azpa6pkh5dcnotg9g

ledf

Метод 1 – простое рехэширование:

Всего поиск: 98

Сравнений: 881

Всего сравнений: 881

В среднем сравнений: 8,989796

Метод 2 – рехэширование с использованием псевдослучайных чисел:

Всего поиск: 98

Сравнений: 179

Всего сравнений: 179

В среднем сравнений: 1,826531

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

2 Проектирование лексического анализатора

2.1 Исходные данные

Необходимо разработать лексический анализатор, который выполняет лексический анализ входного текста.

Входной язык содержит операторы цикла типа for (…; …; …) do, разделенные символом ; (точка с запятой). Операторы цикла содержат идентификаторы, знаки сравнения <, >, =, десятичные числа с плавающей точкой (в обычной и логарифмической форме), знак присваивания (:=).

Программа должна допускать наличие комментариев неограниченной длины во входном файле. Тип комментариев – внутри косых черт со звездочкой: /*_*/.

2.2 Принцип работы лексического анализатора

Лексический анализатор (или сканер) - это часть компилятора, которая читает литеры программы на исходном языке и строит из них слова (лексемы) исходного языка. На вход лексического анализатора поступает текст исходной программы, а выходная информация передается для дальнейшей обработки компилятором на этапе синтаксического анализа и разбора.

Лексема – это структурная единица языка, которая состоит из элементарных символов языка и не содержит в своем составе других структурных единиц языка.

В основном лексические анализаторы выполняют исключение из текста комментариев и незначащих пробелов, а также выделение лексем.

Результатом работы лексического анализатора является перечень всех найденных в тексте исходной программы лексем. Этот перечень представляется в виде таблицы, называемой таблицей лексем.

Язык описания констант и идентификаторов в большинстве случаев является регулярным, то есть может быть описан с помощью регулярных грамматик. Распознавателями для регулярных языков являются конечные автоматы (КА).

Любой КА может быть задан с помощью пяти параметров: М(Q, Σ,δ,q0,F),

где:

Qконечное множество состояний автомата;

Σ конечное множество допустимых входных символов (входной алфавит КА);

δ – заданное отображение множества Q·Σ во множество подмножеств Р(Q) δ: Q·Σ→ Р(Q) (δ – функция переходов автомата).

q0 Q – начальное состояние автомата;

FQ – множество конечных состояний автомата.

Алгоритм работы простейшего сканера:

• просматривается входной поток символов программы на исходном языке до обнаружения очередного символа, ограничивающего лексему;

• для выбранной части входного потока выполнятся функция распознавания лексемы;

• при успешном распознавании информация о выделенной лексеме заносится

в таблицу лексем, и алгоритм возвращается к первому этапу;

• при неуспешном распознавании выдается сообщение об ошибке, а дальнейшие действия зависят от реализации сканера: либо его выполнение прекращается, либо делается попытка распознать следующую лексему (идет возврат к первому этапу алгоритма).

Работа программы-сканера продолжатся до тех пор, пока не будут просмотрены все символы программы на исходном языке из входного потока.

Соседние файлы в папке spo_sanya