前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.1 关于编译器的COOL(Classroom Object Oriented Language )概述|编译原理

2.1 关于编译器的COOL(Classroom Object Oriented Language )概述|编译原理

作者头像
仇诺伊
发布2020-04-24 11:51:24
1K0
发布2020-04-24 11:51:24
举报
文章被收录于专栏:佳爷的后花媛佳爷的后花媛

昨天简单了解了下编程语言的分类,今天的视频内容就来看看怎样自己的编程语言。

该视频里面的COOL并不是很酷的意思哟,虽然我觉得这个就很酷了,但这个是Classroom Object Oriented Language的缩写,它就是为了本科编译课程而出现的。相对于当下的各种编程语言,cool就非常小了,但是cool依然拥有现代编程语言的很多特征,包括对象,自动内存管路,静态打印,简单的映射。

Cool编译器是参考C ++编写的,完全基于公共域工具构建,它为MIPS模拟器SPIM生成代码。因此,容易移植到其他平台。它已被用于许多机构(如加州大学伯克利分校,首次使用它或伊朗Shahid Beheshti大学)的教学编写器,并且该软件是稳定的。(该语言与CLIPS中包含的COOL语言无关。)

由于Cool主要目的是指令,因此缺少许多其他通用编程语言所共有的功能。例如,语言支持的不是比较,而是大于。语法非常简单,“标准库”只包含几个基本类。虽然编译器支持多个源文件作为输入,但不支持单独编译。每个Cool程序都必须定义一个Main类,它必须有一个执行流程开始的no-args main方法。不支持命名空间。

来看看cool究竟是何方妖孽:

"Hello, world!":

代码语言:javascript
复制
class Main inherits IO {
 main() : Object {
   out_string("Hello, world!\n")
 };
};

A simple program for computing factorials:

代码语言:javascript
复制
class Main inherits IO {
 main(): Object {{
   out_string("Enter an integer greater-than or equal-to 0: ");   let input: Int <- in_int() in
     if input < 0 then
       out_string("ERROR: Number must be greater-than or equal-to 0\n")
     else {
       out_string("The factorial of ").out_int(input);
       out_string(" is ").out_int(factorial(input));
       out_string("\n");
     }
     fi;
 }}; factorial(num: Int): Int {
   if num = 0 then 1 else num * factorial(num - 1) fi
 };
};

简单了解之后,一起来看看视频吧,肯定迫不及待了,哈哈哈,最好可以一起动手做做,因为本次视频有实战操作哟

https://v.qq.com/x/page/y0822oo8u79.html

看完视频,来说一说这个COOL可以划分到昨天分类的哪一类啊?

今天天气不错呦,上海6-10°,你的城市多少度啊?冷不冷?此刻是从今往后最年轻的一刻,我要把小心心抱紧,不给你们,哈哈哈。献上菜根谭的一段话,共勉。

给路过的大佬们递上咖啡,正宗蓝山咖啡。

妹子们过来可以拿走图中那支口红,香奈儿58.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 佳爷的后花媛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档