当前位置: 首页 > news >正文

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

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

指令操作数说明鸟语说明

相关文章:

  • android 位于底部的tab,GitHub - DevinFu/BottomTabBar: Android应用中位于底部的tab栏
  • android studio 程序包r不存在,Android Studio问题!无法解析符号R,找不到与...
  • 麒麟810鸿蒙内核移植,2K魅眼屏+鸿蒙OS系统+麒麟810 华为出大招了
  • C51编程语言的特点 与C的异同点,编程语言异同点归纳之一:注释方法 | 求索阁...
  • 华为鸿蒙系统启示,华为的机遇——鸿蒙系统启示录
  • signature=9721a1ecae6007cb6671337ee094b6b3,Nature Rev Immunol. The dark side of C5a in sepsis
  • html区域滚动原理,实例帮助你了解HTML5滑动区域选择元素Slider element
  • html的语义化怎么理解,关于语义化的HTML结构怎么理解
  • html转换成纯文本,你如何将Html转换为纯文本?
  • html的confirm弹窗样式修改,H5-Mui框架——修改mui.confirm样式
  • html三行三列模式布局,一个CSS上中下三行三列结构的Div布局
  • 2021遂宁高考成绩多久查询,2021年遂宁如何查询中考成绩
  • ncp计算机网络,计算机网络(待完成)
  • 计算机专业的口号运动会四字,运动会口号四字
  • 给div赋html,jquery怎么给div赋值
  • 深入了解以太坊
  • 时间复杂度分析经典问题——最大子序列和
  • [case10]使用RSQL实现端到端的动态查询
  • Apache Spark Streaming 使用实例
  • C++11: atomic 头文件
  • CentOS从零开始部署Nodejs项目
  • C学习-枚举(九)
  • ES6语法详解(一)
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java深入 - 深入理解Java集合
  • LintCode 31. partitionArray 数组划分
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • React-redux的原理以及使用
  • SpingCloudBus整合RabbitMQ
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 大快搜索数据爬虫技术实例安装教学篇
  • 猴子数据域名防封接口降低小说被封的风险
  • 简单易用的leetcode开发测试工具(npm)
  • 深入 Nginx 之配置篇
  • 算法系列——算法入门之递归分而治之思想的实现
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 再次简单明了总结flex布局,一看就懂...
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 第二十章:异步和文件I/O.(二十三)
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • (附源码)计算机毕业设计高校学生选课系统
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)大道至简,职场上做人做事做管理
  • ... 是什么 ?... 有什么用处?
  • .net CHARTING图表控件下载地址
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .net操作Excel出错解决