nread c语言,【转】一些变态的编程语言

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

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),但是堆元素的大小不限制。

堆操作的规则:如果要存储,要先将要操作的堆地址压栈,再把要存储的数压栈,操作时弹出栈顶两元素,将栈顶元素存储到次栈顶指示的堆空间中;如果要取出,要先将地址压栈,操作时弹出栈顶元素,根据其指示的地址取出堆中元素压栈。

指令操作数说明鸟语说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值