php代码转换c 代码,如何将C ++代码转换为C

编译器通常由前端和后端组成,前端将源代码转化为中间表示,而后端将中间表示转换为目标语言,如汇编。尽管C++到C的编译器不常见,但从技术上来说是可行的。C++源代码可以通过编译器前端转化为中间表示,然后后端生成C代码。虽然GNU目前没有提供这种编译器,但理论上可以实现,因为C语言的简单性使得此过程相对直接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译器由两个主要模块组成:“前端”和“后端”。编译器的前端分析源代码并构建所述源代码的某种形式的“中间表示”,与源代码相比,机器算法比源代码更易于分析(即,源代码(例如C ++)旨在为了帮助人类程序员编写代码,中介表单旨在帮助简化分析所述中介表单的算法)。编译器的后端采用中介形式,然后将其转换为“目标语言”。

现在,通用编译器的目标语言是各种处理器的汇编语言,但是没有什么可以禁止编译器后端以其他某种语言生成代码的,只要该目标语言(至少)具有与通用CPU汇编器。

现在,您可以想象到,C绝对像CPU的汇编程序一样灵活,因此从技术角度来看,从C ++到C编译器的实现确实没有问题。

因此,您拥有:C ++ --- frontEnd ---> someIntermediaryForm --- backEnd ---> C

您可能要检查这些家伙出来:http://www.edg.com/index.php?location=c_frontend (上面的链接只是为信息什么可以做了,他们许可的数万美元的前端)

PS据我所知,GNU还没有这样的C ++到C编译器,这完全打败了我(如果我对此表示正确)。由于C语言很小,而且其内部机制还很初级,因此C编译器需要进行类似人工工作的工作(我可以直接告诉您,因为我可能在多年前就写了这样的编译器,并且生成了[ [虚拟]堆栈机中间代码),并且能够拥有一个维护良好的最新C ++编译器,而只需要编写一次C编译器,那将是一件很棒的事...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值