реклама на сайте
подробности

 
 
> Парсер команд, Декодер потока команд
sergeeff
сообщение Aug 12 2006, 11:40
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Коллеги!

Наверное многие сталкивались с задачей декодирования команд, которые поступают через внешний интерфейс в ваш контроллер. Одним из возможных вариантов реализации такого парсера - в виде автомата состояний (FSM). Ясно, что можно сесть, на бумажке нарисовать структуру такого автомата и реализовать в виде некоторого набора языковых конструкций типа switch/case. Но, когда дело доходит до практической реализации получается громоздкая и трудночитаемая программа, в которой непросто в дальнейшем что-то добавить и, скорее всего, не слишком оптимальная.

Вопрос. Не сталкивался ли кто с программами, автоматизирующими процесс декодирования такого потока команд? Ну что-нибудь типа bison'а, lex'a применительно к встроенным приложениям?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yornik
сообщение Aug 12 2006, 12:01
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 21-10-04
Пользователь №: 952



А в чем Вам видится отличие синтаксического парсера для встроенных приложений от "просто" парсера? %) Ну или иначе - что мешает использовать yacc/bizon?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Aug 12 2006, 16:13
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(yornik @ Aug 12 2006, 16:01) *
А в чем Вам видится отличие синтаксического парсера для встроенных приложений от "просто" парсера? %) Ну или иначе - что мешает использовать yacc/bizon?


Ну, например, пришел пакет с данными (через USB или TCP/IP) или просто идет посимвольный прием через паралелльный/последовательный порт. Соответственно принимается за раз только часть команды или даже один символ команды. А yacc/bizon ориентированы на чтение некоторых законченных лингвистических конструкций из входного потока (файла). В этом мне видится коренное отличие. Да и насчет быстродействия в этих системах - это тоже вопрос.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 22:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016