语言规范

语言规范

YC1语言与C语言非常接近,但是YC语言被设计的比C语言更为简单,因为你们需要为这个语言编写一个编译器。

我们大幅精简并修改了部分C语言的语法形成YC语言。大部分YC语言的语法都可以用LL(1)文法进行描述,我们希望这个更为简单的"C语言"能够帮助你们在这个学期内及时的完成整个实验并掌握编写一个编译器所必要的知识和技巧。

为了让你们能够更快速的编写你的编译器,我们删除了许多C语言中比较复杂或不常用的语法,如:

  1. 预处理指令与宏:YC语言只支持单文件编译,不支持
  2. 复杂的类型系统:YC语言只支持有限的几种数据类型。
  3. 复杂的指针用法:YC语言只支持有限的指针使用方法(指针为扩展内容)。

为满足不同层次学生的需求,我们为YC语言制定了多个版本,每个版本都会在前一个版本添加一些新特性。所有学生只要求完成YC1这个版本,后面的版本将提供给学有余力的同学完成。


YC1

YC1是C语言的一个子集(一个合法的YC1程序一定是一个合法的C程序,你可以使用任何一个C语言编译器编译YC1的程序)。

这个版本包含了YC语言的基础语法,如变量,函数,循环,分支,表达式等。


YC2

YC2仍然是C语言的一个子集。

这个版本新增了数组和for循环。

开发中…

  1. YC是Yan C的缩写。 ↩︎