![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
文章平均质量分 89
Adenialzz
Keep Learning.
展开
-
编译型语言与解释型语言
编译型语言与解释型语言首先要说明,编译型语言与解释型语言这种分类方法是不科学的,或者说已经过时了,但是这种称呼大抵还是能够让人明白我们将要讨论的是什么东西。文中所列参考是笔者认为比较有帮助的一些扩展阅读内容。首先贴一个很形象的比喻,来自知乎@孛尔只斤南丁:假设厂里来了两个新工人,一个叫编译,另一个叫解释。厂长(程序员)给他们安排了一项任务(需求),并发放了操作说明(源代码)。编译这名工人的做法是先完整的看一遍操作说明,遇到错别字或者不明白的地方,就去问厂长,直到操作说明最终成为一个没有错别字原创 2021-12-08 12:28:28 · 1423 阅读 · 1 评论 -
python解释器
python解释器计算机编程语言本部分参考自:https://zhuanlan.zhihu.com/p/141212114从计算机编程语言说起,它主要分为三类:机器语言、汇编语言、高级语言。机器语言是一种计算机可以直接识别并执行的二进制指令集。由于其可以直接交给CPU执行,所以是最快的,但是它需要我们记住每一个指令的代码与对应的动作,想想我们写代码的时候是操作一串串的01序列,难度得有多大。为了克服机器语言的缺点,人们就用一些助记符来代替机器码,也就是使用一些与实际意义相近的缩略词来代替动作,例如转载 2021-12-08 11:16:47 · 281 阅读 · 0 评论 -
JIT(动态编译)和AOT(静态编译)编译技术比较
JIT(动态编译)和AOT(静态编译)编译技术比较转自:https://www.cnblogs.com/tinytiny/p/3200448.htmlJava 应用程序的性能经常成为开发社区中的讨论热点。因为该语言的设计初衷是使用解释的方式支持应用程序的可移植性目标,早期 Java 运行时所提供的性能级别远低于 C 和 C++ 之类的编译语言。尽管这些语言可以提供更高的性能,但是生成的代码只能在有限的几种系统上执行。在过去的十年中,Java 运行时供应商开发了一些复杂的动态编译器,通常称作即时(Just转载 2021-12-07 19:29:37 · 3207 阅读 · 0 评论 -
Java一次编译,到处运行是如何实现的
Java一次编译,到处运行是如何实现的转自:https://cloud.tencent.com/developer/article/1415194 (排版微调)JAVA编译运行总览Java是一种高级语言,要让计算机执行你撰写的Java程序,也得通过编译程序的编译。但是Java编译程序并不直接将Java源代码编译为相依于计算机平台的0、1序列,而是将其编译为字节码。Java源代码的扩展名为.java,经过编译程序编译之后生成扩展名为.class的字节码。如果想要执行字节码文件,目标平台必须要安装JVM转载 2021-12-07 15:35:59 · 1675 阅读 · 0 评论 -
llvm与gcc
llvm与gccllvm 是一个编译器,也是一个编译器架构,是一系列编译工具,也是一个编译器工具链,开源 C++11 实现。gcc 相对于 clang 的优势:gcc 支持更过语言前端,如 Java, Ada, FORTRAN, Go等gcc 支持更多地 CPU 目标架构gcc 支持更多语言扩展,比如 gcc 可以完美地支持 Linux Kernel 的编译,而 clang 会遇到一些扩展的问题clang 相对于 gcc 的优势:clang 的 AST 和整个设计是人类可以阅原创 2021-12-06 21:15:14 · 8619 阅读 · 0 评论 -
深入浅出LLVM
深入浅出LLVM转自:https://www.jianshu.com/p/1367dad95445什么是LLVM?LLVM项目是模块化、可重用的编译器以及工具链技术的集合。美国计算机协会 (ACM) 将其2012 年软件系统奖项颁给了LLVM,之前曾经获得此奖项的软件和技术包括:Java、Apache、 Mosaic、the World Wide Web、Smalltalk、UNIX、Eclipse等等。创始人:Chris Lattner亦是Swift之父。趣闻:Chris Latter本转载 2021-10-30 18:28:10 · 338 阅读 · 0 评论 -
三地址码简介
三地址码简介三地址码(Three Address Code)是一种最常用的中间语言,编译器可以通过它来改进代码转换效率。每个三地址码指令,都可以被分解为一个四元组(4-tuple)的形式:(运算符,操作数1,操作数2,结果)。由于每个陈述都包含了三个变量,即每条指令最多有三个操作数,所以它被称为三地址码。编译器编译器(compiler),是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。它主要的目的是将便于人编写、阅读、维护的高级计算机语言所写作的源代原创 2021-12-04 16:55:11 · 17093 阅读 · 1 评论