Реализация конечного автомата |
Здравствуйте, гость ( Вход | Регистрация )
Реализация конечного автомата |
Andrew Selivanov |
1.9.2008, 11:35
Сообщение
#1
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
Как реализовать конечный автомат с использованием метапрограммирования: http://www.rsdn.ru/article/alg/Static_Fini...ate_Machine.xml by Alexander Nikolayenko © 2005
Автор предлагает генерировать таблицу переходов с использованием шаблонов. Видимо следующий шаг после этого > Boost.Spirit Признаться я в основном тупо использую switch/case конструкции (по разным причинам), хотелось бы услышать мнение других... |
|
|
sage |
12.11.2008, 16:36
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 12.11.2008 Из: Украина, Киев Пользователь №: 418 Спасибо сказали: 0 раз(а) Репутация: 0 |
Конечные автоматы можно строить графически с помощью языка ДРАКОН
В конечном итоге схема выражается в виде switch/case конструкции Есть транслятор ДРАКОН-схем в программный код (Проект ДРОН) на языке Active Oberon, но язык вобщем-то может быть любой. |
|
|
sage |
12.11.2008, 18:07
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 12.11.2008 Из: Украина, Киев Пользователь №: 418 Спасибо сказали: 0 раз(а) Репутация: 0 |
А я предложение дописал
но язык вобщем-то может быть любой. ДРАКОН задаёт лишь управляющие конструкции, а наполнение блоков может быть осуществлено на любом языке Таким образом, если нам необходима трансляция в С++, убираем из С++ все управляющие конструкции if, switch/case, while, и т.д. Их заменит графика! Если ещё и унифицировать синтаксис для наполнения блоков можно прийти к универсальному графическому представлению алгоритмов. Похожая идея была у авторов сайта alglib, но там использованны морально устаревшие блок-схемы. И что-бы не сложилось впечатление будто-бы это уход от темы ветки... Конечный автомат в полной мере реализуется схемой типа "силует" в ДРАКОНе |
|
|
AD |
13.11.2008, 9:30
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Конечный автомат в полной мере реализуется схемой типа "силует" в ДРАКОНе Можно вопрос? А каким образом пользователь, особенно такой "дубовый", как я, поймет, что слово "силует"("силуэт" возможно ?????) подразумевает конечный автомат? Сообщение отредактировал AD - 13.11.2008, 9:30 |
|
|
sage |
13.11.2008, 10:57
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 12.11.2008 Из: Украина, Киев Пользователь №: 418 Спасибо сказали: 0 раз(а) Репутация: 0 |
Можно вопрос? А каким образом пользователь, особенно такой "дубовый", как я, Да, точно "силуэт", Вы правы поймет, что слово "силует"("силуэт" возможно ?????) подразумевает конечный автомат? Насчёт "автоматности" "силуэта" шли жаркие дебаты. Но, на мой взгляд, тежело не увидеть очевидного... поскольку многие убедились на практике (в том числе и я), что "автоматные" задачи с помощью "силуэта" выражаются и успешно решаются. Что ещё нужно? |
|
|
AD |
13.11.2008, 11:08
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Да, точно "силуэт", Вы правы Насчёт "автоматности" "силуэта" шли жаркие дебаты. Но, на мой взгляд, тежело не увидеть очевидного... поскольку многие убедились на практике (в том числе и я), что "автоматные" задачи с помощью "силуэта" выражаются и успешно решаются. Что ещё нужно? Вопрос не в том! просто где-то из программы, в которой есть этот элемент, не читая тонны документации, можно узнать что с помощью СИЛУЭТА можно описать конечный автомат? Как это сделать прочитав КРАТКУЮ справку, предположим где-то в инете, можно "чайнику" создать этот автомат? Или же перед этим требуется хорошо разобраться в программе? |
|
|
Текстовая версия | Сейчас: 23.11.2024, 10:47 |