语言有时被描述为“接近硬件”。用低级语言编写的程序往往是相对不可移植的。 低级语言一般指机器代码或汇编语言。但是低阶与高阶其实只是相对的概念,比如Java对比C语言可以被认为是一种相对高阶的程式语言。 低级语言可以在没有编译器或解释器的情况下转换为机器码——第二代编程语言使用称为汇编器的简单处理器。
在计算机科学中,自举是一种自生成编译器的技术——也就是,某个编程语言的编译器(或汇编器)是该语言编写的。最初的核心编译器(自举编译器)是由其他编程语言生成的(可以是使用汇编语言),之后的编译器版本则是使用该语言的最小子集编写而成。自生成编译器的编译问题被称为编译器设计的先有鸡还是先有蛋问题,而自举则是这个问题的解决方法。。
zai ji suan ji ke xue zhong , zi ju shi yi zhong zi sheng cheng bian yi qi de ji shu — — ye jiu shi , mou ge bian cheng yu yan de bian yi qi ( huo hui bian qi ) shi gai yu yan bian xie de 。 zui chu de he xin bian yi qi ( zi ju bian yi qi ) shi you qi ta bian cheng yu yan sheng cheng de ( ke yi shi shi yong hui bian yu yan ) , zhi hou de bian yi qi ban ben ze shi shi yong gai yu yan de zui xiao zi ji bian xie er cheng 。 zi sheng cheng bian yi qi de bian yi wen ti bei cheng wei bian yi qi she ji de xian you ji hai shi xian you dan wen ti , er zi ju ze shi zhe ge wen ti de jie jue fang fa 。 。
编译自己源程序的编译器变得越来越可行,不过还是用Pascal和C语言来实现编译器更加流行。制作某种语言的第一个能编译器,要么需要用其它语言来编写,要么就像Hart和Levin制作Lisp编译器那样,用解释器来运行编译器。 编译器的构造与优化是计算机专业的大学课程,课程名称一般为「编译。
器等自动内存管理机制的语言(如Java),经常需要用到逃逸分析优化以降低创建对象的性能开销,而C语言等系统语言则因为内存由程序员手动管理,导致了这项优化针对C语言的有效性大幅降低。 许多针对抽象编程概念(循环、对象、结构)的优化实际上与编译器的目标机器无关,这类算法能够被同一个编译器。
Java编译器是Java编程语言的编译器。Java编译器最常见的生成文件是包含Java字节码的Java类文件。Java虚拟机加载Java类文件,并解释或即时编译Java字节码为机器代码。 class secondmax { public static void main (String args[])。
C语言只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。 编译预处理(preprocessor)让C语言的编译更具有弹性。 20世纪70年代,肯·汤姆森为了使其设计的Unix系统更加高效,使用B语言的变种(即C语言)在DEC PDP-7计算机上重写了Unix。C语言。
●△●
Borland将第一版Delphi的编程语言命名为Object Pascal,但是后来将其重命名为Delphi编程语言。然而,宣称兼容Object Pascal的编译器通常试图兼容Delphi源代码。 CodeGear,Borland的前子公司,现在是Embarcadero Technologies的一部分,将编译Object。
ˇωˇ
2.1+下发行的自由及开放源代码软件。 它包括一个运行时系统,一个字节码编译器和解释器,它允许应用被部署在预期没有C编译器的地方,和一个编译到中间语言的编译器,它为了更高的运行时间效率而编译Common Lisp到C。后者还具有的特征为本机外界函数接口(英语:foreign function。
源代码到源代码编译器(英语:source-to-source compiler)、翻译器(transcompiler)或转译器(transpiler)是以某种编程语言的程序源代码作为输入,生成以另一种编程语言构成的等效源代码的编译器。源代码到源代码编译器会在大致相同的抽象级别之间抽象化,而传统编译器。
Bright),著名程序员,创立了D语言。他作为主要的开发人员开发了Zortech C++,世界上第一款直接编译C++源代码到机器码的编译器,而不需要先翻译成C代码。Zortech C++更名为Symantec C++,现在的名称为Digital Mars C++。 开发C++编译器之前,他开发了Datalight C 编译器。
编译的。 如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就被称为编译。因此,一个编译器是一个将人可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件(object code)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。。
Compiler),因为它原本只能处理C语言。同年12月,新的GCC编译器可以编译C++语言。后来又为Fortran、Pascal、Objective-C、Java、Ada,Go等其他语言开发了前端。C和C++编译器也支持OpenMP和OpenACC规范。 GCC编译器已经被移植到比其他编译器。
语言同时包含C的功能,包含C--及C中间语言(C Intermediate Language)。 微软的通用中间语言,在动態或是静態编译为机器语言之前,可用作.NET框架底下所有编译器共享的中间语言。 GCC使用不同的中间语言来达到简化行动性及跨平台,包含: 较有歷史的暂存器传递语言(RTL,Register。
+△+
,因为它们没有完整的现代操作系统环境,无法直接编译。 交叉编译器和源代码至源代码编译器不同,交叉编译器用于二进制代码的跨平台软件开发,而源到源编译器是将某种编程语言的程序源代码作为输入,生成以另一种编程语言构成的等效源代码的编译器,但两者都是编程工具。 交叉编译器的基本用法就是将构建环境与目标环境分开。常在下面几种情况中使用:。
Mercury是纯声明式逻辑编程语言。它有关于Prolog和Haskell二者。它的特征是有强、静态、多态类型系统,和强的模态(mode)和确定性系统。 官方实现是墨尔本Mercury编译器,可以在多数Unix和类Unix平台上获得到,包括Linux、macOS和Windows。 下面是"Hello World" :- module hello。
Pestov创建的面向堆栈编程语言。Factor是动态类型的并拥有自动内存管理,还有强力的元编程特征。语言有一个单一的实现,特征包括自宿主的优化编译器和一个集成开发环境。Factor发行包括一个大型的标准库。 Slava Pestov在2003年创建Factor作为视频游戏的脚本语言。
o(╯□╰)o
exe)是一个提高托管应用程序性能的工具。Ngen.exe创建本机映像(包含经编译的特定于处理器的机器代码的文件),并将它们安装到本地计算机上的本机映像缓存中。运行库可从缓存中使用本机映像,而不是使用实时编译器编译原始程序集。 PyPy,可將Python编译成CIL的一套编译器 Phalanger(PHP into CIL compiler)。
语言或编译器移植到一个新环境时编译器通常能重编译其本身。用C编写的GNU Pascal编译器是一个显著的例外。 1972年,Welsh和Quinn在贝尔法斯特女王大学,第一次将CDC Pascal编译器成功地移植到另外一个主机。目标主机是ICL1900系列。这个编译器反过来说是ICS。
Free Pascal (简称 FPC,原名为 FPK Pascal),是一个支持16位,32位和64位处理器的专业 Pascal 语言编译器,支持多种处理器架构,包括:Intel x86(也支持8086)、AMD64/x86-64、PowerPC及其64位架构、SPARC、ARM、AArch64、MIPS。
ˇ^ˇ
编译器递归测试,是一种由计算机科学家高德纳提出,用来评价ALGOL 60编程语言实现的手段。该测试的目的是识别出能够正确实现“递归和非本地引用”的编译器。 There are quite a few ALGOL60 translators in existence which have been designed。
发表评论