![](https://csdnimg.cn/release/download_crawler_static/86286929/bg1.jpg)
MiniC 相关说明
1 概述
MiniC
是
C
语言的一个子集,对
C
语言语法进行了大量删减,以产生一种适用于编译实习
课程的语言。
MiniC 是为了取代原先编译实习课程使用的 MiniJava 语言而设计的,目的是更好地配合编
译原理课程进度,在一定程度上减轻任务量。MiniC 基础语法高度精炼,使同学们无论能力如何,
都能完成编译器编写的过程。
同时,对于能力较强的同学,实习课程可以提供一些 MiniC 语法扩展内容,把从 C 语言中
删除的一些语法加回 MiniC,来提升 MiniC 语言的易用程度和表达能力,对完成扩展内容的同学
提供一定程度的加分。
2 语法描述
• MiniC 取消了 C 语言中的宏。
• MiniC 中的变量有两种类型,int 和一维 int 数组。
• MiniC 中函数返回值只有 int,参数可以是 int 或 int 数组,程序从 main 函数开始执行。同
时,MiniC 不会给函数默认返回值,如果执行完一个函数而没有 return,会导致未知行为。
• 单目运算符有'!' 和'-'
• 双目运算符有'+','-','*','/','%','&&','||','<','>','==','!='
• 合法的表达式参考 BNF。
• 允许使用函数前置声明(参见样例中 getint 函数)。
• MiniC 程序中允许 C 风格的单行注释。
• MiniC 只保留 if-else 条件分支语句和 while 循环语句。
• 为了使 MiniC 更容易实现,限定 if,while 后面的括号里和逻辑运算符两边的运算分量只
会出现如下两种形式:
x>y||(a+b)!=c 这样的逻辑表达式;
x 或 f(x) 或 a[x] 这样的单个变量或函数。
总之,不会出现类似 if (a+b) 或 (b+c)||d 这样的语句。
1
评论0