Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
blackbanny
129 / 116 / 2
Регистрация: 14.11.2010
Сообщений: 707
#1

Семантический анализтор - C++

26.12.2010, 17:08. Просмотров 1206. Ответов 7
Метки нет (Все метки)

Привет всем!
вообщем есть задание: Си-грамматика арифметических выражений со скобками, операций *,&, (), [], <точка>, -> Семантика: восстановление типа данных идентификатора по виду выражения.
нужно написать семантический анализатор...

кто нибудь пытался сделать что нибудь подобное и где можно почитать про то, как реализовать семантический анализатор?
сам хочу начать с изучения вот отсюда...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2010, 17:08     Семантический анализтор
Посмотрите здесь:

Лексический и семантический анализ - C++ Builder
Мне надо сделать лексический и семантический анализ программу в C++ Builder ПОМОГИТЕ ПОЖАЛУЙСТА

Синтаксический и семантический анализ во Flex и Bison - C++
Здравствуйте) помогите пожалуйста написать анализ на C++ чтобы потом перевести его во Flex и Bison. Я без понятия что там надо делать....

Семантический вопрос... как называется язык-то? - C++
По моему правильно и разумно оформлять большие куски кода в классы в стиле с++, всё заинкапсулировать, следить за наследованием... Но...

С чего начать семантический анализ текста? - C++
Начинаю разбираться в семантическом анализе теста(естественный язык) с помощью программирования (в идеале нужно написать программу...

Семантический анализатор - C#
Пишу диплом, который связан с семантическим анализом. Уже много литературы изучил, но, по-существу, ничего подходящего не нашел. Какие есть...

Семантический анализ - Python
Подскажите пожалуйста как сделать семантический анализ строк на русском языке и определить степень одинаковости двух строк. Есть библиотека...

Синтаксический и семантический анализ выражения - Prolog
Помогите исправить ошибки в программе. На TurboProloge запускается, а на Visual нет. Добавлено через 30 секунд DOMAINS ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
EVP
321 / 243 / 43
Регистрация: 14.12.2010
Сообщений: 462
26.12.2010, 23:50     Семантический анализтор #2
После лексического и синтаксического анализаторов получаем на выходе абстрактное синтаксическое дерево (AST). Но в нём могут содержаться неправильные семантические выражения. В задачи семантического анализатора входит проверка и восстановление необходимой информации для последующих стадий обработки. Проверка имен идентификаторов и функций в соответствующих областях видимости, соответствия типов - всё это задачи семантического анализатора. Обычно, это третья фаза обработки исходного кода программы.

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

В задании сказано, грамматика арифметических выражений, но введены массивы (операция[]), структуры (операции '.' и '->'), что побочно ставит задачу учёта и имён идентификаторов переменных и их типов в семантическом анализаторе Ещё бы функции ввести, и тогда бы добавились области видимости переменных и перегрузки А так, одна область видимости и конкретное дерево выражения.

Может пригодится intuit.ru.
blackbanny
129 / 116 / 2
Регистрация: 14.11.2010
Сообщений: 707
27.12.2010, 15:07  [ТС]     Семантический анализтор #3
т.е. если написано a->x[i], то семантический анализатор должен понять, что у нас есть а-структура и у нее есть поле x[i] и вернуть значение по данному полю?
на словах более менее понятно... мне бы хотя бы одну операцию, как пример на C++ реализовать, чтобы я разбирался дальше...
Kami-sama
Заблокирован
27.12.2010, 17:57     Семантический анализтор #4
>Интерпретатор на С++

HA-HA-HA OH WOW
blackbanny
129 / 116 / 2
Регистрация: 14.11.2010
Сообщений: 707
27.12.2010, 18:24  [ТС]     Семантический анализтор #5
Цитата Сообщение от Kami-sama Посмотреть сообщение
>Интерпретатор на С++

HA-HA-HA OH WOW
причем здесь интепретатор?
Kami-sama
Заблокирован
27.12.2010, 18:33     Семантический анализтор #6
На полноценный компилятор замахнулся? Да на крестах...
blackbanny
129 / 116 / 2
Регистрация: 14.11.2010
Сообщений: 707
27.12.2010, 18:54  [ТС]     Семантический анализтор #7
нужен только семантический анализатор!
как здесь описано!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2010, 20:56     Семантический анализтор
Еще ссылки по теме:

Ассоциативно-семантический поиск на харде с сугестией. - Софт
Ищу программу для поиска текстовой информации у себя на жёстком диске. Таких программ до фига, скажете Вы. Например Архивариус 3000,...

Синтаксический и семантический анализ арифметического выражения - Lisp
Здравствуйте. Имею задание: Написать программу, которая будет выполнять синтаксический и семантический анализ арифметических...

Семантический поиск - нужна свежая информация - SEO
Мне для курсовой нужно немного инфы о семантическом поиске, но нужна именно свежая инфа... Если кто поможет буду очень благодарен!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
EVP
321 / 243 / 43
Регистрация: 14.12.2010
Сообщений: 462
27.12.2010, 20:56     Семантический анализтор #8
Цитата Сообщение от blackbanny Посмотреть сообщение
нужен только семантический анализатор!..
Синтаксический анализатор строит AST. Его надо как-то построить, чтобы семантическому передать для анализа. Задание неплохое, поднимает тучу проблем

Добавлено через 3 минуты
Цитата Сообщение от blackbanny Посмотреть сообщение
т.е. если написано a->x[i], то семантический анализатор должен понять, что у нас есть а-структура и у нее есть поле x[i] и вернуть значение по данному полю?
...
Да. Только вернуть не значение, а проверить ожидаемое значение с фактическим по типу. Проверка типов или их вывод из выражения. Дальше оптимизатор и кодогенератор сделают остальное.
Yandex
Объявления
27.12.2010, 20:56     Семантический анализтор
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru