⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 careme.txt

📁 该程序用VC实现了一个小型编译系统
💻 TXT
字号:

==============================================================================================
				    《一》 本类C语言语法规则以及语义翻译文法规则
===============================================================================================
<1> < program>::=main(){ <declaration_list><statement_list> }
<2> <declaration_list>::= { <declaration_stat> }
<3> <dclaration_stat>::=INT|CHAR ID;
    <dclaration_stat>::= @ vartable,datep->int |char ID@ name_def;
<4><statement_list>::={ <statement> }
<5><statement>::=<assign_expr>|<if_stat>|<while_stat>|<for_stat>|<compound_stat>
<6> <assign_expr>:: ID=<addictive>;
<7><if_stat>::=if<bool_expr><statement>[else <statement>]
<8><while_stat>::=while(<bool_expr>)<statement>
   <while_stat>::=while @SETlabel1 (<bool_expr>) 
   @BRFlabel2 <statement> @BRlabel1@SETlabel2
<9><for_stat>::=(<assign_expr>;<bool_expr>;<assign_expr>)<statement>
    <for_stat>::=(<assign_expr>;
    @SETlabel1<bool_expr>;    设置标号1
    @BRF label2@BR label3    输出标号2和3 
	@SETlabel4<assign_expr>)@BR label1    设置标号4并输出标号1 
	@SETlabel3<statement>@BR label4        设置标号3并输出标号4
	@SETlabel2    设置标号2
<10><compound_stat>::={ <declaration_list><statement_list> }
<11><bool_addictive>::=<addictive>(>|<|>=|<=|==|!=)<addictive>
   <bool_addictive>::=<addictive> > <addictive> @GT
   <bool_addictive>::=<addictive> < <addictive> @LT
   <bool_addictive>::=<addictive> >= <addictive> @GE
   <bool_addictive>::=<addictive> <= <addictive> @LE
   <bool_addictive>::=<addictive> ==<addictive> @EQ
   <bool_addictive>::=<addictive> !=<addictive> @NEQ

 <12><addictive>::=<term>{ (+|-) <term> }
   <addictive>::=<term>{ + <term>  @ADD|- <tern> @SUB }
<13><term>::=<factor>{ (*|/)<factor> }
    <term>::=<factor>{ *<factor> @MUL| /< factor > @DIV }
<14><factor>::=(<addictive>)|ID|NUM
    <factor>::=(<addictive>)|ID @lookup|NUM@loadi
<15><read_stat>::=read ID;
   <read>::=read ID lookup @IN @STI;
<16><write_stat>::=write<addictive_expr>;
    <write_stat>::=write<addictive_expr>@OUT;

===============================================================================================                     
			       《二》 基于栈式抽象机的汇编指令代码一览表
================================================================================================
		 LOAD  D     将 D 中的内容压入操作数栈
		 LOADI N     将常量压入操作数栈
		 STO   D     将操作数栈顶单元内容存入D且栈顶内容不变
		 STI   D     操作数栈顶单元内容存入D且操作数栈顶单元内容出栈
		 ADD         次栈单元内容与操作数栈顶单元内容出栈相加,和保存在操作数栈顶单元内容
		 SUB         次栈单元内容与操作数栈顶单元内容出栈相减,差保存在操作数栈顶单元内容
		 MUL         次栈单元内容与操作数栈顶单元内容出栈相乘,积保存在操作数栈顶单元内容
		 DIV         次栈单元内容与操作数栈顶单元内容出栈相除,商保存在操作数栈顶单元内容
		 BR    LAB   无条件转移到LAB      
		 BRF   LAB   检查操作数栈顶单元逻辑值,为假则转移到LAB     
		 EQ          次栈单元内容与操作数栈顶单元内容相比较,将结果(0§1)置于栈顶
		 NEQ         次栈单元内容与操作数栈顶单元内容相比较,将结果(0§1)置于栈顶
		 GT          次栈单元内容与操作数栈顶单元内容相减,若大于0,将结果1 置于栈顶
		 LT          次栈单元内容与操作数栈顶单元内容相减,若小于0,将结果1 置于栈顶
		 GE          次栈单元内容与操作数栈顶单元内容相减,若大于等于0,将结果1 置于栈顶
		 LE			 次栈单元内容与操作数栈顶单元内容相减,若小于等于0,将结果1 置于栈顶
		 IN			 标准输入整型数或字符型,并置于栈顶
		 OUT		 操作数栈顶单元内容出栈,并送入标准输出
		 STOP        停止执行

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -