注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BA5AG的博客

业余电台 Arduino RaspberryPi

 
 
 

日志

 
 

The Made Up Programming Language  

2013-12-05 19:14:56|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
PPL课的作业要求,是做一个简单的语言的解释器的设计,重点在于让大家理解一个语言的实现过程。
这个语言在上课的时候没有定义名字,宁可同学整理了上课的笔记给我的时候,用的文件名是:
MadeUpProgrammingLanguage。我觉得这个名字挺好,我们就这么定了吧。MUPL,造出来的编程语言,杭州话的意思就是“假的编程语言”,多好的名字!

基本类型:
数字,字符串,列表,布尔
数字:
以[0~9]或'-'开头
不区分整数,浮点数
字符串:
以双引号""包含
串内可是任意字符,可写可读
列表:
以方括号[]包含,以逗号,分隔
元素可是任意类型
元素类型可不一致
操作:
操作名+参数
基本原语:
make <string> <value>
将<value>绑定到<string>上
如果<value>的形式是包含两个列表元素的列表([<list1>, <list2>])的形式,也认为是一个函数
<list1>作为参数列表
<list2>作为操作列表
thing <string>
返回<string>所绑定的值
print <value>
输出<value>
input
返回一个从标准输入读取的值,读取一个值
inputline
返回一个从标准输入读取的值,读取一行
运算符
add, sub, mul, div, mod
<> <number> <number>
数值运算
and, or
<> <bool> <bool>
布尔运算
not
not <bool>
取反
if <bool> <list1> <list2>
如果<bool>为真,则执行<list1>,否则执行<list2>
cat <list1> <list2>
列表操作,将<list1>和<list2>合并成一个列表
join <list> <value>
将<value>作为<list>的最后一个元素加入到<list>中
first <list>
返回<list>的第一个元素
butfirst <list>
返回<list>除第一个元素外剩下的列表
函数定义和调用:
定义:
make <string> [<list1>, <list2>]
<string>为函数名
<list1>为参数列表
<list2>为操作列表
调用:
<functionName> <arglist>
<functionName>为make中定义的函数名,不需要双引号""
<arglist>是参数列表,<arglist>中的值和函数定义时的<list1>中名字进行一一对应绑定
  评论这张
 
阅读(157)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018