“编译程序”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第7行: 第7行:
 
[[文件:编译过程.png|无|缩略图|683x683像素]]
 
[[文件:编译过程.png|无|缩略图|683x683像素]]
 
[[文件:编译过程 2.png|无|缩略图|600x600像素]]
 
[[文件:编译过程 2.png|无|缩略图|600x600像素]]
 +
 +
=== 2)词法分析 ===
 +
词法分析:从左到右逐个扫描源程序中的字符,识别其中如关键字(或称保留字)、标识符、常数、运算符以及分隔符(标点符号和括号)等。
 +
 +
例:
 +
 +
VAR X,Y,Z: real;
 +
 +
X:=Y+Z*60;
 +
 +
词法分析:
 +
 +
(1)保留字 VAR    (2)标识符  X    (3)  逗号  ,
 +
 +
(4)标识符  Y    (5)逗号  ,    (6)标识符  Y    (7)冒号  :
 +
 +
(8)标识符  real    (9)分号  ;    (10)标识符  X
 +
 +
(11)赋值号  :=    (12)标识符  X    (13)加号  +
 +
 +
(14)标识符  Z  (15)乘号 *    (16)整常数  60    (17)分号  ;

2022年9月15日 (四) 08:29的版本

https://www.bilibili.com/video/BV1hg411V7Bm?p=49

1)编译过程

编译程序的功能是把某高级语言书写的源程序翻译成与之等价的目标程序(汇编语言程序或机器语言程序)。

编译程序的工作过程可以分为6个阶段,如图所示,实际的编译器中可能会将其中的某些阶段结合在一起进行处理。

编译过程.png
编译过程 2.png

2)词法分析

词法分析:从左到右逐个扫描源程序中的字符,识别其中如关键字(或称保留字)、标识符、常数、运算符以及分隔符(标点符号和括号)等。

例:

VAR X,Y,Z: real;

X:=Y+Z*60;

词法分析:

(1)保留字 VAR (2)标识符 X (3) 逗号 ,

(4)标识符 Y (5)逗号 , (6)标识符 Y (7)冒号 :

(8)标识符 real (9)分号 ; (10)标识符 X

(11)赋值号 := (12)标识符 X (13)加号 +

(14)标识符 Z (15)乘号 * (16)整常数 60 (17)分号 ;