我想了解更多有关编写C代码生成器的工具的知识。实质上,我们如何实现类似于C++模板的功能。用于生成C代码的工具/ IDE /语言存在
回答
尽管这不是一个完美的解决方案,并且需要一些时间来掌握它,但我过去曾使用过m4 macro processor来生成通用C代码(有点像C++模板)。你可能想检查一下。
我很确定m4宏不是“像C++模板”。尝试使用两者来编写'type_traits'或'Boost :: Spirit',或者就此而言,执行*任何*不重要的模板元编程。 – delnan
那么,既然GNU m4是图灵完备的,理论上你可以做一些等同于'type_traits'或'Boost:Spirit'的东西。我认为这不会实际可行。不过,在我看来,m4对于简单的通用容器等简单的东西来说效果很好。 – cyco130
当然,它可能适用于复制某些容器或算法的源代码,并将其替换为“instanciate”(某些预处理器hackery应该同样适用)。但这只是C++模板的一小部分。请不要将它们降低到那个水平(并且请不要去愚蠢的turing tarpit路线 - 由于无限的时间和不屈的代码猴,人们只关心你是否能够在合理的时间内以合理的资源进行操作)。 – delnan
您正在寻找一种方法来为非常相似的类生成代码,其中不同的地方实际上是它们的类型。
您可以使用基于模板的代码生成器,其中“模板”表示带有字符串替换的“样板代码”。这是最简单的情况。像StringTemplate或CodeSmith这样的工具将完成这项工作。但还有很多其他的。只需四处搜寻。
如果您想要一个更严重的生成场景,根据一组定义可能需要不同的类结构,那么您应该使用完全可编程的生成器,如AtomWeaver。还有其他(MPS,Xtext),但这些不依赖于模板。
谢谢瑞。我会试一试。不知道它将如何生成C代码? – Sandeep
AtomWeaver是一个IDE,与MS Visual Studio非常相似,但代码生成。要生成代码,请创建一个Atom模板,然后在模板的Exec部分中,使用code()命令将您的代码括起来。在您的模板上创建参数,并用这些参数替换代码的可变部分。无论如何,你应该运行一些简单的例子的教程... –
- 1. C++代码/ XML生成工具
- 2. 什么IDE和工具可用于C语言开发?
- 3. 用于PHP的代码生成工具/框架
- 4. C程序的代码自动生成和自动调整工具或语言?
- 5. C#中的UML代码生成工具
- 6. 任何用于从AST生成JavaScript代码的工具
- 7. Sharepoint代码生成工具
- 8. 用于C++代码生成
- 9. 用于OCaml语言的IDE
- 10. 生成语言无关的代码
- 11. 生成Java代码的工具过多?
- 12. 用于GNU/Linux的代码生成工具UML
- 13. 任何工具都可以根据语言语法随机生成源代码?
- 14. 代码从Selenium IDE生成的代码
- 15. C#代码清理/审计工具(独立于IDE之外)
- 16. 用于生成asp.net代码的开源工具
- 17. 需要用于实体DAO的代码生成工具
- 18. 生成强密码短语的工具?
- 19. 多语言IDE
- 20. 用于确定c/C++代码中内存泄漏的工具
- 21. 用于从Android代码生成可视化图表的工具
- 22. 用于跟踪发生错误的常见C语言成语
- 23. 用于生成C#代码的XML语法
- 24. crm 4.0的代码生成工具
- 25. Eclipse JavaScript开发工具与动态语言工具包JavaScript IDE
- 26. 任何人都使用MATLAB工具来生成C/C++代码?生成的代码是否可行?
- 27. 生成使用C语言编写的
- 28. 生成GUI用于C++代码
- 29. 什么自动代码生成工具可用于Castle ActiveRecord类?
- 30. C++代码分析工具
我认为你必须更具体地说明你想达到的目标。 –
我同意。关于这个话题的信息太少了,我不太确定我在问什么。我会再试一次。我有一个适用于C中给定数据类型的代码,可以说是整数。我想将其推广到其他数据类型。我不认为简单地做typedef和搜索替换是可行的。是否有工具和更加明确的代码生成方法。在其他我想要的模板功能,但不介意做两步编译。我的目标语言是C. – Sandeep
好吧,显而易见的答案是使用C语言中称为“C++”的扩展。 –