- 这些都不懂哦哦懂了机会也不多
- 要一个能在 jvm 上运行的编译器(compiler)首先是要把代码成字节码,然后再由解释器,也就是 jvm 来解释。那考虑他的输入和输出,输入的肯定是我们的源代码,而输出的应该是字节码(byte code),也就是.class 文件。
- 要实现一个Java编译器,你需要深入了解多个领域的知识。尽管C++是编译器的常用实现语言,但写一个完整的Java编译器是一个庞大且复杂的任务,涉及编译器设计、Java语言规范、虚拟机(JVM)规范、优化算法等多个方面。以下是你应该了解的一些关键知识领域: 编译器设计原理: 词法分析(Lexical Analysis):将源代码分解为一系列的标记(tokens)。 语法分析(Syntax Analysis):将标记组合成抽象语法树(AST)。 语义分析(Semantic Analysis):检查源代码的语义正确性。 中间代码生成:将AST转换为一种中间表示形式。 代码优化:对中间代码进行优化,提高生成代码的性能。 目标代码生成:将优化后的中间代码转换为目标机器代码或字节码。 Java语言规范: Java语法和语义:深入了解Java语言的各个方面,包括关键字、语法结构、类型系统、异常处理等。 Java类库:理解Java标准库中的关键类和接口,以便正确处理Java代码中的库调用。 Java虚拟机(JVM)规范: 字节码格式:了解JVM字节码的结构和语义,以便将Java源代码为字节码。 类文件格式:理解JVM类文件的格式和结构,以便在过程中生成正确的类文件。 运行时环境:了解JVM的运行时环境,包括内存管理、垃圾回收、线程模型等。 C++程: 熟练掌握C++语言,包括面向对象程、模板元程、标准库等。 了解C++的性能优化技术,以便写高效的编译器代码。 算法和数据结构: 熟练掌握常用的算法和数据结构,如哈希表、树、图等,以便在编译器实现中高效处理各种任务。 工具和技术: 使用现有的编译器工具链和库,如词法分析器生成器(如Flex)、语法分析器生成器(如Bison)等,可以简化编译器的开发工作。 了解并使用现代软件开发工具和技术,如版本控制系统、构建系统、调试器等。 测试与调试: 写测试用例来验证编译器的正确性,包括单元测试、集成测试和性能测试。 使用调试工具和技术来跟踪和修复编译器中的错误。 请注意,实现一个完整的Java编译器是一个长期且复杂的项目,需要投入大量的时间和精力。如果你是初学者,建议从简单的编译器项目开始,逐步积累经验和知识。此外,还可以参考现有的开源Java编译器(如Eclipse JDT、IntelliJ IDEA的编译器等)来了解其设计和实现细节。
- 最强编译器最强编译器TA 的宝藏指数:10
vscode
已有242人推荐
评分 9.7 - 这本书详细讲解了Java的内存结构,垃圾回收器的种类及工作流程,第六章的类加载机制,对于我们理解Java代码如何转化为机器码中的工作流程以及工作中的规范有一定的认知,对于前端和后端的优化,生动形象的讲述了前端编译器这本书详细讲解了Java的内存结构,垃圾回收器的种类及工作流程,第六章的类加载机制,对于我们理解Java代码如何转化为机器码中的工作流程以及工作中的规范有一定的认知,对于前端和后端的优化,生动形象的讲述了前端编译器,即时编译器和提前编译器。TA 的宝藏指数:10
深入理解Java虚拟机(第3版)
作者:周志明
评分 9.6 - 我看的是叫《嵌入式c语言的自我修养–从芯片到编译器到系统》的书,这本书详细介绍了芯片结构,如何程序怎么控制芯片,编译器的原理等。我看的是叫《嵌入式c语言的自我修养–从芯片到编译器到系统》的书,这本书详细介绍了芯片结构,如何程序怎么控制芯片,编译器的原理等。TA 的宝藏指数:6
嵌入式Linux C语言开发
作者:曾宏安编
评分 6.0 - 励志的句子】人生如行船,无论何时何地,都要张满信心的风帆;人生如战场,无论是安是危,都要鼓舞奋发的斗志。不怕路远,就怕志短;不怕人穷,就怕没胆。
- 周志明的深入理解 Java 虚拟机,计算机专业的编译原理。
- 做好前端,前端输出是 java bytecode 接上 jvm 的后端。
- 这可是编译器啊,为啥都在推荐IDE……这可是编译器啊,为啥都在推荐IDE……TA 的宝藏指数:10
GCC
已有6人推荐
评分 10