ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
158920
Evgeny_CD, Архитектор (13.06.2009 13:06, просмотров: 82844)
Автоматное программирование - ну почему все так тоскливо в реале? FSM - Finite State Machine Автоматное программирование http://ru.wikipedi …0%B0%D0%BD%D0%B8%D0%B5 Настраиваемые автоматные программы - аффтар предложих неплохой способ ручного кодирования по таблице переходов http://www.softcra …o/etc/itst/index.shtml UniMod http://unimod.sourceforge.net/intro.html UniMod states for Unified Modeling. Long term project goal is to create unified methodology for application development process that will close the gap between Design and Development phases. Currently, UniMod project is focused on designing and implementing applications behavior. Already implemented approach adapts SWITCH-technology for UML notation. SWITCH-technology is also known as Automata-based Programming and has it's own Russian site http://is.ifmo.ru/english/. UniMod-проекты http://is.ifmo.ru/unimod-projects/ Моделирование устройства для продажи газированной воды на инструментальном средстве UniMod http://is.ifmo.ru/ …vending-machine-ru.pdf - довольно интересная статья, хорошо описаны связанные автоматы и преимущества, которые это дает. AutoFSM - Automated Finite State Machine. GNU тулза http://www.gnu.org …e/autogen/autofsm.html Finite State Machine Editor - все хорошо, но только под Linux и жизнь в проекте замерла в 2006 году. http://fsme.sourceforge.net Quantum Leaps, LLC http://www.state-machine.com - неплохой фремворк Что меня бесит - так это, что нет единой комплексной свободной тулзы. Как я ее себе представляю: * единая база для хранения всего связанного с проектом - кода, описаний и пр. * конфигуратор машины - число состояний, переменных, типы и пр. В идеале, читобы можно было и без конфигурирования - типа набросал графически состояний, переходов, подумал, часть прибил, часть переделал и .д. А оно потом само все переименовало * графическая тулза для задания сущностей машины * таблица переходов - чтобы можно было как задавать, так и смотреть их * симулятор как графический, так и с работой по таблице переходов. Чтобы можно было проверить полноту переходов и убедиться, что машину не клинит при испытаниях методом полного перебора всех переменных и состояний. * удобная система человеческих наименований и комменатариев для всего * задание юзеровского кода, не имеющего отношения к самой машине состояния, выполняемого в узлах * синтез кода (в общем случае - на любом языке программирования, интересует С в первую очередь) Что есть по факту: * системы ручного кодирования разной степени извращенности, где юзеру предлагается в голове, на листочке или в UML тулзе закодировать FSM, а затем, осмыслив все это, перенести в код. Со всеми возможными ошибками ручного кодирования. Мазохизм чистой воды * монструозные системы, ориентированные на Java. * фирменные системы типа IAR visualSTATE http://iar.com/website1/1.0.1.0/371/1/ - хорошо, но привязано к конкретной среде При всем при том, что использование автоматного подхода при наличии средств визуализации и автоматического контроля позволит сильно сократить количество ошибок для типовых embedded задач, и по идее, сильно должно снизить трудоемкость разрабтки, и, главное, тестирования. Интересно, почему такого готового нет? Или народ не понимает в массе все прелести FSM? Прямо хоть бери XML описание из UniMod и интезируй C исходник какой-нибудь тулзой на Python.