编译原理详解:翻译程序分类与自编译技术

需积分: 0 0 下载量 140 浏览量 更新于2024-08-05 收藏 1.44MB PDF 举报
本资源主要讨论了翻译程序的分类和编译原理的基本概念,以及系统程序设计语言的相关理论。首先,翻译程序包括三种类型:汇编程序将汇编语言源程序转换成机器语言目标程序,解释程序边解释边执行,保存中间结果;而编译程序则针对高级语言源程序,生成目标语言(通常是机器语言或汇编语言)的程序。编译程序的核心组成部分包括词法分析、语法分析、语义分析等,其工作过程通常涉及多遍扫描,以适应不同情况下的效率和目标代码优化。 章节一详细介绍了编译程序的遍历策略,根据计算机存储容量、语言复杂性等因素,选择单遍扫描或多遍扫描。此外,还提到了系统程序设计语言,即能编写编译器的高级编程语言,如自编译,即用同一种语言编写其编译器,以及跨平台编译,即在一台机器上编译器可生成另一台机器的目标代码。 自展技术是一种逐步增强编译器能力的方法,通过不断扩展语言功能并验证,最终形成功能强大的编译器。移植方面,可以通过通用汇编语言或利用交叉编译技术在不同硬件平台上进行。 章节二深入探讨了语言的基础知识,如巴科斯范式(BNF)——一种用于描述编程语言的形式化方法,它通过终结符和非终结符来构建文法。文法被定义为规则的有限集合,通过四元组(非终结符集、终结符集、产生式集和开始符号)来表示。文法的推导过程包括直接推导、推导加法和广义推导,这些都是理解语言结构和生成过程的关键。 递归规则和递归文法的概念也在此处介绍,强调如何处理左递归以确保文法的有效性。此外,语言的无穷性和确定性是判断文法的重要属性。 这个资源涵盖了从翻译程序类型到编译过程、语言基础和文法理论的全面内容,对于理解和设计编译器及其相关的高级语言处理技术具有重要意义。