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 повторяются, пока не будут считаны все символы входной строки. Результат вычислений остается в стеке.
Это алгоритм применяется для формирования тетрадной формы программы. В нем в стек записываются не значения операндов, а их символьные обозначения.


 

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

81144. Основные понятия теории управления персоналом организации 39.82 KB
  В последние 50 лет термин управление персоналом использовался для описания функции управления посвященной найму развитию обучению ротации обеспечению безопасности и увольнению персонала. Управление персоналом вид деятельности по руководству людьми направленный на достижение целей фирмы предприятия путем использования труда опыта таланта этих людей с учетом их удовлетворенности трудом. В современном подходе управление персоналом включает: планирование потребности в квалифицированных сотрудниках; составление штатного расписания и...
81145. Современные модели управления 262.4 KB
  На сегодня многие признают концепцию управления персоналом известного российского ученого в области менеджмента Л. В рамках органической парадигмы последовательно сложились вторая концепция управления персоналом и третья концепция управления человеческими ресурсами. Научной основой концепции управления персоналом развивавшейся с 30х гг.
81146. Групповая динамика 36.19 KB
  Группа четко ограниченная в размерах совокупность людей которая вычленяется из широкого социума как некая отдельная психологически самоценная общность объединенная в логике какихлибо значимых оснований: специфика заданной и реализуемой деятельности социально оцениваемая принадлежность к определенной категории людей входящих в группу структурнокомпозиционная объединенность и т. Группа социальная объединения людей имеющих общие значимые специфические признаки основанные на их участии в некоторой деятельности связанной системой...
81147. Виды и характеристика больших социальных групп 35.42 KB
  Среди больших групп принято выделять также такие социальные группы как интеллигенция служащие представители умственного и физического труда население города и деревни. Иногда в литературе встречается и довольно широкое толкование интеллигенции включающее всех работников умственного труда в том числе служащих секретарей контролеров банка и т. Роль интеллигенции в обществе определяется выполнением ею следующих функций: научнотехническое и экономическое обеспечение материального производства; профессиональное управление производством...
81148. Инертная, оптимальная и агрессивная среда. Управление в условиях агрессивной среды 38.71 KB
  Источниками конфликта может служить конкуренция соперничество враждебность противоречивые намерений и т. В результате конфликта происходит столкновение двух или более противоборствующих сторон и выражается в том что они осознаются на уровне социального субъекта: отдельной личности или социальной группы. В сущности конфликта важное место занимают такие понятия как участник и субъект конфликта. Участником конфликта может быть отдельный человек организация или группа лиц которые не отдают себе отчет о целях и задачах конфликтного...
81149. Способы управления организацией в условиях агрессивной среды 35.04 KB
  Способами управления в агрессивной социальной среде могут быть: социальное прогнозирование; социальное планирование; социальное регулирование. Деловые организации пытаясь отстоять свое место в социальном пространстве вынуждены применять такие способы управления как: нарушение закона с целью адаптации к негативным реалиям организационной среды; использование взятки как способ обеспечения коммуникаций и т. Главное правило управления в агрессивной среде заключается в том чтобы по возможности ее избегать.
81150. Социология управления как отрасль социологического знания 34.51 KB
  В Российской социологической энциклопедии социология управления определяется как отрасль социологического знания изучающая систему и процессы управления в условиях складывающихся в обществе социальных отношений. Удальцовой наука изучающая социальные отношения и устанавливающая основные критерии эффективности их функционирования с точки зрения всех субъектов социальных отношений называется социологией и психологией управления в организации. Как научная дисциплина социология управления пересекается с такими разделами социологической науки...
81151. Объект, предмет, функции и задачи социологии управления 37.25 KB
  Выступает изучение деятельности субъектов управления по разработки решений направленных на реализацию основных направлений социальной политики. изучает закономерности функционирования социальных отношений в процессе управления проблемы социального взаимодействия внутри организации между руководителем и подчиненными. управленческие отношения: в процессе управления обе стороны находятся в постоянных связях друг с другом и вступают в управленческие отношения Определив особенности социологии управления как специальной социологической теории...
81152. Социология управления и смежные дисциплины 46.67 KB
  Важно понять взаимодействие менеджмента с другими науками используемыми для осуществления процессов управления такими как менеджмент информатика социология психология см. Таким образом на стыке менеджмента и социологии возникает новая отрасль человеческих знаний – социология управления которая была вызвана естественным развитием общества и философии управленческих концепций. Интеграция науки управления школа научного менеджмента и социологии школа человеческих отношений происходит в середине XXв.