
词法分析器和语法分析器都要手写,代码量 5000 行左右吧,不知道该写啥语言,最近期末时间也比较紧张,龙书都还没有看完,感觉如果自己总结 LL1 文法的话,是一件很蛋疼的事.
没在 Google 上搜到合适的教程...很多都是写到一半就断更了...Coursera 上有一节编译器的课,可是没有字幕看起来好费劲.
求各位 V2er 推荐一门靠谱的语言来写...有教程推荐更是极好的....
最搞笑的是这门大作业不是编译原理的...是软件构造的(课本是代码大全)..
1 eb0c6551 2015 年 12 月 14 日 via iPhone 平心而论,如果一门课要求写编译器,但没有提供一门语言的子集以及一定的程序框架,就实在是太坑了。 |
2 SkyEcho OP @eb0c6551 是啊,虽然没要求最后能链接执行,但大体上我觉得还是应该要写出来的, 其实老师本来的目的是按小组分工,体验合作写代码,但大学环境大家都懂的,一个程序猿带三个文档手 |
3 tabris17 2015 年 12 月 14 日 pascal 或者 basic 最简单了 |
4 wildlynx 2015 年 12 月 14 日 How about The "Brainfuck" programming language? |
5 easing 2015 年 12 月 14 日 参考 lua 的语法,不到一页纸,还可以做适当简化,根本用不到 LL LR 等自底向上的,直接递归下降就搞定了,不需要 5000 行。后端建议找一个 VM 平台或者写一个简单的 VM 作为目标代码,省心。 |
8 josephpei 2015 年 12 月 14 日 coursera 上的课都有英文字幕。斯坦福的那个 Compiler 课,作业是 COOL 教学语言,生成 mips 指令,用 mips 模拟器执行。其它有些大学是用 llvm 后端。 |
9 V69EX 2015 年 12 月 14 日 最简单的莫过于汇编语言的编译器了! |
10 silenc1 2015 年 12 月 14 日 我们学校编译原理教材用的是《编译原理及实践》,当时写的是教材上 C Minus (简化版的 C ),书结尾有代码 |
11 qdwang 2015 年 12 月 14 日 写 scheme ,不用语法分析了 |
12 shoumu 2015 年 12 月 14 日 我们当年写的 C0 , C 语言的子集 |
13 yunying 2015 年 12 月 14 日 我大三编译原理的期末实验就是要做一个语法分析和词法分析器。词法分析器选用的是 C/C++语言,核心是实验有限状态自动机就行,然后定义好你自己的规则即可,还算比较简单。不过语法分析做的是 TINY 语言(一个经过精简的用于教学,是当时上课教材里用的),核心直接使用递归下降方法,不过要在词法分析的基础上做的。 |
14 integer 2015 年 12 月 14 日 参考虎书,有个 tiger 编译器,基于 java 的 |
15 josephpei 2015 年 12 月 14 日 有本书叫《编程语言实现模式》,用 java ANTLR( the next generation of flex/bison for java),从头开始一步步写个简易编译器(基于 JVM ),该书理论讲的很少,基本都是实践过程。 Udacity 上也有门课,用 python (pyFlex/pyBison)写个简单编译器。 Udacity 的特色也是社会培训班类型,不讲理论,只讲实践过程。 |
16 jiang42 2015 年 12 月 14 日 via iPhone 果断 Lisp 啊 |
17 dndx 2015 年 12 月 14 日 我都是 C++、 Bison 和 YACC ,写起来还是挺简单的。 |
19 pynix 2015 年 12 月 14 日 lisp |
20 clino 2015 年 12 月 14 日 写 lua 的吧 |
21 yunying 2015 年 12 月 14 日 |
22 china521 2015 年 12 月 14 日 @a302800411 这助教就是残. 课堂学不到东西的, 应付下就行了,关键在于自学, 超着自己的兴趣发展,不然毕业会后悔的, 最宝贵的学习时光. |
23 zts1993 2015 年 12 月 14 日 C 子集,难道你想写 C++? |
24 dinghim 2015 年 12 月 14 日 果断 BrainFuck 啊.. 很好写的! |
25 dinghim 2015 年 12 月 14 日 http://www.muppetlabs.com/~breadbox/bf/ Brainfuck 相关介绍. 底下的链接有编译器的实现 |
26 Madeline 2015 年 12 月 14 日 写个功能强大的递归下降解释器其实更实际一点。 我编译原理的大作业就实现了一个精简版 C 语言风格的 matlab 。 |
27 oaix 2015 年 12 月 14 日 手写词法分析器和语法分析器其实有点蛋疼,还是选择 scheme 吧? |
28 codecrash 2015 年 12 月 14 日 via Android 当然 scheme |
29 jsq2627 2015 年 12 月 14 日 https://parasol.tamu.edu/courses/decaf/students/ 试下这个 Decaf Compiler 吧。我们去年编译原理实验内容就是做这个。难度适中,做大作业也挺合适。 |
30 hqs123 2015 年 12 月 14 日 scheme 可以试下 |
31 icymorn 2015 年 12 月 14 日 http://icymorn.github.io/lambda-lite-js/ 这是我用 js 写的小语言,很简单,可以参考一下. 名字很中二。哈哈哈哈 |
33 lao454490095 2015 年 12 月 15 日 brainfuck 吧,哈哈哈哈,省心! |
34 SkyEcho OP @lao454490095 @dinghim 能凑够 5000 行嘛主要这玩意还有行数要求 |
35 lao454490095 2015 年 12 月 16 日 @a302800411 不能, brainfuck 几百行的样子。。。 |