Создание кода на основе C/С++
Любое предложение для генератора базовых кодов шаблонов для C/С++ специально для генерации повторяющейся генерации кода? (Не UML/MATLAB на основе модели или других продвинутых материалов). Для новичков в этом поле любой хороший общий учебник (не на основе инструмента)?
Я наткнулся на GNU Autogen выглядит неплохо, но похоже, что ему нужна крутая кривая обучения. Я бы предпочел какой-то плагин для eclipse, такой как IDE, простой в использовании и, самое главное, хороший учебник.
Ответы
Ответ 1
Основная концепция генерации кода достаточно проста - и потребности людей достаточно разнообразны, - там есть немало вариантов.
- Boost.Preprocessor - это библиотека функций, построенных поверх стандартного препроцессора C/С++, что значительно упрощает использование препроцессора для генерировать код. Это не так гибко, как другие варианты, и выяснение ошибок препроцессора может быть сложным, но тот факт, что он использует только стандартные языковые функции, значительно упрощает его использование и интегрирует его в ваши сборки.
- Если вы знаете Python, Cog.
- В некоторых проектах Google используется Pump.
- Существует множество решений для шаблонов общего назначения (Python Genshi, eRuby и т.д.). Они часто предназначены для генерации HTML и XML, а также для работы с кодом.
- Также достаточно легко взломать что-то вместе на языке сценариев по вашему выбору.
Не зная больше о ваших потребностях и о том, какие инструменты вам удобны, я не могу дать более конкретные рекомендации.
Я не знаком ни с чем, что обеспечивает плагин Eclipse.
Ответ 2
Если вы знаете Python, то Cog можно считать легким решением: http://www.python.org/about/success/cog/
Ответ 3
Посмотрите мой ответ на аналогичный вопрос для классов Java, используя M2T-JET, основанный на затмении, легкий генератор шаблонов. JET является агностиком языка, и вы можете видеть из примера, что он довольно прост в использовании.
Ответ 4
Я ценю использование Lua для этой задачи, с чем-то вроде Templet или еще одним мириадом препроцессоров на основе Lua. Преимущество использования Lua над чем-то вроде Python заключается в том, что при необходимости вы можете включить исходный код в ваш процессор шаблонов и базовую установку Lua вместе с тем, что вы отправляете. Затем вы можете добавить компиляцию Lua и последующих файлов шаблонов в процесс сборки, как обычно.
Я бы посоветовал не использовать решения на основе Python по одной причине: жонглирование различными питонами, чтобы удовлетворить любое использование разработчиком совершенно другой, но несовместимой версии, раздражает. Если вы решите использовать язык, который нельзя внедрить в свои деревья, вы должны убедиться, что доступны предварительно вычисленные версии.
Ответ 5
Поздно к вечеринке, но я бы порекомендовал Codeworker Его единственный инструмент, который я нашел, который делает все, что выше инструменты делают и многое другое. У этого есть Python Cog, как функциональность для встроенного поколения, у него есть основанная на шаблонах генерация, такая как Templet или Pump. И он имеет довольно полезную особенность защищенных областей, поэтому вы можете настроить свой код по мере необходимости и повторно генерировать.
Я использовал его для генерации всего кода котла С++, а также для конфигурации таких проектов, как SQL, config, javascript и т.д.