|
|
J+ T, C4 S* Q; I5 a& R7 y全书系统介绍了编译程序的一般构造原理、基本设计方法和主要实现技术。内容包括:文法和语言基本知识、词法分析程序的设计原理与构造方法、各种语法分析技术、语法制导翻译技术与中间代码生成、符号表的组织和管理、代码优化、运行时存储空间的组织与管理、目标代码生成、并行编译技术基本常识等。
( P5 n& [' T1 [" `5 K5 o5 f第1章编译概述) y5 x2 u9 y1 A' |# s/ h3 \
1.1翻译程序与编译程序
# q0 j9 B" s; [9 O" V1.2编译过程和编译程序的基本结构5 H8 z0 S; w8 u* P2 y8 g8 D; s
1.3编译程序的生成方法
1 w# X& Z& f! F% r0 a1 s1.4编译技术在软件开发中的应用
: M! R0 q7 V% K6 z, P- q本章小结+ U. T* R" k6 }# e
扩展阅读8 v- O- {1 q# O8 B }
自测练习题14 h% R1 x: j5 {, D# A
习题13 f. E9 r' h: @ X5 }
第2章文法和语言的基本知识 h- T) o( [; d
2.1概述
. u2 O+ @$ h+ b! Q, h' ^0 [2.2字母表和符号串的基本概念
% k( G3 P }: T3 M' X2.2.1字母表和符号串
$ T8 g/ J) E- B5 ?% M/ b" b2.2.2符号串的运算
; Q5 S2 s1 z/ a; P" R- s4 h2.3文法和语言的形式定义, J' y' t, O& [) n
2.3.1形式语言1 g4 @. e0 S6 b+ L9 v3 d* \8 y1 O
2.3.2文法的形式定义. k, p% Q: a! f+ ~0 f
2.3.3语言的形式定义' J; y* B5 e; c* Q
2.3.4规范推导和规范归约5 z$ W8 ~& b T5 ~ h
2.3.5递归规则与文法的递归性
9 ?* A7 S2 i9 K! B/ W2 N. p0 R4 P2.4短语、直接短语和句柄
( A8 p4 _- A' I2 H2.4.1短语和直接短语
8 e0 V- O+ o( x: n. @+ N" c2.4.2句柄' C* H2 U9 Y8 i3 ^
2.5语法树与文法的二义性+ k0 x6 E# o" d+ p* ~' s2 H, H1 m
2.5.1推导和语法树' ]0 n$ g$ X% E9 R6 [8 M- f1 o
2.5.2文法的二义性
) R: g) ?$ J! N$ `2 J( @2.5.3文法二义性的消除. D" z) [* Z- g( L( r
2.6文法和语言的分类 }4 a; b, F0 W* e) q7 S# P4 T
2.7有关文法的实用限制和变换4 e4 T- W5 w# e T4 I
本章小结+ F* c# X. B) s8 h: d
扩展阅读- `3 ]7 ]# ^8 g2 S& o4 M, a
自测练习题23 ^; f$ f+ R( W- C
习题25 J5 [9 {% e% Q7 X7 @+ s, c
第3章词法分析与有穷自动机& C$ F" e c% o- z' ]% D
3.1词法分析程序的功能5 @; b. F6 j; g# e5 u" u6 I) c* [
3.2单词符号及输出单词的形式" M' w8 I4 Y3 e- L
3.2.1语言的单词符号: i* Q9 ^5 L8 F1 ~$ B" \0 F
3.2.2词法分析程序输出单词的形式' m; H$ n9 Z& n9 y
3.3语言单词符号的两种定义方式& v2 `4 p6 q5 _0 g2 Q* V% Z
3.3.1正规式与正规集
" I( D( z3 F0 ]3.3.2正规文法与正规式, Q% V, O; E( V$ h8 F
3.4正规式与有穷自动机
5 X. v; k' [% y$ W m" q) }3.4.1确定有穷自动机(DFA)
$ q% f4 W( D" w; h* A2 ?! M3.4.2非确定有穷自动机(NFA)0 f, L; E3 A _1 r
3.4.3由正规表达式R构造NFA
, g7 p' g; b9 @$ _3 d" m3.4.4NFA确定化为DFA的方法9 m7 J$ a% m( a! Y
3.4.5DFA的化简
4 Y9 E3 p4 V6 c2 v3.4.6有穷自动机到正规式的转换
3 O, i$ w/ t0 H; V1 O3.5正规文法与有穷自动机
8 I0 O0 C+ c% r6 z% R7 C3.5.1右线性正规文法到有穷自动机的转换方法
: l: C% f8 p! |3.5.2左线性正规文法到有穷自动机的转换方法7 V. j. b7 n- m/ K
3.5.3有穷自动机到正规文法的转换方法
1 _: ]. _0 k0 `7 {' c8 Z% I3.6词法分析程序的编写方法
! ?+ R0 b/ B) U) V1 H3 B6 h本章小结, S; |9 z4 r g) |0 C; X4 x
扩展阅读
0 k& d6 i/ X) z; l自测练习题3
2 g j6 d J* e' s p0 F& v# i) G" d习题31 x$ O1 F1 y: k) G7 `+ C
第4章语法分析$ v, X7 a- W6 d y! w. {
4.1语法分析程序的功能) R5 C9 b# k. b. A* f( W. Y
4.2自上而下分析法
# {$ @/ \3 i" M. L* F$ [1 U; F, q4.2.1非确定的自上而下分析法的思想+ o+ L; d3 n8 D9 L$ p v
4.2.2文法的左递归性和回溯的消除; e! c; L1 e$ S5 |
4.2.3某些非LL(1)文法到LL(1)文法的改写
, m c Y V; Y4.2.4递归下降分析法
_' y% r0 W; n4.2.5预测分析法与预测分析表的构造
1 j4 |: e1 ]9 g) S( I4.3自下而上分析法的一般原理
( w; }3 C5 C( P6 F4.4算符优先分析法9 i$ q& ], o9 s; @) D# u7 n9 V
4.4.1方法概述
. e; w0 i; r. t: o+ Q' m9 R4.4.2算符优先文法的定义( }3 m. [. p) p4 B) E8 Q) K
4.4.3算符优先关系表的构造$ N( c% o& X/ z( {4 X# r' `; ?
4.4.4算符优先分析算法的设计
- {5 X; j/ `+ G3 e$ i! `: g4.4.5优先函数的构造* l! |5 e8 d5 X: ~: |6 u# T1 n8 ]7 j
4.4.6算符优先分析法的局限性8 Y5 S. O, k; a k6 e# j# ^! j
4.5LR分析法
# S9 \: v# Z7 a9 q& s$ K4.5.1LR分析器的工作原理和过程( y+ n; _' K& D& {. [
4.5.2LR(0)分析法
4 }- G6 w, u9 ]4 Y# o! ]6 K$ n) K9 T4.5.3SLR(1)分析法
+ e4 ~4 X) \& N. F8 x4.5.4LR(1)分析法( {# }# B( \2 Y& w# z
4.5.5LALR(1)分析法5 ? N- C }- ]# ^4 Z
4.5.6LR分析法对二义性文法的应用' P+ v) W/ J" N9 c. Y% U
4.5.7LR语法分析中的错误恢复技术
7 |% p6 g; x8 J" c/ Y4.6语法分析程序的编写方法
& N* c$ f5 R6 ~9 c* {2 [本章小结8 _3 N& d' {- F9 I V" H
扩展阅读( r! j; S8 c7 Q8 J' K1 c7 o& d i
自测练习题4
/ J- }$ T% L/ O6 p习题4
$ y6 c \- e3 M$ e4 A8 W/ f" V第5章语法制导翻译技术和中间代码生成) h* g8 t& b5 Z* i2 O5 V3 b
5.1概述
5 I* f9 d% e( {. U# J" }+ e' e' q5.2属性文法. c2 V1 R: W* @
5.3语法制导翻译概述) W8 `# m* s7 E- V' J
5.4中间语言4 Z2 g r! A% J0 |
5.4.1逆波兰式$ o4 Y, E l1 q' m& e, p" k+ g r
5.4.2三元式和树形表示
( C- @" K, ]5 A" U5 e7 k C) `5.4.3四元式和三地址代码
0 J9 q! o) v% S5.5自下而上语法制导翻译, O( i: M% H1 p! g: I' S2 C
5.5.1简单算术表达式和赋值语句的翻译
8 O9 o, E6 J: g' O. }5.5.2布尔表达式的翻译) k; g% |4 q9 H+ S K' y' d
5.5.3控制语句的翻译
& t3 e1 A# G% d& D5 D) K+ O5.5.4循环语句的翻译( C$ a: r7 P3 i' \
5.5.5简单说明语句的翻译3 L' {% v. f; R w4 o @2 h
5.5.6含数组元素的赋值语句的翻译& u1 f6 E+ G( j: }4 p7 ^* }+ Y
5.5.7过程和函数调用语句的翻译
" T+ A4 S. Q" f; q6 |- W- v# r7 ^/ x5.6递归下降语法制导的翻译
% ^: [- O9 |# B8 {6 \4 t; [) e本章小结2 ^# T6 X$ Q3 Q9 j
扩展阅读
+ Q6 v f4 q9 ~! }4 P自测练习题5
! @8 b$ ]' U9 s4 j- l( ]习题5 B$ N: `: M4 M6 p& P" Y- n; d
第6章符号表的组织与管理
?& x+ ^, q) S$ z6.1符号表的作用
3 E* w; p. Z# j) _6.2符号表的组织; b/ R7 t8 n2 _
6.3符号表的建立和查找$ w1 g. ^3 T! ]7 R7 V
本章小结2 S" N, {+ E& V1 M4 G% Q( ?9 n
扩展阅读
: `# l! K& V- g自测练习题6
: Y; t' i5 R2 b9 W1 j8 W习题6
: ]* o9 [6 q0 i; p3 ~# x第7章代码优化) r3 q1 G# C" z8 T) {9 E$ W& ~
7.1优化概述
/ P' G: i: N; p7.2局部优化
9 W. x/ s0 }7 g3 I e1 w7.2.1划分基本块的方法
" A3 b5 q1 R/ ~0 V# C7.2.2基本块的DAG表示) a$ C- a& j; A
7.2.3利用DAG进行基本块的优化处理
4 B( j+ ~. V5 F6 I" w7.3循环优化
& U( U! ?, Z3 G( Q7.3.1程序流图与循环( y7 {+ y V2 L, u' A) d
7.3.2循环查找9 z) D& D: }5 B6 M% c1 F
7.3.3循环优化4 K( y+ {. y6 f/ @/ m2 _( |; A; q, w
7.4窥孔优化
V; Q9 C0 w: F7 x本章小结: Q( O6 ^" s1 i- m4 B
扩展阅读
0 L, ]! e! A# x2 l- B/ r) y0 c自测练习题7
0 j4 B) E" F; v6 m& Y: I- }( w! Q& j6 W习题7
1 \& T# ^8 C$ h% R) _; J4 B第8章运行时的存储组织与管理
( L8 }# v" M/ e: `: U2 [8.1概述
% c K% O7 Y( u" B! ]/ s8.2静态存储分配
9 |2 b R% @: H, [9 X( ~3 {- L8.3栈式存储分配, a+ z7 m% A2 ~$ D' `* T
8.3.1简单栈式存储分配
: P5 ?; h% F* ~& J8.3.2嵌套过程的栈式存储分配3 N- L _) t0 {3 u' A
8.4堆式存储分配2 _7 X! s: X5 G
8.5临时变量的存储分配
0 |% H! [, \" K$ R; c; C) O本章小结8 e1 J% {* w0 t. d. R2 C
扩展阅读
* d% v" q, a1 t) k) y自测练习题89 f v' n9 n5 N' F3 D
习题8
& k9 c1 R! M. h+ R6 f3 |第9章目标代码生成
+ j9 r6 I' f; ]7 v( B+ g9.1概述 S* `# w/ P* F& W, P
9.2假想的计算机模型- g+ T ~4 J/ m: R6 g& \* `. D& p# z
9.3简单代码生成器- Q: c% v, D1 x3 M+ c- ]" X
9.3.1待用信息与活跃信息
: Y. b6 E( \6 @) R8 ?9 @9.3.2代码生成算法
$ o; S( v7 H! |" K9.3.3寄存器的分配
" }# V0 G, l/ M. A; k0 r9.4代码生成器的自动生成技术- Y5 P3 v( _$ L& ?) t; p
本章小结
6 u4 k! o* Y) K' r: r扩展阅读9 x3 r1 _& a2 `7 [( e! b
自测练习题9
' d& c" Z1 G6 w! o习题9: R3 f" h& X, ]. A1 U6 b6 g
第10章并行编译技术基本常识; z. o3 L1 l X( g
10.1并行编译技术的引入
( V$ p3 W5 k" c- V2 x10.2并行编译系统的功能和结构4 G) O6 C) O( C; y+ V4 P, @% q7 J1 D. f, y
10.2.1并行编译系统的功能9 H3 j9 a" C' D# f
10.2.2并行编译系统的结构
- u1 N7 [1 |( A' a5 u+ r% o10.3向量语言编译技术
& v8 }/ ]2 @+ Q10.3.1向量语法处理; j" ^: U7 b2 V
10.3.2向量结构优化
. M4 B' ]* B& J& J5 I4 P10.4共享存储器并行机并行编译技术8 J0 b( }1 j8 o8 A+ S+ ^1 J
10.4.1预编译
8 b: A6 X. ]$ U/ J10.4.2可再入的目标代码
; e; r, n! M1 S( j# G8 t+ J/ h- p8 z' W本章小结! H! H/ G+ L8 e5 o6 U$ L
习题10
9 W9 k9 C) Z7 k附录A词法分析程序生成器Lex% G L0 }# L+ h2 y4 W7 {* X
A.1词法分析程序生成器Lex简介& k0 \6 z' E% M! T* E
A.2Lex输入文件的格式8 U0 Z) R, c' S0 N5 J o: @3 o1 l: P! x
A.3正规表达式的Lex约定
) \$ Q' o# Q' ^1 J+ e8 D; ^A.4Lex源程序中的规则部分8 n, w5 B8 y' [) O! j. A9 Q9 K1 s# {
A.5Flex的命令选项- J5 `6 v7 S2 v `6 h: ]0 I' k) n) `
A.6Lex程序示例
3 h- m& A! k' D8 m) ?8 T l2 ?. x附录B语法分析程序生成器YACC
- c. p3 B2 j- \& fB.1语法分析程序YACC简介
& |6 Q! Q' U6 K$ C' y* U# u$ iB.2YACC输入文件的格式$ ~7 s7 o. _0 ]) a+ S* y; w5 R
B.3YACC各部分的书写格式* y, f: P+ }7 p/ f
B.3.1定义部分/ n/ M4 N; O0 J- b7 h4 v/ v( P$ c3 M
B.3.2规则部分
- _. c- T* n6 J y+ x5 [B.3.3辅助程序部分
g* _' ]' A [2 p$ O A& |B.4YACC的内置名称和定义机制# X M Q) D1 l5 ~
B.5Flex与Bison的联合使用
; [$ R6 t# {. }& c0 [& h. e附录C编译程序实验
, \1 ^& M" u4 s+ K, X, IC.1词法分析6 a$ O8 T0 K; k! t# A; H
C.1.1实验目的% v( r0 l" G- l- i# I6 a
C.1.2实验要求: d% Q5 Z+ w- H( n% |
C.1.3词法分析程序的算法思想3 G+ V% A( S9 G2 H' H
C.1.4词法分析程序的C语言程序框架& n+ ~( t: J( k; o! Y
C.2语法分析
5 `5 g* _" N9 L5 B! T( P) rC.2.1实验目的2 }1 S* ^9 J+ Q2 U
C.2.2实验要求
% ?6 q& u) p0 w, H9 x/ m% ?# {) jC.2.3语法分析程序的算法思想
+ g' v) {8 m' _, OC.2.4语法分析程序的C语言程序框架3 w# I3 k9 ]' ?7 _3 l# H, _4 L
C.3语义分析
! c4 ~/ I9 i) T# _& N% N$ | UC.3.1实验目的0 P9 W5 \ h; S+ _+ v1 S0 ]3 o) ^
C.3.2实验要求! p3 ] |$ f# @2 r4 N; l8 ^. S
C.3.3语义分析程序的C语言程序框架
l0 P w8 ]6 B5 DC.4算符优先分析法6 f4 R" w9 c! O/ E
C.5实验实例
+ s% X- }8 o, w8 VC.6正规式转换成自动机的图形表示 ?& q7 w t% z3 O# w2 E `9 M; @
C.6.1实验目的, e$ o4 A% w6 x5 A& m- C, x
C.6.2实验要求7 l% x: Y( z& b6 P
C.6.3参考设计思路! h p; N z' r4 Z7 h% R, Y/ t1 B
C.6.4参考算法
; l! O% [+ O) `" C: j附录D自测练习题与习题参考答案% X' i0 N5 C! A' ]
参考文献
, T' {7 v, k% l3 H, h# O1 U5 Z* D" [! z8 L. I5 U
|0 ~' a" f# p/ _% @
4 y) C! f# }, `5 C
资源下载地址(百度云盘): 百度网盘地址回帖可见 网盘密码:8yx1
3 A8 J+ a2 c* ^0 A% z$ P' [0 T% r4 n, p% v! L# W+ I0 d/ `
, \# V+ ?# i8 p2 r) |- X
6 v- }" ]" P5 d: `2 g
本资源由IT视频教程网收集整理【www.itspjc.com】 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|