c语言编译器可以编译c 吗,java可以写C语言编译器吗(java能写C语言编译器吗)...

这篇博客探讨了如何使用Java来编写C语言的编译器。编译器本质上是一个翻译工具,将源代码转化为特定平台的字节码或机器码。尽管通常C编译器直接生成汇编代码,但理论上Java编译器也能生成相同的目标文件格式。博客指出,任何语言都可以用于开发编译器,关键在于开发效率和最终生成代码的质量。内容涉及编译器的工作原理,包括源码到目标文件的转换过程,并讨论了Java在实现这一过程中的角色。
摘要由CSDN通过智能技术生成

用java是可以写bai语言编译器的,用任何du语言工具写都可以。 各语言开发zhi工具间只有开发效率的差dao异,没有可行不可行的区别。

编译器其实就是一个翻译工具,它可以把代码直接翻译成二进制文件交给CPU执行(二进制指令就是CPU的指令集,当然可以直接操作内存),当然,这个二进制文件需要符合操作系统的可执行文件的格式(PE格式或ELF格式)才能执行。

1、编译器就是把c语言程序翻译为一种叫做目标文件的中间表示形式,然后交给汇编器,翻译为汇编程序,而汇编执行直接对应二进制机器码,链接之后就可以变成可执行文件了。

而用java实现的编译器完全可以代替gcc工具集合中的编译器,生成相同的目标文件的中间表示形式,在交给gcc汇编器,连接器等处理。

2、编译器就是一种把文本(源码)按语言语义的规则翻译成字节码的一套程序。

C通常不像Java跨平台,确定目标平台是什么,比如是x86、ARMS、MIPS、JVM,操作系统环境是什么,然后编写输出生成所在环境下能运行的字节码。

用任何语言工具写都可以。 各语言开发工具间只有开发效率的差异,没有可行不可行的区别。

3、如果真的存在这么一个用Java写的编译器,那么这个编译器需要能够理解C语言语法,并根据这些语法生成对应的字节数组(即汇编指令,这些汇编指令和C编译器生成的汇编指令相同)。如果这个字节数组还满足可执行文件的格式(在Windows中为PE格式,在Linux中为ELF格式),那么这堆字节数组组成的文件就可以在对应的操作系统下执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值