什么是编译器?(a compiler?)

编译器是一种特殊类型的计算机程序,它将人类可读的文本文件翻译成计算机更容易理解的形式。在最基本的层面上,计算机只能理解两件事,1和0。在这个层次上,人类会非常缓慢地操作,发现包含在长串1和0中的信息是不可理解的。编译器是一种弥补这一差距的计算机程序。...

编译器是一种特殊类型的计算机程序,它将人类可读的文本文件翻译成计算机更容易理解的形式。在最基本的层面上,计算机只能理解两件事,1和0。在这个层次上,人类会非常缓慢地操作,发现包含在长串1和0中的信息是不可理解的。编译器是一种弥补这一差距的计算机程序。

A compiler is a special type of computer program that translates a human readable text file into a form that the computer can more easily understand.

起初,编译器是非常简单的程序,只能将符号转换为计算机所理解的位,即1和0。程序也很简单,由一系列步骤组成,这些步骤最初是手工翻译成计算机可以理解的数据。这是一项非常耗时的任务,因此该任务的某些部分是自动化或编程的,并且编写了第一个编译器。该程序汇编或编译了执行分步程序所需的步骤。

这些简单的编译器被用来编写更复杂的编译器。在新版本中,可以向编译器程序添加更多的规则,以允许人类程序员使用更自然的语言结构进行操作。这使得编写程序变得更容易,并允许更多的人开始编写程序。随着越来越多的人开始编写程序,人们提出了更多关于编写程序的想法,并将其用于制作更复杂的编译器。通过这种方式,编译器程序不断发展、改进并变得更易于使用。

编译器程序也可以专门化。某些语言结构比其他语言结构更适合特定任务,因此针对特定任务或语言开发了特定编译器。有些编译器是多级或多通道的。第一关可以使用非常自然的语言,使其更接近计算机可理解的语言。第二次甚至第三次传递可能会将其带到最后一个阶段,即可执行文件。

多级编译器中的中间输出通常称为伪代码,因为计算机无法使用它。伪代码是非常结构化的,就像一个计算机程序,不像一种更自然的语言那样自由流动和冗长。最终输出称为可执行文件,因为它是计算机实际执行或运行的文件。像这样将任务拆分可以更容易地编写更复杂的编译器,因为每个子任务都是不同的。这也使得计算机更容易指出它在理解被要求做什么时遇到的困难。

限制编译器理解程序的错误称为语法错误。程序功能中的错误称为逻辑错误。逻辑错误更难发现和纠正。语法错误就像拼写错误,而逻辑错误更像语法错误。

还开发了交叉编译程序。交叉编译器允许为特定制造商设计的一台计算机编写的一组指令的文本文件由不同的制造商为不同的计算机编译和运行。例如,为在英特尔计算机上运行而编写的程序有时可以交叉编译以在摩托罗拉开发的计算机上运行。这通常不太管用。在计算机程序运行的层次上,计算机硬件可能看起来非常不同,即使它们看起来与您相似。

交叉编译不同于让一台计算机模拟另一台计算机。如果一台计算机正在模拟另一台计算机,它就是在假装是另一台计算机。仿真通常比交叉编译慢,因为两个程序同时运行,一个是假装是另一台计算机的程序,另一个是正在运行的程序。但是,为了使交叉编译能够工作,您需要描述程序的原始自然语言文本和与原始计算机非常相似的计算机,以便程序能够在不同的计算机上运行。这并不总是可能的,所以这两种技术都在使用中。

  • 发表于 2021-12-10 15:50
  • 阅读 ( 133 )
  • 分类:互联网

你可能感兴趣的文章

编译时间(compile time)和运行时(runtime)的区别

...语法和语义错误而出现的。这些错误避免了编译的成功。编译器指示编译时错误。它将显示错误发生在哪一行的消息。一些常见的编译时错误包括缺少大括号、标识符拼写错误和关键字拼写错误。当编译错误发生时,程序员应该...

  • 发布于 2020-10-19 10:25
  • 阅读 ( 778 )

编译(compiled)和解释语言(interpreted language)的区别

...代码必须转换成机器可读的指令。简而言之,实现通常是编译器而不是解释器的语言称为编译语言。   什么是解释性语言(an interpreted language)? 解释器是用其他语言编写并编译成机器可读语言的程序。解释器本身就是机器语言...

  • 发布于 2021-06-26 05:11
  • 阅读 ( 771 )

编译器解释器(compiler interpreter)和汇编程序(assembler)的区别

...级或汇编程序应转换成机器语言,以便计算机理解指令。编译器、解释器和汇编程序是将高级或汇编语言程序转换为机器语言的翻译器。 覆盖的关键领域 1.什么是编译器-定义,功能2.什么是解释器-定义,功能3.什么是汇编器-定...

  • 发布于 2021-06-30 18:09
  • 阅读 ( 1406 )

石斑鱼类(ide)和编译程序(compiler)的区别

IDE和编译器之间的主要区别在于IDE是一个软件套件,由开发和测试软件应用程序所需的工具组成,而编译器是一个将用高级编程语言编写的源代码翻译成低级机器代码的程序。 IDE提供了一个创建、构建和测试软件应用程序的环...

  • 发布于 2021-07-01 03:13
  • 阅读 ( 396 )

链接器加载程序(linker loader)和编译程序(compiler)的区别

链接器加载程序和编译器之间的主要区别在于,链接器将编译器生成的一个或多个对象文件合并到一个可执行文件中。同时,加载程序将程序放入内存并准备执行,同时编译器将源代码转换为目标代码。 计算机程序是在计算机...

  • 发布于 2021-07-01 04:45
  • 阅读 ( 676 )

口译译员(interpreter)和jit编译器(jit compiler)的区别

解释器和JIT编译器的主要区别在于解释器是一种逐行将源代码转换成本机代码的软件,而JIT编译器是JVM中的一个组件,它通过在运行时将字节码编译成本机代码来提高Java程序的性能。 解释器是一种程序,它将程序员编写的指令...

  • 发布于 2021-07-01 05:51
  • 阅读 ( 528 )

单程(single pass)和多程编译器(multipass compiler)的区别

单过程编译器和多过程编译器的主要区别在于,单过程编译器是一种只将源代码通过每个编译单元一次的编译器,而多过程编译器将编译分离为多个过程,其中每个过程都将继续上一个过程的结果。 计算机程序是计算机执行某...

  • 发布于 2021-07-01 06:07
  • 阅读 ( 535 )

阶段(phases)和编译过程(passes of compiler)的区别

编译器的阶段和过程之间的主要区别在于,阶段是编译过程中的步骤,而过程是编译器遍历源代码的次数。 程序员用高级语言编写计算机程序。这些语言遵循与英语相似的语法。程序员更容易理解这种语言,但计算机不理解它...

  • 发布于 2021-07-01 08:20
  • 阅读 ( 215 )

解释(interpreted)和编译语言(compiled language)的区别

...言和编译语言的区别-关键区别的比较 关键术语 字节码,编译器,编译语言,解释器,解释语言,机器代码 什么是解释语言(interpreted language)? 解释语言是一种基于解释器的语言。其中,解释器是能够将高级程序转换为机器可...

  • 发布于 2021-07-01 22:35
  • 阅读 ( 623 )

编译程序(compiler)和调试器(debugger)的区别

编译器和调试器的主要区别在于,编译器将源代码转换为等价的机器代码来执行程序中定义的任务,而调试器则帮助识别程序错误并修复它们。 一般来说,计算机程序是一组指令,指示CPU执行某项任务。编译器和调试器是两种...

  • 发布于 2021-07-02 00:51
  • 阅读 ( 235 )
圣凌123r
圣凌123r

0 篇文章

相关推荐