Страница 1 из 1
Генерация программного кода по xml файлу
Добавлено: 22 мар 2011, 06:33
liosha
Всем добрый день.
Пишу дипломный проект - программу, позволяющую из блоков, подобных UML блокам составлять простые алгоритмы (линейные, условные и циклические) и выполнять их.
Одной из обязательных условий является генерация кода на языке C из готовой блок-схему.
Вот с генерацией у меня проблемы. Линейные алгоритмы без проблем, а вот условные никак не могу сделать.
Блок-схема представляет из себя xml файл.
То-есть нужен алгоритм генерации кода на в принципе любом языке программирования из xml файла.
Дипломка на языке Java, но мне главное алгоритм, а перевести его в другой язык в принципе не проблема.
Может кто-то сталкивался с подобной задачей, буду благодарен за любую помощь.
Прикрепляю пример блок-схемы в виде xml файла (в принципе его я могу изменить) и ту же блок-схему в виде изображения.
blockschema.jpg
blockschema.xml
Re: Генерация программного кода по xml файлу
Добавлено: 22 мар 2011, 11:22
BulldozerBSG
Тут бы прочесть литературу по компиляторам, многие вопросы бы отпали
Re: Генерация программного кода по xml файлу
Добавлено: 22 мар 2011, 12:25
liosha
Я с удовольствием почитаю и про компиляторы и про интерпретаторы, уже даже книгу в магазине присмотрел, но мне в субботу здавать программу и диплом, программа не дописана, диплом не написан вообще.
Вот сижу, пишу, каждый день не вставая из-за компа. 60 страниц это не так уж и быстро.
По этому и прошу подсказать готовый алгоритм, или где конкретно о нем написано.
Re: Генерация программного кода по xml файлу
Добавлено: 23 мар 2011, 17:00
mc-black
Про компиляторы ничего не знаю. Чтобы программу на Си представить себе максимально просто и схематично - скачайте где-нибудь книгу Дейтел Х., Дейтел П. Как программировать на Cи и быстренько ее пролистать. Там показано, как все алгоритмы строятся на основе несколько видов блоков (7, если не ошибаюсь) и всего 2-х видов их соединения: вложения структур друг в друга и последовательного следования структур друг за другом. Это конценция структурированного кода. В общем-то xml как раз позволяет строить такие структуры, так что одно перевести в другое должно быть относительно просто. Что-то вреде рекурсивной функции по разбору xml, внутри которой реализовано 2 типа соелинений структур и для каждого виде 7 видов структур.
Re: Генерация программного кода по xml файлу
Добавлено: 24 мар 2011, 06:05
liosha
Книгу пролистал, примерно такие блоки у меня и используются. Тоже 7 штук, но без блоков цикла, у меня их можно реализовать с помощью условий, и нет блока свич, так как не нужен особо. Но у меня не получается придумать алгоритм, который сможет сгенерировать код как для простой блок-схемы (
http://liosha.hut2.ru/prosto.png ) так и для более сложного (
http://liosha.hut2.ru/slozhno.png ).
ps. Со сложным примером я конечно перестарался, но вложенность может быть любая.
Re: Генерация программного кода по xml файлу
Добавлено: 24 мар 2011, 15:48
mc-black
Если ты меня правильно понимаешь, работа с циклами с точки зрения структурных алгоритмов - это то, что этот "кирпичик" можно или поставить после чего-нибудь, или вставить во что-нибудь. Придется тебе цикл не подменять условиями, а держать его как отдельный самостоятельный и самодостаточный блок. Понимаю, для этого прогу надо переделывать, это время которого у тебя нет. Но иначе фиг сделаешь, наверное, без глубокого изучения теории построения компиляторов.
Что ж ты так мало на все времени оставил?

Идея, изложенная в этой книжке максимально проста как раз для твоей задачи и хорошо вписывается в описание при помощи xml. Будь у меня такая тема диплома, я делал бы это на VBA в MS Visio.