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

什么是编译器设计中的有限自动机?

Ginni
更新于 2021年10月26日 07:34:11

4K+ 次浏览

自动机是具有离散输入和输出的数字计算机的抽象模型。每个自动机都包含一个读取输入的机制。可以认为输入是在给定字母表上的字符串,写在自动机可以读取的输入文件中。输入文件被分成较小的部分,称为单元格。它是一个用于检查语言是否接受字符串的语言机器或识别器。在有限自动机中,“有限”表示有限数量的状态,“自动机”表示无需任何人工干预即可工作的自动机…… 阅读更多

编译器设计中正则表达式的规则是什么?

Ginni
更新于 2021年10月26日 07:30:48

4K+ 次浏览

有限自动机接受的语言可以通过称为正则表达式的简单表达式简单地定义。它是描述任何语言的有效方法。正则表达式也可以表示为表示字符串的一系列模式。正则表达式用于连接字符串中的字符序列。字符串搜索算法使用此模式来发现字符串上的操作。正则表达式有各种规则,如下所示:ε是一个正则表达式。两个正则表达式R1和R2的并集,即R1 + R2或R1|R2也是正则表达式。两个…… 阅读更多

什么是编译器设计中的词法分析设计?

Ginni
更新于 2021年10月23日 12:17:36

12K+ 次浏览

词法分析可以使用状态转换图来设计。有限自动机(状态转换图)——用于识别标记的有向图或流程图。状态转换图有两个部分:状态——用圆圈表示。边——状态由边箭头连接。示例——绘制“if”关键字的状态转换图。为了识别标记(“if”),词法分析必须读取“f”之后的下一个字符。根据下一个字符,它将判断是“if”关键字还是其他内容。因此,“if”之后的空格确定“if”是一个关键字。“*”在最终状态3表示回退,即控制将再次回到之前的…… 阅读更多

什么是编译器设计中的输入缓冲?

Ginni
更新于 2023年11月1日 02:06:21

46K+ 次浏览

词法分析每次都必须访问辅助存储器来识别标记。这是耗时且昂贵的。因此,输入字符串存储在缓冲区中,然后由词法分析器扫描。词法分析器一次扫描输入字符串的一个字符,从左到右识别标记。它使用两个指针来扫描标记:开始指针 (bptr)——指向要读取的字符串的开头。向前看指针 (lptr)——向前移动以搜索标记的结尾。示例——对于语句 int a, b;两个指针都从字符串的开头开始,…… 阅读更多

编译器构造工具的作用是什么?

Ginni
更新于 2021年10月23日 11:36:31

8K+ 次浏览

编译器是一个计算机程序,它将用一种计算机语言(源语言)编写的源代码转换为另一种计算机语言(目标语言,提供称为目标代码的二进制形式)。转换源代码不足的主要原因是创建可执行代码。编译器通常用于将源代码从高级编程语言转换为低级语言(例如,汇编语言或机器代码)的程序。将低级语言转换为高级语言的程序是反编译器。将高级语言之间进行转换的程序通常被称为…… 阅读更多

什么是编译器自举?

Ginni
更新于 2021年10月23日 11:33:58

9K+ 次浏览

这是一种制作自编译编译器的方法,该编译器是用它要编译的源编程语言编写的。自举编译器可以编译编译器,因此您可以使用此编译的编译器来编译所有其他内容及其未来的版本。自举的用途自举有各种用途,如下所示:它可以允许从现有编程语言和编译器开始开发新的编程语言和编译器。它允许将新功能与编程语言及其编译器相结合。它还允许向编译器添加新的优化。它允许语言和…… 阅读更多

宏处理器和预处理器有什么区别?

Ginni
更新于 2021年10月23日 11:32:15

2K+ 次浏览

宏处理器许多汇编语言都支持“宏”功能,通过该功能,宏语句将在转换为机器程序之前转换为一系列汇编语言语句和可能的其他宏语句。因此,宏功能是一种文本替换功能。它可以说明宏的实用程序,考虑这样一种情况:机器没有单个机器或汇编语言语句将一个内存地址的内容添加到另一个内存地址,作为假设的汇编指令 ADD X,Y。相反,假设机器有一条指令 LOAD,它将数据从内存移动到寄存器,一条指令…… 阅读更多

什么是编译器设计中的错误处理?

Ginni
更新于 2021年10月23日 11:30:29

5K+ 次浏览

检测和报告源程序中的错误是编译器的主要功能。错误可能发生在编译的任何阶段。一个好的编译器必须准确地确定程序的错误发生的行号。可能在不同编译级别发生的不同错误如下:首先是词法(扫描器)错误——这里最常见的一些类型包括非法或无法识别的字符,主要由打字错误引起。程序员键入一个不在…… 阅读更多

编译器设计中命令式语言和函数式语言有什么区别?

Ginni
更新于 2021年10月23日 11:28:36

3K+ 次浏览

命令式语言命令式语言是指通过状态变化来促进计算的语言。状态是指计算机的随机存取存储器 (RAM) 或存储的条件。将计算机内存视为一系列快照会有所帮助,每个快照都在特定时间捕获所有内存单元中的值。每个快照记录一个状态。当程序输入时,相关数据处于某种状态,例如脱机的未排序列表。程序员的工作是指定对存储的一系列更改,这将产生所需的最终状态,例如…… 阅读更多

编译器设计中过程式语言和非过程式语言有什么区别?

Ginni
更新于 2021年10月23日 11:26:54

8K+ 次浏览

过程式语言过程式语言是命令驱动或语句导向的语言。程序包含一系列语句,每个语句的执行都会使解释器修改其内存中一个或多个区域的值,从而进入一个新的状态。过程式语言的格式是语句1;语句2;C、Pascal、FORTRAN 和等效语言是过程式语言。语言中的每个语句都指示计算机执行某些操作。过程式语言中的程序是指令列表。对于非常小的程序,不需要其他排列原则。这种语言包括一系列在调用时执行的过程。每个过程都包括…… 阅读更多

广告