Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 28
Текст из файла (страница 28)
выполняется расширениераспознающийПодробнеетот же язык.макровызовов.задачи и проблемы лексического анализа рассматриваются в Всетриформализма(конечныхавтоматов,регулярныхвыраженийиправолинейныхВсе триформализма(конечныхавтоматов,регулярныхвыраженийиправолинейныхВсе три формализма(конечныхавтоматов,регулярныхвыраженийиправолинейных“Формальныеграмматикии языки.Элементытеориитрансляции”. пособииСинтаксическийанализграмматик)имеютодинаковуювыразительнуюмощность.Вчастности,порегулярномуграмматик)имеютодинаковуювыразительнуюмощность.Вчастности,порегулярномуСинтаксическийи семантическийанализаторы.Программабытьграмматик)имеют одинаковуювыразительнуюмощность. В частности,подолжнарегулярномувыражениюилиправолинейнойграмматикеможносконструироватьконечныйавтомат,выражениюилиправолинейнойграмматикеможносконструироватьконечныйавтомат,проверенанаилисинтаксическуюи семантическуюправильность(должнобыть провереновыражениюправолинейнойграмматикеможносконструироватьконечныйавтомат,Синтаксическийанализ — процесссопоставлениялинейнойпоследовательностилексемраспознающийтотжеязык.соблюдениеконтекстныхусловий),разделенанасоставныечасти,длякаждойизраспознающийтотжеязык.распознающийже язык.
или формального языка с его формальной грамматикой.(слов, токенов)тотестественногокоторых должно быть сформировано внутреннее представление. В таблицыРезультатомобычноявляется дерево разбора (синтаксическое дерево).СинтаксическийанализСинтаксическийанализтрансляторадолжнабыть занесена вся информация, которую можно извлечь изСинтаксическийанализобрабатываемойпрограммы.Подробнеезадачии проблемысинтаксическогоиВ ходе синтаксическогоанализаисходныйтекстпреобразуетсяв структуруданных,Синтаксическийанализ—процесссопоставлениялинейнойпоследовательностилексемСинтаксическийанализ— процесссопоставленияпоследовательностилексемСинтаксическийанализ—рассматриваютсяпроцесссопоставлениялинейнойлексемсемантическогоанализав линейнойразделе3.3.2ипоследовательностив пособии “Формальныеобычно—естественногов дерево,котороеотражаетсинтаксическуюструктуру входной(слов,токенов)естественногоилиформальногограмматикой.(слов,грамматикитокенов)или формальногоязыкаязыкас его сформальнойграмматикой.и языки.Элементытеориитрансляции”.(слов,токенов)естественногоилиформальногоязыкас егоего формальнойформальнойграмматикой.
последовательностиихорошоподходитдлядальнейшейобработки.Результатомобычноявляетсядереворазбора(синтаксическоедерево).Результатомобычноявляетсядереворазбора(синтаксическоедерево).Внутреннеепрограммы. ВнутреннееРезультатомобычнопредставлениеявляется деревоисходнойразбора (синтаксическоедерево). представлениеисходнойпрограммыв компиляторев наибольшейстепенизависитот той обработки,правило,результатомсинтаксическогоанализаявляетсясинтаксическоестроениеВВКакходеанализаисходныйтекстпреобразуетсявв структуруданных,В ходесинтаксическогоисходныйтекстпреобразуетсяв структуруданных,ходе синтаксическогосинтаксическогоанализаисходныйтекстпреобразуетсяструктуруданных,которойдолжна анализаподвергнутьсяпрограмма.Некоторыевидывнутреннегопредложения,представленноелибовсинтаксическуювиде деревазависимостей,либо в виде дереваобычно—котороеотражаетструктурувходнойобычно— в дерево,котороеотражаетсинтаксическуюструктурувходнойпредставлениябольшеподходятдляфиксацииструктурыкомпилируемойобычно— вв дерево,дерево,котороеотражаетсинтаксическуюструктурувходной программы,составляющих,илибовиденекоторогосочетанияпервогои второго способовпоследовательностииивхорошоподходитдлядальнейшейобработки.последовательностихорошоподходитдля дальнейшейобработки.другиеориентированына проведениеоптимизирующихпреобразований, третьипоследовательностихорошоподходитдлядальнейшейобработки.представления.наиболее удобны при синтезе (генерации) результата компиляции.
Более подробноКакрезультатомсинтаксическогоанализаявляетсясинтаксическоестроениеКак правило,результатомсинтаксическогоявляетсясинтаксическоеКак правило,правило,результатомсинтаксическогоанализаявляетсясинтаксическоестроениевнутреннеепредставлениепрограмм ванализакомпиляторахрассматриваетсявстроениеразделе3.3.3 иНисходящийпарсер—продукцииграмматикираскрываются,начинаясостартовогопредложения,представленноелибоввидедеревазависимостей,либоввидепредложения,представленноелибоввидедеревазависимостей,либоввидедеревавпредложения,пособии “Формальныеграмматикиязыки.Элементытеории трансляции”.представленноелибо ив видедеревазависимостей,либо в виде деревадеревасимвола,либодо получениятребуемойсочетанияпоследовательноститокенов.составляющих,либовв видесочетанияпервогоии второгоспособовсоставляющих,влибовиденекоторогопервогоиспособовФазы оптимизациипрограмм.
Оптимизация– второговажнейшаязадачакомпилятора.составляющих,виде некоторогонекоторогосочетанияпервоговторогоспособовЯзыкивысокогоуровня, несвязанные напрямую с особенностями конкретнойпредставления.представления.представления.Методрекурсивногоспуска аппаратуры, на которой должны выполняться программы, без оптимизации не могутНисходящийпарсер—продукцииграмматикираскрываются,начинаясостартовогоНисходящийпарсер—дляпродукцииграмматикираскрываются,начинаясо стартовогоиспользоватьсясозданияэффективныхпрограмм.ОптимизацияпрограммможетНисходящийпарсер—продукцииграмматикираскрываются,начинаясостартовогоLL-анализаторсимвола,дотребуемойпоследовательноститокенов.символа,до получениятребуемойпоследовательноститокенов.проводитьсяв интересахразличныхсвойств программ.Обычно используют двесимвола,до полученияполучениятребуемойпоследовательноститокенов. стратегии оптимизации: оптимизация в целях повышения скорости работы программырекурсивногоМетодрекурсивногоспускаМетодрекурсивногоспуска размеров программ.
Методы, используемые прии Методоптимизацияв целяхспускауменьшенияреализации этих стратегий часто противоположны, хотя некоторые из них близки другLL-анализаторLL-анализаторВосходящийпарсер(англ. bottom-upparser) — продукции восстанавливаются из правыхLL-анализаторк другу.Более подробно проблемыоптимизации программ в компиляторах стартовымчастей,начинаястокеновикончаясимволом.рассматриваются в разделе 3.3.4.Восходящийпарсер (англ.
bottom-upparser) — продукции восстанавливаются из правыхФазы синтеза программ. Второй главной работой компилятора являетсяLR-анализаторчастей,начинаяс токенов и кончаястартовымгенерациярезультирующейпрограммы.Насимволом.выходе компилятора должна бытьпостроенапоследовательность символов (“цепочка”) выходного языка по темGLR-парсерLR-анализаторправилам, которые предлагаются языком машинных команд или языком ассемблера.
ВGLR-парсерСемантический анализ29 Семантический анализЗадачей контекстного анализа является установление свойств объектов и ихиспользования. Наиболее часто решаемой задачей является определение существованияЗадачейиконтекстногоявляется установлениесвойствобъектов сипомощьюихобъектасоответствия анализаего использованияконтексту, чтоосуществляетсяиспользования.Наиболеечасто решаемойявляетсяопределениесвойствсуществованияанализатипа объекта.Под контекстомздесь задачейпонимаетсявся совокупностьобъектаточкии соответствияегонапримериспользованияконтексту,что осуществляетсяс помощью итекущейпрограммы,множестводоступныхобъектов, тип выраженияанализа типа объекта.
Под контекстом здесь понимается вся совокупность свойствт.д. текущей точки программы, например множество доступных объектов, тип выражения иТаким образом, необходимо хранить объекты и их типы, уметь находить эти объекты ит.д.определять их типы, определять характеристики контекста.
Совокупность доступных вданнойточке объектовбудем называтьсредой. и их типы, уметь находить эти объекты иТаким образом,необходимохранить объектыанализатипатипаобъекта.объекта.ПодПодконтекстомконтекстомздесьздесьпонимаетсяпонимаетсявсявсясовокупностьсовокупностьсвойствсвойстванализатипаобъекта.Подконтекстомздесьпонимаетсявсясовокупностьсвойстванализаанализа типаобъекта. Подконтекстом здесьпонимается всясовокупность свойствтекущейточкиточкипрограммы,программы,напримернапримермножествомножестводоступныхдоступныхобъектов,объектов,типтипвыражениявыраженияиитекущейточкипрограммы,напримермножестводоступныхобъектов,типвыражениятекущейтекущей точкипрограммы, напримермножество доступныхобъектов, типвыражения и ит.д.т.д.т.д.т.д.Такимобразом,образом,необходимонеобходимохранитьхранитьобъектыобъектыииихихтипы,типы,уметьуметьнаходитьнаходитьэтиэтиобъектыобъектыиииТакимобразом,необходимохранитьобъектытипы,уметьнаходитьэтиобъектыТакимТаким образом,необходимо хранитьобъекты ииихихтипы,уметь находитьэти объектыиопределятьихтипы,определятьхарактеристикиконтекста.Совокупностьдоступныхследующимфазамкомпиляции.Получаянавходисходнуюпрограммукакопределятьихтипы,определятьхарактеристикиконтекста.Совокупностьдоступныхввопределятьих типы,типы,определятьопределятьхарактеристикихарактеристикиконтекста.контекста.СовокупностьСовокупностьдоступныхопределять ихдоступныхв впоследовательностьсимволоввходногоязыка (“цепочку”), компилятор долженданнойточкеточкеобъектовобъектовбудемназыватьназыватьсредой.даннойточкеобъектовбудемназыватьсредой.даннойбудемсредой.точкеобъектовбудемназыватьсредой.проверить, принадлежит ли она входному языку, а также определить правила, по процессеработыкомпиляторхранитхранитинформациюобобъектахобъектахпрограммывпроцессеработыкомпиляторхранитинформациюобобъектахпрограммыкоторымэтапоследовательностьстроилась.АнализчастоподразделяетсянаВВВпроцессеработыкомпиляторинформациюпрограммыработыкомпиляторхранитинформациюобобобъектахпрограммыв ввспециальныхтаблицахсимволов.Какправило,информацияокаждомобъектесостоитлексический,синтаксическийи семантическийанализ.специальныхтаблицахтаблицахсимволов.символов.Какправило,правило,информацияинформацияо каждомкаждомобъектесостоитизизспециальныхтаблицахсимволов.Какправило,информацияобъектесостоитспециальныхКако окаждомобъектесостоитиз изЛексическийанализатор(сканер).Основнаязадачалексическогоанализатора–двухосновныхосновныхэлементов:имениобъектаиописанияописанияобъекта.Информацияобобъектахобъектахдвухосновныхэлементов:имениобъектаописанияобъекта.Информацияобобъектахдвухосновныхэлементов:имениобъектаобъекта.Информацияэлементов:имениобъектаиииописанияобъекта.Информацияобобобъектахпросмотретьвесьтекстисходнойпрограммыиобразом,выделитьв немпоисклексемы(минимальныепрограммыдолжнадолжнабытьорганизованатакимобразом,чтобыпоискеебылбылпопрограммыдолжнабытьорганизованатакимчтобыеебылпобытьорганизованатакимобразом,чтобыпоискеееебылпопопрограммыдолжнабытьорганизованатакимобразом,чтобыпоисклексическиеединицыилиэлементытекстапрограммы,обладающиесмысломв рамкахвозможностибыстрее,атребуемаятребуемаяпамятьповозможностименьше.Крометого,возможностибыстрее,атребуемаятребуемаяпамятьповозможностименьше.Крометого,сосовозможностибыстрее,апамятьповозможностименьше.Крометого,сосовозможностибыстрее,апамятьповозможностименьше.Крометого,данного языка).