该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
A_Brife_To_GrassMudHorse_Language
本文简要描述了马勒戈壁官方编程语言:《草泥马语(暂定名)》的语言规范,语法和技术规格
Featured, Phase-Design
Updated May 15, 2011 by jcj1...@gmail.com
简介:什么是《草泥马语(暂定名)》
草泥马语是马勒戈壁第一款拥有自主知识产权的,以马勒戈壁上顽强生存的草泥马们为主体的编程语言:草泥马语(暂定名)与本日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),但是堆元素的大小不限制。
堆操作的规则:如果要存储,要先将要操作的堆地址压栈,再把要存储的数压栈,操作时弹出栈顶两元素,将栈顶元素存储到次栈顶指示的堆空间中;如果要取出,要先将地址压栈,操作时弹出栈顶元素,根据其指示的地址取出堆中元素压栈。
指令操作数说明鸟语说明