Поиск:

Ответ в темуСоздание новой темы Создание опроса
> парсер 
:(
    Опции темы
ne0n
Дата 17.12.2008, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: нет
Всего: 11



Вообщем скоро предстоит писать проект, поэтому решил по раньше задуматься над решением smile 
есть следующая постановка задачи:
Код

Тема:    Парсер 
Общее описание:    
Разработать библиотеку классов для программирования парсеров и запрограммировать несколько парсеров для решения частных задач анализа текстов. 
Рекомендации:    
Парсер – синтаксический анализатор текстов выполняет анализ на основе синтаксических правил. Эти правила могут быть «зашиты» в парсер и тогда парсер может делать только то, что он может делать. Или эти правила могут записываться в одной из формальных грамматик, и тогда парсер может настаиваться на решение различных задач.
В обоих случаях парсеры выполняют целый ряд однотипных действий, которые являются хорошей основой для создания библиотеки классов для программирования парсеров.
Задача создания настраиваемого парсера в проекте не ставится, хотя она и может рассматриваться как одна из прикладных задач.
В качестве частных задач анализа текстов можно рекомендовать:
1.    Интерпретатор формул 
2.    Форматирование исходного C-текста по установленным правилам
3.    Построение графа вызова функций
4.    Построение диаграммы классов
5.    ……… 
Каждую задачу можно давать в пошагово усложняющейся постановке



собственно больше всего интересует вопрос свзяанный с летературой=) можно конечно писать опираясь на интуицию, но не хочетсья наступать на какието известные грабли, тем самым теряя время) ну вообще интересуют совнты людей которые этим занимались.
PM MAIL ICQ   Вверх
SoWa
Дата 17.12.2008, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Прежде чем изобретать велосипед smile
Одни из вещей, которыми я бы предложил пользоватся(естественно в общих словах)-
Графы - Польская запись
Компиляторы и интерпретаторы
Автоматы

В частности.
Поиск подстрок
Кмобинаторика, графы, автоматы(англ)
Мега-сайт!!! Просмотри весь- поймешь



--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Void
Дата 17.12.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 3
Всего: 173



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


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
ne0n
Дата 17.12.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: нет
Всего: 11



SoWa,  спасибо за информацию)

Цитата(Void @  17.12.2008,  11:51 Найти цитируемый пост)
нтереснее, какую библиотеку классов от нас требуют


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

PM MAIL ICQ   Вверх
Earnest
Дата 17.12.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 7
Всего: 183



Цитата(Void @  17.12.2008,  12:51 Найти цитируемый пост)
 Предметная область не очень дружит с ООП

Почему же? Если реализовать метод рекурсивного спуска, то все в классах замечательно строится. Опять же, если интерпретируемый язык удовлетворяет некоторым условиям, то вполне реально написать общий настраиваемый парсер. Я когда-то сделала такой парсер, который настраивался путем определения допустимого алфавита и выражений. Сейчас мне эта реализация не очень нравится (дело несколько лет назад было, так что это понятно), но оно до сих пор работает. Кодом поделиться не могу, но общую концепцию - опишу, если надо... (Оно все на С++)


--------------------
...
PM   Вверх
ne0n
Дата 19.12.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: нет
Всего: 11



Цитата(Earnest @  17.12.2008,  19:06 Найти цитируемый пост)
, но общую концепцию - опишу, если надо... (Оно все на С++)


буду премного благодарен)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1129 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.