找到 138 篇文章 关于编译器设计

什么是编译器设计中的乔姆斯基层次结构?

Ginni
更新于 2021年10月22日 12:01:34

2K+ 次浏览

乔姆斯基层次结构是各种形式语法的集合。利用这种形式语法,可以生成一些形式语言。它们可以通过多种类型的设备来定义,这些设备可以识别这些语言,例如有限状态自动机、下推自动机、线性有界自动机和图灵机等。乔姆斯基提出了以下四种不同的短语结构语法类别:0型语法(无限制语法) - 0型语法的构建对替换规则没有限制。左侧字符串中必须出现非终结符。生成的语言称为递归可枚举语言。因此,0型语法是……阅读更多

什么是编译器设计中的绑定和绑定时间?

Ginni
更新于 2021年10月22日 11:59:38

10K+ 次浏览

程序元素与特定特征或属性的绑定是从一组可能的属性中选择属性。在程序组织或处理过程中做出此选择的时间被定义为该元素该属性的绑定时间。编程语言中有多种绑定,以及多种绑定时间。它还可以涉及绑定和绑定时间的术语中,这些术语是根据语言的定义或其执行而恒定的程序元素的属性。绑定时间类型有两种类型……阅读更多

语言设计对编程环境有何影响?

Ginni
更新于 2021年10月22日 11:58:36

1K+ 次浏览

编程环境通常在两个主要方面影响语言设计,例如促进程序从组件的单独编译和组装的特性,以及辅助程序测试和调试的特性。单独编译 - 在任何大型程序的结构中,通常希望有多个程序员或编程组设计、编写和测试程序的元素,然后再将所有元素最终组装成一个完整的程序。这需要语言具有结构,以便可以单独编译和实现单个子程序或其他元素,而无需其他元素,然后可以组合……阅读更多

什么是类型转换?

Ginni
更新于 2021年10月22日 11:57:30

17K+ 次浏览

类型转换是一种操作,它采用一种类型的数据对象并创建多种类型的等效数据对象。类型转换操作的签名如下所示:转换_op:type1→type2 有两种类型的类型转换,如下所示:隐式类型转换(强制转换) - 启用混合模式表达式的编程语言应该描述隐式操作数类型转换的约定。强制转换定义为类型之间的自动转换。例如,在 Pascal 中,如果加法运算的操作数是整数类型和其他实数类型……阅读更多

什么是静态类型检查?

Ginni
更新于 2021年10月22日 11:56:22

5K+ 次浏览

类型检查是提供操作数是兼容类型的活动。兼容类型是操作数对操作符来说是合法的,或者根据语言规则可以由编译器生成的代码隐式修改为合法类型。这种自动转换称为强制转换。类型错误是对不正确类型操作数的操作符的应用。它可以说明类型检查的概念,考虑以下语句:c:=a + 3 * b;此处 b 应为允许乘以整数的类型。同样,……阅读更多

编译器设计中定义和声明的区别是什么?

Ginni
更新于 2021年10月22日 11:54:47

380 次浏览

定义它识别与变量、函数、类等的名称相关的代码或数据。编译器基本上需要定义来指定为已声明的实体分配存储区域。当定义变量时,它具有包含该变量的多个字节的内存量。函数定义生成函数的代码。它只能在一个程序中定义一个程序元素一次,因为定义是程序元素的唯一要求。声明和定义之间的关系可以是一对多。声明它可以确定程序的名称,包括……阅读更多

什么是编译器遍?

Ginni
更新于 2021年10月22日 11:53:14

3K+ 次浏览

在生成汇编/机器代码之前,可以多次处理整个源程序。遍 - 对源程序的一次完整扫描或处理。各个阶段可以安排成一个遍。词法、语法和语义分析通常组合在一个遍中。每个遍都读取源程序并将输出写入中间文件,然后后续遍可以读取该文件,即一个遍的输出将成为下一个遍的输入。单遍编译器 - 在单遍编译器中,当处理一行源代码时,它会被扫描并提取标记。然后……阅读更多

证明语句 A = B * C + 20 的整个编译过程,其中 A、B、C 为实数类型

Ginni
更新于 2021年10月22日 11:52:10

9K+ 次浏览

解决方案 符号表 序号 变量名 变量类型 200 A 浮点型 204 B 浮点型 208 C 浮点型 现在,我们将看到如何在每个级别执行编译阶段以及它是如何工作的。词法分析这是作为编译器和源语言代码之间集成工作的第一步。它一次读取源代码一个字符,并将源代码设计成一系列称为标记的原子单元。在此阶段,我们将看到如何标记表达式。A → 标识符:(id, 1) = → 运算符:赋值 B → 标识符:(id, 2) * → 运算符:乘法 C → 标识符:……阅读更多

编译器设计中有哪些类型的翻译器?

Ginni
更新于 2021年10月22日 11:49:08

24K+ 次浏览

翻译器是一种编程语言处理器,它将计算机程序从一种语言修改为另一种语言。它采用用源程序编写的程序,并将其修改为机器程序。它可以在翻译过程中查找和检测错误。翻译器有各种类型,如下所示:编译器 - 编译器是一个程序,它将高级语言(例如 C、C++ 和 Java)转换为低级语言(目标程序或机器程序)。编译器使用各个阶段将高级语言转换为低级语言。客户输入的字符流经过……阅读更多

什么是声明?

Ginni
更新于 2021年10月22日 11:47:55

5K+ 次浏览

程序中的声明是指向编程语言翻译器提供数据对象名称和数据类型信息的语句。例如,考虑以下 C 语言声明:int a, b; 此声明向编程语言翻译器提供信息,表明 a 和 b 是子程序执行期间所需的整型数据对象。声明还定义了在数据对象生命周期内数据对象与名称 a 和 b 的绑定。声明的目的声明的各种目的是:类型检查 - 声明允许……阅读更多

广告