- 你是否厌倦了学习新的编程语言,去仔细理解设计者各种奇葩的设计?
- 你是否因为长期不用一种语言,而忘记了这些语言的所谓许多特别之处?
- 你是否因为工作需要,不得不忍受各种语言的种种限制,去编写各种算法?
现在有了一种解决这种问题的好办法,设计自己的计算机语言:
符合自己习惯的语法
能自动转换成工作语言
把语言的各种奇技淫巧都隐藏起来
我已经实现了这个愿望,设计了一种自己的计算机语言:
这门语言没有采用任何教科书上使用的编译技术,而是用了一种语法分离的解析技术。让设计语言变得异常简单。因为并不需要设计一堆解析代码,也不要设计复杂的语法树数据结构,更不需要设计底层运行语言,只需要设计自己的语言语法,就能容易的拥有自己的计算机语言。
也就是说
普通程序员也能设计自己的语言
这个项目绝大部分代码是用自己的语言书写的,编译运行,都是转换成别的语言来运行,对我来说:
别的语言都是底层语言
我可以用一种风格书写代码,但可以生成 Python,PHP,Ruby, C, Lua, GoLang ... 等许多的语言。
如果学习一门新语言,在把这门语言所有的特别之处,集成到 MyLang 语言的转换代码中后,就不会去关心这些让人讨厌的东西了,只是需要关注这门语言的模块功能,新的类的功能。
先分享一下这种简洁的代码风格:
fn match-rules($c:Cursor $rules) str
my $gather PASS
for $rule $rules.atoms {
while $c.readchar.isspace $c.at.inc
my $match $c.match-rule($rule)
if $match == FAIL return FAIL
set $gather $gather.gather($match)
}
return $gather
想关注这个项目,一起学习设计自己的语言,轻松一点,胜人一筹!
欢迎私信讨论。