码迷,mamicode.com
首页 > 其他好文 > 详细

【编译器】斯坦福公开课学习2

时间:2016-05-22 00:38:52      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

02-01

将会为教学用语言COOL编写编译器,把COOL编译成MIPS汇编语言。会分为五个部分讲解,首先是写一个COOL程序,程序本身会是一个解释器。之后是词法分析、语法分析、语义分析、代码生成。这些部分都是分离的。即在我们自己实现语法分析时,我们将自己完成的部分嵌入到一个参考编译器中。参考编译器中已经有其他的部分了。这便于对各个部分独立排除错误。

 

一些COOL代码示例,用于熟悉COOL语言。

class Main{
   main():Int {1}; 
};
class Main{
   i : IO <- new IO;
   main():Int { { i.out_string("Hello World!\n"); 1; } };  
};
class Main{
   i : IO <- new IO;
   main():IO { i.out_string("Hello World!\n") };  
};
class Main{
   i : IO <- new IO;
   main():Object { i.out_string("Hello World!\n") };  
};
class Main{
   main():Object { (new IO).out_string("Hello World!\n") };  
};
class Main inherits IO {
   main():Object { self.out_string("Hello World!\n") };  
};
class Main inherits IO {
   main():Object { out_string("Hello World!\n") };  
};

 

编译方法:假设代码名为1.cl,先后运行下面两句代码即可。

coolc 1.cl
spim 1.s

 

 

 

后注:就这么点东西看了两个小时啊,这哪里是计算机课,这分明就是外语课啊,摔!

【编译器】斯坦福公开课学习2

标签:

原文地址:http://www.cnblogs.com/dplearning/p/5515911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!