找到 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

378 次查看

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

什么是编译器遍?

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

3K+ 次查看

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

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

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

9K+ 次查看

解决方案符号表序号变量名称变量类型200A浮点数204B浮点数208C浮点数现在,我们将了解如何在每个级别执行编译器阶段以及它是如何工作的。词法分析这是第一步,它充当编译器和源语言代码之间的集成。它一次读取一个字符的源代码,并将源代码设计成一系列称为标记的原子单元。在此阶段,我们将了解如何对表达式进行标记化。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 的绑定。声明的目的声明的各种目的是:类型检查 - 声明允许… 阅读更多

广告