ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
160074
Evgeny_CD, Архитектор (27.06.2009 00:36, просмотров: 1816)
Генерация кода из графа: интересно, так кто-нибудь делает? Рисуем граф. В удобном редакторе. Состоящий из узлов и переходов. Узел имеет: * входные порты - сюда попадают переходы из других узлов. В общем случае может использоваться для контроля - а правильно ли программа сюда попала? * выходные порты - при наступлении некоторых событий программа переходит из этого узла куда-то еще * глобальные переменные, которые он читает * глобальные переменные, которые он модифицирует Ребро графа соединяет выходной и входной порты какого-то узла. Внутри узла содержится С код, который, кроме описанного выше, делает еще какие-то действия. Действия, кроме глобальных переменных, локальны. Есть иерархия. Совокупность узлов является субграфом и узлом в графе верхнего уровня. Субграф имеет входные и выходные порты, локальные переменные, и доступ к глобальным переменным графа верхнего уровня. Есть контроль реального времени. Есть механизм, который контролирует реальное время и детектирует ситуации, когда кто-то не успел. После того, как осмыслили весь граф, жмем батон, и С код геренерится автоматически и изоморфно (1:1 отображение) по этому графу. Глядя на граф, пришем test suite с воздействиями для проверки. Прогоняем сгененированный исходник на реальной платофрме и смотрим правильность отработки тестовых воздействий и допустмость времени. Субграф - это два уровня вложенности (в общем случае). Есть main_subgraph (), в которой есть switch на состояния глобальных переменных. Каждый узел - функция. Switch сработал - фунукция вызвалась. Она изменила переменные субграфа. Break, снова switch - и понеслась. Быть может, функция вызва еще какие функуции, но это не суть. Как сделать удобный редактор графов, я, похоже, придумал. Что-то похожее уже есть?