1
Cofyc OP 不知道如何贴代码,用 "----" 代替了缩进。
|
2
Cofyc OP 补充:macosx 下开发,还没 port 到 linux
|
4
ultragtx 2012-08-29 23:40:14 +08:00
nb
|
5
miaoever 2012-08-29 23:43:34 +08:00
也想自己寫門語言,但不知道該從何做起,看過本編譯原理的書,感覺偏理論,實踐上不知道該如何一步一步下手,請樓主指教,多謝。
|
7
Cofyc OP @thedevil7 下手总是从最开始的入手。
1+2*3 这是一个算式,但也是大多语言的一部分。如果你看过编译原理,里面会提到 lex, yacc 等工具,分别是词法和语法解析生产工具(目前主要使用其后代,re2c,bison等)。而这些工具的手册里就有如何实现一个计算器的范例。可以从这里开始实践并学习。 |
8
haiyang416 2012-08-30 00:14:37 +08:00
只为了鼓励下楼主。
|
9
udonmai 2012-08-30 00:16:23 +08:00
赞~ 最喜欢能做到自己想做的事的人了!
|
10
Cofyc OP @thedevil7 最开始 -> 最基础
之后去逐步了解编译器、解析器的组成与运行环节,了解参与其中的数据结构及其实现等等。 我看的编译原理书是"龙"书 (Compilers: Principles, Techniques, and Tools),对这方面讲解的非常好。 最好对照一门开源语言一起看,推荐 Python 和 Lua。这两门语言的语言,是我读起来最容易,也是我个人偏好的代码编写方式。 慢慢地让自己草稿上的符号变成程序中有意义的部分,然后设计语法,让它们动起来。 还有就是,思考语言本身,以及何为语言很重要。 |
11
Cofyc OP 语言的语言 -> 语言的源码
悲剧,ipad 上打了好多错别字,不好意思。。。 |
14
Cofyc OP 主贴没法修改了,不过只是语法示例,这样缩进看上去也很不错。
|
15
DeepBlue 2012-08-30 15:14:32 +08:00
理想和兴趣是最值得赞扬的
Linux诞生的时候世界上也不缺OS么。。 语言设计我是彻底的门外汉,无能评论,但是我有个建议不妨考虑一下。 给语言定一个定位。 像PHP致力于WEB开发,Lua专注于嵌入式,Go的定位貌似是系统开发? 给语言一个明确的定位会给自己一个方向与目标,也能直观的让别人知道这语言能做什么。(当然,如果定位是学习就当我没说…… |
16
dn 2012-08-30 18:03:35 +08:00
可能不会去用这个东西,但是还是支持一次。造轮子的过程应该能学到很多东西。
|
17
zxy 2012-08-30 18:24:49 +08:00
|
18
zxy 2012-08-30 18:26:10 +08:00
囧,勘误,贴错了,不认真的后果
http://gist.github.com/3525706 |
19
cabinw 2012-08-30 18:28:44 +08:00
鼓励!
|
20
jimbray 2012-08-30 18:36:02 +08:00
NB
|
21
Js 2012-08-30 18:54:34 +08:00
赞, 话说那两例子除了True和None,整体好有lua的赶脚
|
23
Hualin 2012-08-30 19:17:49 +08:00
好赞 v2ex 上也有这样另类的GEEK
|
24
Cofyc OP @DeepBlue 关于定位,一直在思考,只是能定什么位与能做出什么直接有关,等能站在前人的肩膀上,才能确定吧。虽然目标确定,但主要以学习为主。感谢建议 ;-)
|
25
Cofyc OP 关于语法,Lua/Python/Ruby 是我直接的借鉴。
三者语法都是极简。我在设计语法时,也是不允许一点冗余。 一些地方比它们还要简单,比如合用 then/do。当然目前语言还很小。 |
26
iminto 2012-08-31 09:54:25 +08:00
跟lua 比较接近
|
27
adow 2012-08-31 10:20:37 +08:00
LZ NB 啊
|
28
lemonleo 2012-12-10 22:05:05 +08:00
顶楼主,很GEEK
|