欢迎来到天天文库
浏览记录
ID:48912384
大小:669.00 KB
页数:67页
时间:2020-02-01
《第二章PL0编译程序的实现.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、复习编译程序的逻辑阶段?编译程序的构成?编译程序与解释程序的区别?书上12页练习。第2章PL/0编译程序本章目的:PL/0语言基础、PL/0编译程序实现的基本步骤和相关技术1.PL/0语言基础知识2.PL/0语言描述(语法图、EBNF)3.PL/0编译程序的结构4.PL/0编译程序的分析工作(词法、语法和语义)5.PL/0编译程序的错误处理方法6.目标代码生成和类pcode代码解释器PL/0语言:PASCAL语言的子集PL/0程序示例PL/0的语法描述图PL/0语言的EBNF表示1.PL/0语言基
2、础知识PL/0程序示例CONSTA=10;(*常量说明部分*)VARB,C;(*变量说明部分*)BEGINCALLP;END.程序体说明部分PL/0程序示例CONSTA=10;(*常量说明部分*)VARB,C;(*变量说明部分*)BEGINREAD(B);C:=B;WHILEB#0DOBEGINC:=C+B;B:=B-1;END;WRITE(C);END.程序体说明部分PL/0程序示例CONSTA=10;(*常量说明部分*)VARB,C;(*变量说明部分*)PROCEDUREP;(*过程说明部分
3、*)VARD;(*P的局部变量说明部分*)BEGINWRITE(D);CALLQ;END;BEGINCALLP;END.p过程体主程序体说明部分PL/0程序示例CONSTA=10;(*常量说明部分*)VARB,C;(*变量说明部分*)PROCEDUREP;(*过程说明部分*)VARD;(*P的局部变量说明部分*)PROCEDUREQ;(*P的局部过程说明部分*)BEGINWRITE(D);CALLR;END;BEGINCALLP;END.p过程体主程序体说明部分PL/0程序示例
4、CONSTA=10;(*常量说明部分*)VARB,C;(*变量说明部分*)PROCEDUREP;(*过程说明部分*)VARD;(*P的局部变量说明部分*)PROCEDUREQ;(*P的局部过程说明部分*)VARX;BEGINREAD(X);D:=X;WHILEX#0DOCALLP;END;BEGINWRITE(D);CALLQ;END;BEGINCALLP;END.Q过程体p过程体主程序体说明部分输入圆柱的半径和高,计算一些面积、体积等varr,h,len,a1,a2,volumn;
5、beginread(r);read(h);len:=2*3*r;a1:=3*r*r;a2:=a1+a1+len*h;volumn:=a1*h;write(len);write(a1);write(a2);write(volumn);end.计算最大公约数varm,n,r,q;{计算m和n的最大公约数}proceduregcd;beginwhiler#0dobeginq:=m/n;r:=m-q*n;m:=n;n:=r;end;end;beginread(m);read(n);{为了方便,规定m>=n
6、}ifm7、eginifm>0thenbeginfact:=fact*m;m:=m-1;callfactorial;end;end;begin{读入n}read(n);sum:=0;whilen>0dobeginm:=n;fact:=1;callfactorial;sum:=sum+fact;n:=n-1;end;{输出n!}write(sum);end.第2章PL/0编译程序1.PL/0语言基础知识2.PL/0语言描述(语法图、EBNF)3.PL/0编译程序的结构4.PL/0编译程序的分析工作(词法、语法和8、语义)5.PL/0编译程序的错误处理方法6.目标代码生成和类pcode代码解释器程序分程序或内的文字表示单词符号(终结符).内的文字表示语法成分(非终结符)非终结符:可由其它文法符号定义。终结符:语法成分的最小单位,不能由其它文法符号定义。2.PL/0语言描述(语法图、EBNF)PL/0语言的EBNF(巴科斯-瑙尔范式)表示构成EBNF的元素:非终结符,终结符,开始符,规则。EBNF的表示符号说明:<>:用左右尖括号括起来的内容为非终结符∷=:读做‘定义为’,∷=的左部由右部定义→
7、eginifm>0thenbeginfact:=fact*m;m:=m-1;callfactorial;end;end;begin{读入n}read(n);sum:=0;whilen>0dobeginm:=n;fact:=1;callfactorial;sum:=sum+fact;n:=n-1;end;{输出n!}write(sum);end.第2章PL/0编译程序1.PL/0语言基础知识2.PL/0语言描述(语法图、EBNF)3.PL/0编译程序的结构4.PL/0编译程序的分析工作(词法、语法和
8、语义)5.PL/0编译程序的错误处理方法6.目标代码生成和类pcode代码解释器程序分程序或内的文字表示单词符号(终结符).内的文字表示语法成分(非终结符)非终结符:可由其它文法符号定义。终结符:语法成分的最小单位,不能由其它文法符号定义。2.PL/0语言描述(语法图、EBNF)PL/0语言的EBNF(巴科斯-瑙尔范式)表示构成EBNF的元素:非终结符,终结符,开始符,规则。EBNF的表示符号说明:<>:用左右尖括号括起来的内容为非终结符∷=:读做‘定义为’,∷=的左部由右部定义→
此文档下载收益归作者所有