简介:什么是《草泥马语(暂定名)》
草泥马语是马勒戈壁第一款拥有自主知识产权的,以马勒戈壁上顽强生存的草泥马们为主体的编程语言:草泥马语(暂定名)与本日7时正式发行了。草泥马语语法生动丰富,内容健康活泼,是一门老少皆宜,人人适用的编程语言。它的出现弥补了我戈壁在国际编程语言界中的一项空白。
草泥马语是用了先进的JOT(Just Out of Time)编译引擎,并且运行于爪哇虚拟机中,运行速度大幅度降低同时,还使用了戈壁内外各种先进技术,使的草泥马语不十分可靠。
《草泥马语(暂定名)》的语言规范
草泥马语是一款根据国外同类型语言“Whitespace”改编(替换关键字)而成的全新的编程语言,执行时使用“草泥马”的不同组合实现不同功能。
PS:在本文还没有完工之前(但是看起来已经完工了),可以先看Whitespace语言入门,然后吧其中的[Space]替换成草;[Tab]替换成泥;[LF]替换成马就可以了解草泥马语的大致用法了。
每个指令都有3部分组成,包括指令头,指令和可选的操作数
指令头
草泥马语的指令头说明了指令的类型,列表如下:
| 指令头 | 说明 | 鸟语说明 |
| [草] | 栈操作 | Stack Manipulation |
| [泥][草] | 数学运算 | Arithmetic |
| [泥][泥] | 堆操作 | Heap access |
| [马] | 流程控制 | Flow Control |
| [泥][马] | 输入输出 | I/O |
感谢`hyperbolica`同学指出错误
栈操作指令 [指令头:草]
栈用来存储指令调用的参数和结果,元素仅限整数,栈高度不限。
| 指令 | 操作数 | 说明 | 鸟语说明 |
| [草] | Number | 把某个数压栈 | Push the number onto the stack |
| [马][草] | - | 复制栈顶元素 | Duplicate the top item on the stack |
| [泥][草] | Number | 复制第n个元素到栈顶 | Copy the nth item on the stack (given by the argument) onto the top of the stack |
| [马][泥] | - | 交换栈顶两个元素的位置 | Swap the top two items on the stack |
| [马][马] | - | 销毁栈顶元素 | Discard the top item on the stack |
| [泥][马] | Number | 销毁栈顶的n个元素,但保持栈顶 | Slide n items off the stack, keeping the top item |
数学运算指令[指令头:泥草]
注意,草泥马语没有浮点运算,但是整数运算的精度是无限的。
操作规则:操作时先弹出一个栈元素为运算的右值,再弹出一个为左值,计算后将结果压栈。
| 指令 | 操作数 | 说明 | 鸟语说明 |
| [草][草] | - | 加 | Addition |
| [草][泥] | - | 减 | Subtraction |
| [草][马] | - | 乘 | Multiplication |
| [泥][草] | - | 除 | Integer Division |
| [泥][泥] | - | 取模 | Modulo |
堆操作[指令头:泥泥]
与栈一样,堆也只能存储整数,草泥马虚拟机(AlpacaVM)最多支持65536个堆元素(0-65535),但是堆元素的大小不限制。
堆操作的规则:如果要存储,要先将要操作的堆地址压栈,再把要存储的数压栈,操作时弹出栈顶两元素,将栈顶元素存储到次栈顶指示的堆空间中;如果要取出,要先将地址压栈,操作时弹出栈顶元素,根据其指示的地址取出堆中元素压栈。
| 指令 | 操作数 | 说明 | 鸟语说明 |
| [草] | - | 存储栈顶元素x到堆地址为y的空间中,y是次栈顶元素 | Store |
| [泥] | - | 先把y压栈,然后获取堆中地址为y空间的元素到栈顶 | Retrieve |
流程控制[指令头:马]
标记一个程序点可以用来进行跳转或者函数调用,标记是一个任意长度的无符号整数,每个草泥马文件中,标记应该是唯一的,并且所有调用的标记应当存在。
| 指令 | 操作数 | 说明 | 鸟语说明 |
| [草][草] | Label | 定义一个标记 | Mark a location in the program |
| [草][泥] | Label | 调用标记指示的函数 | Call a subroutine |
| [草][马] | Label | 无条件跳转到标记处 | Jump unconditionally to a label |
| [泥][草] | Label | 如果栈顶元素等于0则跳转到标记指示处 | Jump to a label if the top of the stack is zero |
| [泥][泥] | Label | 如果栈顶元素小于0则跳转到标记指示处 | Jump to a label if the top of the stack is negative |
| [泥][马] | - | 函数结束,返回调用处 | End a subroutine and transfer control back to the caller |
| [马][马]或者[河蟹] | - | 无条件结束程序运行 | End the program |
注意:河蟹这个指令仅仅在河蟹这两个字连在一起时有效,分开是没有效果的。(注意更正一个歧义表达,河蟹这个指令是没有指令头的。)
IO控制[指令头:泥马]
| 指令 | 操作数 | 说明 | 鸟语说明 |
| [草][草] | - | 弹出栈顶数字作为字符输出到标准输出 | Output the character at the top of the stack |
| [草][泥] | - | 弹出栈顶数字以数字形式输出到标准输出 | Output the number at the top of the stack |
| [泥][草] | - | 从标准输入内读取一个字符(回车结束)并且放到栈顶(弹出)所对应的堆空间 | Read a character and place it in the location given by the top of the stack |
| [泥][泥] | - | 从标准输入内读取一个数字并且放到栈顶(弹出)所对应的堆空间 | Read a number and place it in the location given by the top of the stack |
如何定义操作数
操作数的定义是二进制的整数,对于流程控制指令来说是无符号的,否则是有符号的,第一位为符号位。
定义方法是:草为0;泥为1;马代表定义结束。对于符号位,草为正,泥为负。
举个例子吧
这是首页的那个例子,输出1到10十个数,具体解释请看首页。
草草草泥马
马草草草泥草草草草泥泥马
草马草
泥马草泥
草草草泥草泥草马
泥马草草
草草草泥马
泥草草草
草马草
草草草泥草泥泥马
泥草草泥
马泥草草泥草草草泥草泥马
马草马草泥草草草草泥泥马
马草草草泥草草草泥草泥马
草马马
马马马
是 多毛猫和甜皮狗 的父类。
1
露过留名围观
路过 跟楼上一起留名围观|
一起围观一下
继续围观
不明真相的围观
围观!
留名
路过 MARK
留名
admire
CHTML ( http://code.google.com/p/chtml/ ) 今天正式和草你马语达成谅解备忘路, 草你妈语 (http://code.google.com/p/grass-mud-horse/wiki/A_Brife_To_GrassMudHorse_Language) 取代汉编, 成为CHTML推荐的脚本语言. CHTML也成为业界第一个支持浏览器中草尼马语的语言
太牛了,留下脚印
凡成年的路过者都有资格获取一匹狂艹氵马, 先来先得后来面mlg壁。
20年后谭浩强开始写《草|泥|马程序设计》
来此观光。。。
围观中
慕名前来围观...
慕名前来围观...
.................
希望你要搞这个就自己买空间、域名,不要害得整个China不能访问google code
实在是...
观光团路过···
@liuyuanzhi
慕名过来围观...
大師啊,最偉大的語言!!
观光。。。
的Space?替换成草;Tab?替换成草; Tab? 是泥吧?
感谢楼上chen3feng同学指出错误,已经改正。
@liuyuanzhi: 貌似在谁害的中国不能访问google code这个问题上,你搞反了。。
路過,大家要好好學習草泥馬語,為國爭光
有人做i18n吗?
潜力,围观,留名
围观之
咋这么多人围观!我也围一个!
囧,围观之
千万别把google code河蟹了
mark~
围观的群众情绪很稳定
passing by. keep up your good work.
观光团
指令头 说明 鸟语说明 [草] 栈操作 Stack Manipulation [泥][草] 数学运算 Arithmetic [泥][泥] 堆操作 Heap access [马] 流程控制 Flow Control [草][马] 输入输出 I/O
是[泥][马]........
输入输出 I/O 是[泥][马]........
围观....
豆瓣观光团面前,一切都是尘埃!
豆瓣观光团到此围观并帮顶。
专业课程,NB!
很好.... 草泥马... CHTML...
围观,却不知——为什么呢? 溜掉~~~
路过。。。
慕名前来围观..
围观中..
慕名而来。<
<汗>瀑布汗~~~</汗>
期待未来的发展
路过好奇者围观
强力围观!
强了插入。
<b>粗</b>
无语了
从matrix67博客上一路杀过来……最终我决定,参与此项目……
nb死了
.................... brainfuck
围观一下……
NBIE
强大。围观
这个项目太鸡巴有创意了
随便酬个热闹。
强大
路过,留名
<强力>吸B</强力>围观团,强力围观
观光
好贴要留名!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
CHTML(中文翻译成:草泥马ML)示例:
<草>
</草>好贴要留名!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
观光
本人目前情绪稳定
是也乎,是也乎,用这个语言重新实现一遍 麒麟系统, 中国就真正拥有了核心OS 了
不顶不行
中国真正国产的语言!
一个字,震撼!两个字,强!支持!
强帖留名。。。
好寂寞..
围观围观 囧囧囧
草泥马前来围观
编译
围观
震惊的来围观!
天朝无处不牛人。
围观
这也行啊
牛啊~
天朝牛人辈出啊!!
god
@liuyuanzhi 害人者乃G匪,非吾辈也
我只能说,人外有人,牛比!
牛人真多啊!
无比震惊!!!
。。。
真是有兴致啊~google感谢你~
不明真相群众围观
旅游经过
暴汗。。。围观
观光...
路过
观光。。。。。。
圍觀
牛~! 太搞了.看简介都把我笑翻了
靠!
一群不明真相的群众进行了惨无人道的围观。。。
sb项目,sb团队
惨不忍围观之:-)
观光留名....
围观一下。。。
有意思!!,支持
围观,必须的-。- 太邪恶了
围观。。
围观!
强力围观!!!!!! 赞叹不已!!!
~\(≧▽≦)/~
不明真相的群众中的一个路过
~\(≧▽≦)/~
草泥马,好马呀
好像是十分之强大——观望中
圍觀
打酱油。请不要跨省追捕。
路过,草一下先!
震精。。。
围观
围观
我也顶!
我只是个围观群众
我只是不明真相的人,继续围观
哥只是路过的
我也是不明真相的人
顶一个!
不明真相者到此一游~
push "d"/0x64 草-草 草泥泥草草泥草馬 push "l"/0x6c 草-草 草泥泥草泥泥草馬 push "r"/0x72 草-草 草泥泥泥草草泥馬 push "o"/0x6f 草-草 草泥泥草泥泥泥馬 push "w"/0x77 草-草 草泥泥泥草泥泥馬 push " "/0x20 草-草 草泥草草草草馬 push "o"/0x6f 草-草 草泥泥草泥泥泥馬 push "l"/0x6c 草-草 草泥泥草泥泥草馬 push "l"/0x6c 草-草 草泥泥草泥泥草馬 push "e"/0x65 草-草 草泥泥草草泥草馬 push "h"/0x68 草-草 草泥泥草泥草草馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬 output stack top 泥馬-草草 stack pop 草-馬馬
前来围观
太二了
前来围观
哈哈 油菜
带老婆儿子,一家人强力围观。。。。。
四进制机器码?
寬廣的馬勒戈壁 景色多壯麗
勇敢的朝尼族人民 歌頌著你
俊健的草泥馬 多么的美麗
一直不停的奔跑 向著那日出的方向
嘿~在馬背上 彈奏一曲 動聽的旋律
迷人的姑娘 她心醉神迷
醉在這馬勒戈壁
卷(Fat.兽)
我今天特意 应邀来到马勒戈壁
传说有一种美丽的神兽它们生存这里
生活在山坡 就在朝尼家的隔壁
它们的眼神忧郁 好像生活总不乐意
在这里一年四季不变都吃着卧草
干旱的环境决定这里雨水没有多少
但是坚强的草泥马 群居在这里
一群群的妆点这美丽的马勒戈壁
这里的草泥马其实分为三种
成年还不不会骑马的那是饭桶
朝尼两次的那匹叫做狂草泥马
只有部族最厉害的骑手才能骑它
热情好客的朝尼两次 接待了我
来到牧场大家围着篝火 欢迎着我
甘甜的草泥马奶 美丽的姑娘
英俊的朝尼 两次弹琴对我歌唱
Chorus
小六
嘿~在马背上 弹奏一曲 美妙的旋律
远方的客人 我们祝福你
欢迎来马勒戈壁
CrazySix?
遠方來的客人請您聽我說
對您的祝福來自我的心田
為您獻上美酒 還有馬奶的甘甜
請您隨我的歌聲一起 遊覽這平原
這裡到處長滿茂盛的臥草
甜美多汁馬勒戈壁的驕傲
只有它 才能撫育草泥馬長大
因為它 這的風景才能更勝一幅畫
點燃篝火 朝尼大爺他彈著馬頭琴
能歌善舞的朝尼姑娘 奔放又熱情
一起狂歡吧 一起狂歡吧
讓我們一起打著手鼓唱著歌
希望你會開始喜歡上這裡
喜歡上這壯麗的馬勒戈壁
用臥草編成草環獻給您
當您離去的時候別忘了騎上 草泥馬
(朝尼哥,这草泥马咋越来越少哇?)
(哎哟,那草泥马吃卧草才能活的是不?
那卧草都被河蟹给吃光喽!)
(那河蟹是嘛玩意呐?)
(你想知道?小伙子,听我接着唱呗,来勒!)
CrazySix?
听说它本来应该生长的地方
是在那银迹岸的咪子河
也不知道为什么 来到了这里
来到这马勒戈壁
它根本就不通人性 见草就拔 光
有着坚硬外壳 也没办法杀 完
卧草在变少 草泥马该怎么办
美丽的它 该怎么办
嘿~在马背上 我在烦恼
美丽的草泥马 该怎么办
太牛了,哇哈哈,作者是不是被河蟹憋疯了?
看來,雅克蜥 語也快面世了!
兄弟,人才啊!
前来膜拜啊知道的太晚了
MARK
河蟹
河蟹与草泥马不得不说的故事。
哇塞!好神奇唉!
哎呀.
牛
实在是................
该项目作者除了是个流氓,还是个无奈,叛国叛民族,是个实足的垃圾败类,只敢在幕后施展邪恶的小伎俩,绝没勇气出来直面它辱骂的民族。这样的垃圾是做贼心虚,它以为在网络上可以随意辱骂恶搞一个民族,但又怕被这个民族把它诛灭九族,所以只敢常于阴暗的角落做恶,你有种就出来暴露一下身份,如果不敢暴露,像你这样的小人也会很快被灭掉。
楼上果真是个纯爷们……在下佩服……很有民族激情,请继续发扬…… 中国真是少了这种很有种的青年啊,哈哈…… 不想反驳你,公道自在人心,在对这个项目没有任何了解的情况下,就公然在这儿喷,你也算是古今第一人*啊……你的种可是种错地方*了…… 还有,看似你文采还可以嘛……不过就是很多词都用错了地方…… 比如说,不要动不动说民族,很对得起民族,并且敢于直面民族的告诉你:你在混淆概念。 “辱骂民族”这个罪名我们可是担当不起的,不过看你的留言,貌似我找到了能担当起这个罪名的人了……我真想问一句,不会你真觉得你说的这些话很对得起民族吧?你如果真想对的起民族,你就睁开眼睛好好看清楚了!用你那自以为是的大脑冷静的思考一下!不要动不动就喷这个喷那个的,河蟹*社会,你懂不懂啊?文明上网,你懂不懂啊? 想不明白的话可以发邮件问我,GT也可以,本人随时恭候(我的邮件地址请到issue回复里面找,这么做的目的仅仅是想让你真正了解一下这个项目,好吧,看样子你根本看不懂……)。本人相应号召,实名制已久了,有机会的话可以一起喝茶呵…… 我有权利删你的这个贴,但是我不会这么干的,因为留着的好处要大得多……(好好跟着学吧,学会了可以报销祖国的……)
我们纷纷表示此乃强帖
强大。。。
知止则智
路过,帮顶
伟大顶了~
五毛无处不在。
内牛满面。。。。
;mark
强力插入,指令太搞了,有点晕了
兄弟,人才啊!
指令头应该有创造性地添加一个“强制和谐”,这才能体现该语言的强悍性能!
很给力啊,路过
正宗安溪铁观音 保证货源 品质优秀 联系QQ:184311949
路过 MARK
mark。。。。。
人才! www.01is.com
草泥马 哈哈··我顶顶牛话都被别人说了强力插入 www.qqa0.dcom
表示围观~
mark++
强力插入
[草] //压栈入一个
好玩噗~真能用这玩意编的话~就很累也会觉得有趣的
强烈顶起
好厉害...
围观众人围观
继续围观
强烈围观+MARK+顶起
人都走光了哈,正好围观
qingda
mark
E.. 哪天用C的宏玩玩
厉害啊
强帖留名
= =我也围观.
围观
围观
好吧,我不得不围观一下。。。
Er...似乎第一段中“国际语言届”的“届”应该是“界”吧?
谢谢楼上提醒,已修正……
强大
"并且运行于Java虚拟机中" 不应出现鸟语吧? 建议修改为"并且运行于爪哇虚拟机中"
不明真相的群众围观~~
不明真相的群众围观~~
马勒戈壁风光好 草泥马们在吃草
貌似挺无聊的。。。
闷的如此低调,骚的如此搞笑
神器
卧槽 神器.
强帖留名 万一火了呢
卧槽这个屌!
弱弱问一下,草泥马语是图灵完全的吗?
回楼上:草泥马语衍生自http://compsoc.dur.ac.uk/whitespace/index.php?(以下简称WS),由于WS是图灵完全的,所以草泥马语也是图灵完全的……实际上草泥马语的虚拟机模型(即WS虚拟机模型)是一个简化衍生版的通用计算机模型,只不过使用一种特殊的指令系统而已……它与通用计算机的运算器、存储器和控制器在模型上都有相似之处……所以直观上来说,其图灵完备性是无可厚非的……
围观,神器~!
围观一下,真是强大啊
围观需谨慎..
围观需谨慎
祖国语言好强大呀
留名,流氓,天朝的程序猿都V5啊!
。。。
......
强贴留名!!!!!
娱乐也要认真~
留名
喔
这精神实在无懈可击
碉堡了!!
比汇编还难懂
#围观!
无数人围观,我也来参一脚嘿嘿
what a gmh this is