|
1
5
在评论中,您说您建议的语言(我称之为ext-c,用于扩展c)是一种DSL,旨在面向狭窄的受众(您自己、您的学生),然后您需要:
看一看 Cfront 作为一个可能的想法来源。 看看ibm informix esql/c(作为ibm informix clientsdk或csdk的一部分从ibm免费提供);有一个控制编译的脚本“esql”和一个预处理器“esql c”,它实际解析esql/c源并生成相应的c代码。程序员运行“esql”脚本来编译esql/c程序;他们不手动运行“esql c”程序,除非他们有异常反常和受虐倾向。
请注意,任何DSL中比较棘手的部分之一就是与调试器的集成。您可以安排预处理器生成'
IBMInformix4GL编程语言是一种完整的语言,由它的主编译器完全解析,然后(稍微简化)生成C代码。有一个剧本
|
|
|
2
2
我猜你可以在你的新语言和gcc之间写一个shell脚本或者一个预处理器来把你添加的小部分转换成普通的C语法。把它想象成一个层,就像GCC的预处理器一样。 您可以用任何语言(甚至是C本身)来编写解析器——任何可以接收、更改文本文件并将其写出的内容,无论是到另一个文件,还是到stdout,以便gcc读取和编译。 希望这有帮助 詹姆斯 |
|
|
3
1
关于您的数据类型示例:不能将任意数据类型转换为C.Boolean,因为它比现有类型简单,并且可以很容易地用任何整数类型(通常是
但是如果你只想把简单的东西翻译成C,听起来仅仅使用C预处理器就容易多了。 |
|
|
4
0
如果您希望它得到广泛的支持,您需要说服ISO将它包含在他们的下一个标准中。据我所知,在这一点上修改c并没有太大的动力。所有有趣的事情都发生在C++中,比如C++ 0x。 |
|
|
Sudhanva c · 如何提高编码技能?[已关闭] 8 年前 |
|
|
hoffm · 为什么Ruby找不到调用方类中定义的常量? 9 年前 |
|
|
Thamme Gowda · “lambda”关键字的较短替代项? 9 年前 |
|
|
AlphaModder · 有没有带有“不寻常”访问修饰符的编程语言? 11 年前 |
|
|
lucasasecas · 有可能静态地使用动态语言吗? 12 年前 |
|
|
Eugenio Laghi · 仅由括号、加号和感叹号组成的语言 12 年前 |
|
dallin · 数组中的逗号运算符是否有名称? 12 年前 |