第二章 程序设计语言基础
2.1 程序语言的基本概念
2.1.1 低级语言和高级语言
低级语言:机器语言(计算机硬件只能识别o和1的指令序列),如汇编语言;
高级语言:功能更强,抽象级别更高,与人们使用的自然语言比较接近,常见的有Java,C,C++,PHP, Python,Delphi等
2.1.2编译程序和解释程序
用某种高级语言或汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。
汇编语言需要将其翻译成目标程序之后才能执行;
高级语言则需要对应的翻译程序和编译程序对其进行翻译,然后才能在机器上执行。
2.2 程序设计语言的基本成分
2.2.1 程序设计语言的数据成分
1)常量和变量
2)全局量和局部量
3)数据类型
程序设计语言规定其程序中的数据必须具有类型:
2.2.2 程序设计语言的运算成分
2.2.3 程序设计语言的控制成分
2.24 程序设计语言的传输成分
程序设计语言的传输成分指明语言允许的数据传输方式,如赋值处理,数据的输入和输出等。
2.2.5 函数
2.3编译程序基本原理
2.3.1 编译过程概述
编译方式:词法分析、语法分许、语义分析、中间代码生成、代码优化、目标代码生成。
解释方式:词法分析、语法分许、语义分析。
(1)词法分析
·输入:源程序
·输出:记号流
·词法分析阶段的主要作用是分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定。
(2)语法分析
·输入:记号流
·输出:语法树(分析树)
·语法分析阶段的主要作用是对各条语句的结构进行合法性分析,分析程序中的句子结构是否正确
·语法分析阶段可以发现程序中所有的语法错误。
(3)语义分析
·输入:语法树(分析树)
·语义分析阶段的主要作用是进行类型分析和检查
·语义分析阶段不能发现程序中所有的语义错误
·语义分析阶段可以发现静态语义错误,不能发现动态语义错误,动态语义错误运行时才能发现。
(4)中间代码生成
·常见的中间代码有:后缀式、三地址码、三元式、四元式和树(图)等形式。
·中间代码与具体的机器无关(不依赖具体的机器).
·可以将不同的高级程序语言翻译成同一种中间代码。
·中间代码可以跨平台
·使用中间代码有利于进行与机器无关的优化处理和提高编译程序的可移植性。
(5)目标代码生成
·目标代码生成阶段的工作与具体的机器密切
·相关寄存器的分配处于目标代码生成阶段
2.4 正规式
个人博客原文:http://www.frblogger.cn/2024/01/30/programming/