当前位置:首页 > 编程问答 >

java可以写C语言编译器吗

时间:已被461人关注

码农之家
java能写C语言编译器吗

3小时2分钟前回答

用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格式),那么这堆字节数组组成的文件就可以在对应的操作系统下执行。

已被623人点赞
参考资料
Java EE框架整合开发入门到实战
Java EE框架整合开发入门到实战 完整版

初学者新手入门,重视实战演练教学视频,全线视频语音解读教育资源丰富 这书详细解读了JavaEE中Spring、SpringMVC和MyBatis三大框架(SSM)的基本知识和实际应用。为了方便帮助用户学习SSM框架,

立即下载
零基础学Java
零基础学Java 全书第4版

零基础学Java(第4版) 一共分为四篇,共25章,循序渐进地讲述了Java语言的语法规则,Eclipse和MyEclipse开发环境的使用,从基本概念到具体实践、从入门知识到高阶主题、从语法语义到数据结构

立即下载
分布式中间件技术实战(Java版)
分布式中间件技术实战(Java版) 清晰版

《 分布式中间件技术(Java版) 》从初学者的角度介绍了几种流行的分布式中间件,引导读者从零开始一步步学习Java企业应用开发。在讲解了必要的理论知识和应用场景后,书中给出了实际的项目案例,可以提高读者的开发水平和项目实战能力。 分布式中间件技术(Java版)共10章,共分3篇。第一部分《开发工具的准备》,介绍了分布式系统架构的相关知识点,包括其功能、作用和演进,进而引出分布式中间件的相关介绍。第二部分介绍了实际开发中广泛使用

立即下载
Java语言程序设计:基础篇
Java语言程序设计:基础篇 超清第10版

Java语言程序设计是Java语言的经典教材,本书全面整合了Java 8的特性,采用“基础优先,问题驱动”的教学方式,循序渐进地介绍了程序设计基础、解决问题的方法、面向对象程序设计、图形用

立即下载
2020Java面试题整理
2020Java面试题整理 高质量版

《2020Java面试题整理》 面试题含有redis,netty,mysql,kafka,并发编程,spring,dubbo,以及思维导图学习笔记,适合20k以上突击。 本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,详细的介绍了redis,netty,mysql,kafka,并发编程,spring等Java知识点,以及各大企业面试笔试中的特性与侧重点,面试的高频题目,反复出现在近5年各大公司的笔试和面试中,对面试备考有着极强的参考价值,相信你了解和掌握之后一定会有所提高。让我们一起来看看

立即下载
JavaScript教程 超清原版

JavaScript 是前端开发者使用的主要编程语言,随着前端技术的发展,这门语言的边界也得以不断扩展。我们在这里选择了与 JavaScript 相关的经典文章,可以让大家对如何学习这门语言有一些全面的认识。特别的,我们还着重于 JavaScript 这门语言与其它编程语言的不同之处,方便大家深入理解。

立即下载
神经网络编程实战:Java语言实现
神经网络编程实战:Java语言实现 第2版 立即下载

Copyright 2018-2021 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com