下一版本编程语言Dem应该具有的功能

前言

关于自制的编程语言的设计,我已经在lang:使用BNF范式设计一个文法lang:总结9种编程语言的语法来设计自己的编程语言Suatin-langlang:谈谈自制编程语言1 这几篇中,写下了诸多矛盾的要求。单单看语句结尾是什么这一点,开始想做成lua那样的可用分号可不用,后来改成必须用换行,到制作中因为不想处理\n了,干脆又全改成了分号结尾——

一开始意气风发打算提供一堆炫酷的功能,想随便花一个月就把一门功能完备的类C语言给做出来,现在却是三个月已过,虽然代码有6000行,但是逻辑混乱不堪,使用的方法特别愚蠢。现在语言也只能做分支和循环,,,,,,难受,做完后也没有什么成就感!我之前一直陶醉在自我满足中吗?果然累不能代表真做事了!做人要轻松点,,,,,

虽然很差,但是这门语言我还是打算做,当然是重做啦!先给来一手丰富的编译原理知识,做一堆百度知道上别人提的问题——百度知道挺好用的,比如有些人和我一样学到了某个程度,他问的问题就给我来了一次测验,共同进步——

这次花了这么多时间,我证明了没有编译原理的知识也能做编程语言!但是如果有了编译原理的知识的话,做的会更好,也会走的更远,不会像现在这样早早停下脚步!

  \;
  \;

Dem要求:

GUI编程,能直接操控窗口。没这个真活不下去,做了好久没有效果能行吗?需要给自己一点刺激,提供给自己一点满足感。之前只想着把IO和文件处理做了,反正什么东西都能用文件表示。现在我的知识没法验证之前想的对不对,毕竟我还没做到那个地方。

字节码,根据大佬@码农翻身
的漫画,字节码部落中和了编译和解释,是发展最好的方式了。既可以根据字节码解释运行,也可以编译成PE文件运行。之后要研究下java虚拟机和java字节码了,自己设计自己的字节码吧。

WebAssembly,听说很牛逼,我就立个旗。(吹牛逼就是要放肆的吹)

支持中文,这点我之前都没试过。。。。

Meta-programming,程序更改程序?之后认真去了解了解,我觉得有趣(也许就是操控文件吧)

静态数据类型,避免错误的类型推导。

大数计算,直接支持特别大的数字的运算,不用像Java里的BigDecimal一样还要特别搞成对象!大数不止是数目大,可能小数也大,反正处理起来相似,区别是各自的精确度不同,要省略的位数和位置也不同。

安全性不重要,速度才重要,速度一定要快,为此可以舍去空间和安全。

异常信息定位准确,这个太让人难受了,很多错误都描述不清楚。描述不清楚的东西就没意义了。

捕获异常,这个没试过,我仅仅给Suatin增加了一个assert;单步调试,捕获异常该怎么做?之后再了解吧。

语法直接抄C++和LUA吧,反正语言的设计也没什么好设计的,设计语言不是个事。像C++一样提供命名空间和类,类的实现只能写在类里面,这点和processing一样。

,很方便的功能,我上次项目里使用了好几个宏,直接替换就不会涉及什么类型检查。

再修改一下,比如语句块不用花括号,而是使用end。

所有的源码文件都是.dem类型

去掉必须从main函数开始的要求,而是像python一样提供一个__main__的属性,表示是否从此文件开始运行的。

数据结构就设计一个vector。同时也就说明Suatin语言需要模板,需要模板也就需要类型推导,,,,,算了,反正类型推导只在模板处使用。
有了vector还不行,还要有字典。。。。不说了,按这个的话,那就没完没了了

分支是if-elif-else,循环do-while改成do-until,和上一个项目一样,满足条件退出循环!
函数调用时,允许不接受返回值。判断时,允许非布尔量,允许赋值——这也是为了速度,减少安全性!减少检查步骤!

支持多线程,提供了GUI能不提供多线程吗?

简单来说

  1. 完整的功能
  2. 有趣的语法
  3. 方便高效
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章