定制自己的编程语言

  • 你是否厌倦了学习新的编程语言,去仔细理解设计者各种奇葩的设计?
  • 你是否因为长期不用一种语言,而忘记了这些语言的所谓许多特别之处?
  • 你是否因为工作需要,不得不忍受各种语言的种种限制,去编写各种算法?

现在有了一种解决这种问题的好办法,设计自己的计算机语言:

	符合自己习惯的语法
	能自动转换成工作语言
	把语言的各种奇技淫巧都隐藏起来

我已经实现了这个愿望,设计了一种自己的计算机语言:

MyLang

这门语言没有采用任何教科书上使用的编译技术,而是用了一种语法分离的解析技术。让设计语言变得异常简单。因为并不需要设计一堆解析代码,也不要设计复杂的语法树数据结构,更不需要设计底层运行语言,只需要设计自己的语言语法,就能容易的拥有自己的计算机语言。

也就是说

	普通程序员也能设计自己的语言

这个项目绝大部分代码是用自己的语言书写的,编译运行,都是转换成别的语言来运行,对我来说:

	别的语言都是底层语言

我可以用一种风格书写代码,但可以生成 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

想关注这个项目,一起学习设计自己的语言,轻松一点,胜人一筹!

https://gitee.com/str/myspp

欢迎私信讨论。

转载于:https://my.oschina.net/u/563463/blog/3069925

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值