码迷,mamicode.com
首页 > 其他好文 > 详细

编程的魔咒

时间:2015-08-18 06:52:31      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

本来想写一个语法解析器,但现在发展成写一门语言的解释器,为什么会放弃当时的初衷呢?

我首先发现给语法解析器增加功能越来越难,重构越来越复杂,我感到深深的无力。

内嵌代码,变量命名,逻辑判断,这明明就是在设计语言!

那么我如果设计了一门语言,还能完成这个项目吗?

可以,用这门语言的自带的数据结构,这样内嵌代码变得自然,循环和条件判断也顺手拈来。太棒了!

但设计语言,什么时候能设计好呢?好的设计只有一个办法,就是进行无穷无尽的测试。

为什么编程语言那么重要,因为编程语言是被测试最多的工具,最稳定,也最灵活。但我的语言能进行多少测试呢?

我并不是想设计语言,而是不得不走上了这条道路,因为所有的项目做到最后,都隐约的出现了一门语言的身影。

我现在就直面这个隐藏在所有复杂项目背后的语言:

它很像 Lisp,但又不完全是。它用一种数据结构的语法书写代码,这样其中的一部分逻辑就可以改变整个代码本身,扩展成更多的代码。对于我这个能少些一个字母就高兴的懒人,这简直就是福音。

它的语法很舒服,是 a > b 形式,而不是 (> a b) 的形式。它有局部变量声明:my x = 0 而不是 (let (x 0) ( ...) )

我的屏幕大小有限,过多的嵌套会让我迷失。

我给它起名叫 Spp, String Prepare Process, 字符串预处理。我想让你从我的手中实现,虽然你存在于我以前的项目中,时隐时现。

            (my $x 1)

            (our @a [1 2 3])

            (if ( $x == 1) (say ‘$x == 1‘) else (say ‘$x != 1‘))

            (package Spp)

            (my $regex :[\w+])

            { a 1 b 2 }

编程的魔咒

标签:

原文地址:http://my.oschina.net/u/563463/blog/493751

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!