29379

Основные функции и построение семантического анализатора программ

Доклад

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

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

Английский

2013-08-21

43 KB

1 чел.

19)Основные функции и построение семантического анализатора программ.

Семантический анализ является центральной фазой трансляции, связывающей 2 ее логические части: анализ исходной программы и синтез объектной программы. На этапе семантического анализа обрабатываются программные конструкции, распознанные синтаксическим анализаторомОсновные функции семантического анализатора:
1. Заполнение таблиц имен. Таблица формируется на этапе лексического анализа, где в нее помещаются все уникальные имена, распознанные сканером. Во время семантического анализа для каждого имени заносятся все данные, полученные из текста программы (тип идентификатора, тип значений и т.д.).
2. Выделение неявно заданной информации. В представлении программ некоторые данные об элементах программы не указаны явно.
3. Обнаружение ошибок. Синтаксический анализ определяет корректность отдельных конструкций и программы в целом с точки зрения формальных правил используемого языка, но и здесь могут быть ошибки (не согласованы типы правой и левой частей оператора присваивания, несколько одинаковых меток и т.д.).
4. Выполнение некоторых операций программы: присваивание начальных значений; действия с константами; обработка директив компилятора.
5. Формирование внутренней формы программы. Часто используются такие формы, как семантическое дерево, польская запись, список тетрад.
Формирование внутренней формы исходной программы семантический анализатор (СА) осуществляет не для всей программы в целом, а по частям, последовательно для каждой распознанной синтаксической конструкции. Поэтому СА обычно состоит из ряда процедур, каждая из которых предназначена для обработки конструкций конкретного типа, и называемых семантическими программами. Взаимодействие семантических программ производится путем обмена данными через информационную таблицу (таблицу имен). Например, семантическая программа, обрабатывающая описания переменных и массивов, вносит их типы в таблицу имен, далее эта информация используется при работе семантических программ, анализирующих выражения и операторы присваивания.
При работе семантических программ широко используется набор данных с организацией в виде стека. Рассмотрим алгоритм преобразования выражения в польскую запись и список тетрад: алгоритм Дейкстра.

Входная строка считывается поэлементно слева направо. Операнды переписываются в выходную строку, а операторы заносятся в стек. В зависимости от приоритета операторов, при записи в стек оператор может вытолкнуть из стека другой оператор, который последовательно записывается в выходную строку. 
Работа со стеком организуется так:
1. Если анализируемый оператор имеет больший приоритет, чем оператор в вершине стека, то он записывается в стек, не выталкивая другого оператора. В противном случае из стека последовательно выбираются и записываются в выходную строку все операторы, имеющие больший или равный приоритет, а только затем анализируемый оператор записывается в стек.
2. Левая скобка любого типа всегда записывается в стек, не выталкивая ни одного оператора; правая скобка в стек не заносится, но выталкивает из стека все операторы до ближайшей левой скобки того же типа(пара левой и правой скобок “уничтожают” друг друга и в выходную строку не записываются).
3. После чтения входной строки в стеке могут остаться операторы, которые последовательно должны быть переписаны в выходную строку.
Выражение, представленное в польской записи, можно вычислить за 1 просмотр слева направо. В алгоритме вычисления выражений в польской записи стек используется для хранения операндов.
 Алгоритм включает следующие шаги:
1. Если считываемый символ является операндом, то его значение записывается в стек.
2. Если считываемый символ является бинарным оператором, то из стека извлекаются 2 верхних элемента, над ними выполняется соответствующая операция, и результат записывается в стек.
3. Если считываемый символ является унарным оператором, то из стека извлекается 1 верхний элемент, над ним выполняется соответствующая операция, и результат записывается в стек. 
4. Шаги 1─3 повторяются, пока не будут считаны все символы входной строки. Результат вычислений остается в стеке.
Это алгоритм применяется для формирования тетрадной формы программы. В нем в стек записываются не значения операндов, а их символьные обозначения.


 

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

81562. Липидный состав мембран (фосфолипиды, гликолипиды, холестерин). Роль липидов в формировании липидного бислоя 104.87 KB
  В мембранах присутствуют липиды трёх главных типов фосфолипиды гликолипиды и холестерол холестерин. Липидный состав мембран различен содержание того или другого липида повидимому определяется разнообразием функций выполняемых этими липидами в мембранах. В мембранах эукариотических клеток обнаружено огромное количество разных фосфолипидов причём они распределены неравномерно по разным клеточным мембранам. В плазматических мембранах клеток в значительных количествах содержатся сфингомиелины.
81563. Белки мембран - интегральные, поверхностные, «заякоренные». Значение посттрансляционных модификаций в образовании функциональных мембранных белков 104.74 KB
  Мембранные белки контактирующие с гидрофобной частью липидного бислоя должны быть амфифильными. Белки мембран различаются по своему положению в мембране. Они могут глубоко проникать в липидный бислой или даже пронизывать его интегральные белки либо разными способами прикрепляться к мембране поверхностные белки. Поверхностные белки.
81564. Механизмы переноса веществ через мембраны: простая диффузия, первично-активный транспорт (Nа+-К+-АТФаза, Са2+-АТФаза), пассивный симпорт и антипорт, вторично-активный транспорт 106.69 KB
  Перенос некоторых неорганических ионов идёт против градиента концентрации при участии транспортных АТФаз ионных насосов. АТФазы различаются по ионной специфичности количеству переносимых ионов направлению транспорта. В результате функционирования АТФазы переносимые ионы накапливаются с одной стороны мембраны.
81565. Трансмембранная передача сигнала. Участие мембран в активации внутриклеточных регуляторных систем - аденилатциклазной и инозитолфосфатной в передаче гормонального сигнала 109.02 KB
  Важное свойство мембран - способность воспринимать и передавать внутрь клетки сигналы из внешней среды. \"Узнавание\" сигнальных молекул осуществляется с помощью белков-рецепторов, встроенных в клеточную мембрану клеток-мишеней или находящихся в клетке. Клетку-мишень определяют по способности избирательно связывать данную сигнальную молекулу
81566. Коллаген: особенности аминокислотного состава, первичной и пространственной структуры. Роль аскорбиновой кислоты в гидоксилировании пролина и лизина 108.5 KB
  В межклеточном матриксе молекулы коллагена образуют полимеры называемые фибриллами коллагена. Фибриллы коллагена обладают огромной прочностью и практически нерастяжимы. Молекулы коллагена состоят из трёх полипептидных цепей называемых αцепями. Первичная структура αцепей коллагена необычна так как каждая третья аминокислота в полипептидной цепи представлена глицином около 1 4 аминокислотных остатков составляют пролин или 4гидроксипролин около 11 аланин.
81567. Особенности биосинтеза и созревания коллагена. Проявления недостаточности витамина С 106.89 KB
  Синтез и созревание коллагена сложный многоэтапный процесс начинающийся в клетке а завершающийся в межклеточном матриксе. Синтез и созревание коллагена включают в себя целый ряд посттрансляционных изменений: гидроксилирование пролина и лизина с образованием гидроксипролина Hyp и гидроксилизина Hyl; гликозилирование гидроксилизина; частичный протеолиз отщепление сигнального пептида а также N и Сконцевых пропептидов; образование тройной спирали. Синтез полипептидных цепей коллагена.
81568. Особенности строения и функции эластина 103.27 KB
  Эластин содержит довольно много пролина и лизина но лишь немного гидроксипролина; полностью отсутствует гидроксилизин. В образовании этих сшивок участвуют остатки лизина двух трёх или четырёх пептидных цепей. Предполагают что эти гетероциклические соединения формируются следующим образом: вначале 3 остатка лизина окисляются до соответствующих εальдегидов а затем происходит их соединение с четвёртым остатком лизина с образованием замещённого пиридинового кольца. Окисление остатков лизина в εальдегиды осуществляется медьзависимой...
81569. Гликозаминогликаны и протеогликаны. Строение и функции. Роль гиалуроновой кислоты в организации межклеточного матрикса 192.62 KB
  Протеогликаны высокомолекулярные соединения состоящие из белка 510 и гликозаминогликанов 9095. Протеогликаны отличаются от большой группы белков которые называют гликопротеинами. Гликозаминогликаны и протеогликаны являясь обязательными компонентами межклеточного матрикса играют важную роль в межклеточных взаимодействиях формировании и поддержании формы клеток и органов образовании каркаса при формировании тканей.
81570. Адгезивные белки межклеточного матрикса: фибронектин и ламинин, их строение и функции. Роль этих белков в межклеточных взаимодействиях и развитии опухолей 104.14 KB
  К первой группе белков с выраженными адгезивными свойствами относят фибронектин ламинин нидоген фибриллярные коллагены и коллаген IV типа; их относят к белкам зрелой соединительной ткани. Фибронектин. Фибронектин один из ключевых белков межклеточного матрикса неколлагеновый структурный гликопротеин синтезируемый и выделяемый в межклеточное пространство многими клетками.