PL语言编译程序扩充
时间: 2023-10-10 07:07:01 浏览: 81
PL语言编译程序的扩充主要包括增加处理更多语法成分的功能和扩充指令LDA、STA。在处理语法方面,扩充了一维数组、赋值运算符--=、运算符*=、/=、<>、for-to、repeat-until、if-then-else、floor函数、ceil函数、求二次方的pow2、求三次方的pow3、float类型以及错误展示等功能。具体地,在头文件pl0.h中,修改了关键字的个数norw,新增了else, for, repeat, to, until, array,float,floor,ceil,pow2,pow3等关键字,并在enum symbol中添加了相应的单词种别,同时在名字表中的类型enum object中加入了array和flo。在虚拟机代码中新增了STA、LDA、LTF等指令用于处理一维数组,并将fctnum改为11。
另外,在词法分析的GETSYM函数中,也对代码进行了扩充。例如,在处理赋值运算符"="和加号"+"的时候,新增了一些判断条件和相应的操作,使得词法分析器能够正确地识别这些符号并将其对应的单词种别赋给sym变量。
总结起来,PL语言编译程序的扩充主要包括增加处理更多语法成分的功能和扩充指令LDA、STA,使得编译程序能够更好地处理一维数组、赋值运算符和各种函数等语法成分。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [PL/0编译程序的扩充](https://blog.csdn.net/xpybing/article/details/128104407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]