欢迎光临散文网 会员登陆 & 注册

论中文编程语言简单实现~Minecraft指令的更简单编写

2021-07-21 22:45 作者:凌空の猫  | 我要投稿

信息框(“Hello World !”,0,)

                                                        ——易语言,用户最多的中文编程语言

从本人角度上看,易语言本身的语法还是常规编程语言的关键词替代的版本

「#define 主函数 int main(){ 」也能达成相似的功能(虽然易语言真正强大在它的库)

呐,能不能做一门,真正意义上的,中文语法的编程语言呢?

代码给人读的,不是给机器读的!  ——不知道谁说的

换汤不换药预警 & 语法混乱预警 & 表达不清预警 & 莫名其妙预警 & 画饼预警

Index:前言 & 一些信息 & 基本语法 & 编程实例 & 关于Minecraft指令 & END 雀的篇章

Section 1 一些信息

半年多前,我也写过一只「编译器」

该编译器可以基本实现编译功能,但是它存在一些显著的漏洞:

  1. 虽然可拓展性很强,但是在解析奇怪的语法上完全不行

  2. 语法制作非常复杂,而且功能相当有限

  3. 本身只是一个宏定义PRO,很难完成优化任务

故而,在本项目中,本人放弃了先前的制作(毕竟是汇编屑作嘛,还是Python方便)

Section 2 基本语法

本项目中,基本上放弃了常规编程语言的方案,例如,该项目现有申请内存语法如下

    2.1 断句怎么解决?

        断句采用了一种简单粗暴的方式解决:贪心(你就没考虑过i+++++i是什么吗)

        很显然,为了检测句子,最差的情况将会有O(n^2)的时间复杂度进行一次扫描

        如果采用dp,对于长句,运行效率不堪设想,而且更可能出现断句错误

    2.2 为什么要这么设计?

        事情要从我空格键被敲坏送修开始说起……

        才不是因为易语言太不像中文了呢!

本项目为面向对象程序设计(OOP),但是实际处理反而是更像汇编的「段」一点

    2.3 为什么这里的声明变量和先前的申请内存不同?

        UP智商不够,现有的对象实现方案是将「模板」复制生成新的对象

        所以“有”其实相当于汇编中的db 0x00,0x00...

        呐,有十年脑血栓的小伙伴应该已经想到了吧,“有”甚至可以用来定义函数,保证内存位置固定

    2.4 看着好乱啊怎么破

        UP尽量写个VSC,毕竟全都是字没有高亮怪头疼的

        要是有简单易懂又不会看晕又方便快捷的编程语言就好了

    2.5 所以是不是需要「定义Main如下」?

        为了程序的可读性(字面意义)所以就不要了

        对外解释是「整段程序都在 定义Main 下面,所以就不需要了」,实际上就是没写

关于一些语法糖,基本上是在中文语法上拓展,尽量达到便利效果

    2.6 为什么这里突然出现了标点符号?

        符号本身是个可选项,主要目的是便于阅读——

        毕竟汉语太复杂,不刻意断句自己都读不懂,代码是给人读的,不是给机器读的!

    2.7 这有什么意义呢?

        其实这玩意起因是为了方便写汇编,做的一门介于C和ASM之间的东西

        所以就支持了一大堆又底层又高级的四不像玩意……

Section 3 编程实例

(以上除缩进外空格均不需要

Section 4 关于Minecraft指令

毫不夸张地形容:Minecraft指令中,80%以上的内容都是冗余的

短短一句mov ax,bx扔在指令里就是scoreboard players #ax num operation = #bx num

虽然指令有很多可读性强而便利的功能

在部分功能上,很显然,过度的冗余足以让人迷惑

于是乎,大——「设一为二」

现已开发完成Array等相关组件,未来若干天将会上传相关内容与作品

Section End

「孔雀东南飞,五里一徘徊……」

既然有「木兰」在先,不妨命名它为「雀」吧

虽然近乎完全丢失了原文的信息,但以此出发

创造一门信息紧凑,便于阅读的编程语言吧

加油,共勉

论中文编程语言简单实现~Minecraft指令的更简单编写的评论 (共 条)

分享到微博请遵守国家法律