scheme编译器
❶ 新手如何学习编程
熟悉以下关键东西,可以边学边做,定期训练,经常思考,长期积累:
1、语法。
2、基础理论(数学、数据结构、算法等)。
3、设计方法(编程原则、设计模式、框架设计等)。
4、库(核心、基础、UI、扩展、游戏引擎等)。
5、计算机相关(操作系统、网络、图形学等)。
6、领域知识(游戏设计、网站设计等)。
7、开发工具(编辑器、IDE、自动部署等)。
8、项目管理(进度管理、分工协作、Bug管理、版本控制等)。
最普遍也是最重要的能力:创造力。努力分析并理解好做什么以及怎么做。要知道上面那些东西一开始都是不存在的。
具体方法包括:
1、快速阅读入门教程和书籍,适合学习语言和基础库。比如我学Java读的《Java编程思想》,练习题做过一点,然后学ActionScript就没读过书,只读过Adobe官方文档《ActionScript 3.0编程》。
2、阅读库的文档、实例、源码。比如Flash、Flex开发,熟悉官方API很重要,很多细节要具体使用时才注意到,这时候最好做个笔记,虽然我从没看过我的笔记。
3、做一个自己感兴趣或熟悉的小项目,比如我就以黑白棋游戏作为多个语言的试水项目,一样的逻辑,便于把关注点放在语言特点上。
4、自己动手丰衣足食。厨师有菜谱,程序员可没菜谱。比如我做游戏,最关键的游戏编程知识全部是动手学出来的,很少有专门针对某个业务领域(如游戏)的编程书籍,要么是入门书,要么是模式书(如算法)、理论书(图形学),很少有书籍教你如何开发一个45度角地图系统加编辑器的,全靠自己思考,以及看前人的代码,需要时找些网络资料。关键是,可以培养最重要的创造力。
对于算法和设计模式,可以研读下,但是关键还是靠平时如何使用了。新手勉强不来的。
项目管理方面的,就得靠工作经验了,多思考多提意见不要只走流程。
❷ Clang 比 GCC 编译器好在哪里
编译速度更快、编译产出更小、出错提示更友好。尤其是在比较极端的情况下。
两年多前曾经写过一个Scheme解释器,词法分析和语法解析部分大约2000行,用的是Boost.Spirit——一个重度依赖C++模版元编程的框架。当时拦姿孝用g++ 4.2编译的情况是:
1.编译速度极慢:完整编译一次需要20分钟
2.编译过程中内存消耗极大:单个g++实例内存峰值消耗超过1G
3.中间产出物极大:编译出的所有.o文件加在一起大约1~2G,debug链接产物超过200M
4.编译错误极其难以理解:编译错误经常长达几十K,基本不可读,最要命的是编译错误经常会长到被g++截断,看不到真正出错的位置,基本上只能靠裸看代码来调试
这里先不论我使用Spirit的方式是不是有问题,或者Spirit框架自身的问题。我当时因为实在忍受不了g++,转而尝试clang。当时用的是clang 2.8,刚刚可以完整编译Boost,效果让我很满意:
1.编译速度有显着提升,记得大约是g++的1/3或1/4
2.编译过程中的内存消耗差别好像不大
3.中间产出物及最终链接产物,记得也是g++的1/3或1/4
4.相较于g++,编译错误可读性有所飞跃,至少不会出现编译错误过长被截断的问题了
当时最大的缺点是clang编译出的可执行文件无法用gdb调试,需要用调试器的时候还得用g++再编译一遍。不过这个问题后来解决了,我不知道是clang支持了gdb还是gdb支持了clang。至少我当前在Ubuntu下用clang 3.0编译出的二进制文件已经可以顺利用gdb调试了册羡。
最后一点,其他同学也有讲到,就是Clang采用的简稿是BSD协议。这是苹果资助LLVM、FreeBSD淘汰GCC换用Clang的一个重要原因。
❸ lisp有什么比较好用的编译器么
因为编译器只是个命令工具没什么叫"好用"的...我假设你问的是"编辑器"而不是"编译器":
首先, 你问的是哪种lisp, 因为lisp有很多种.
如果你需要对所有lisp都好用的编辑器, 估计只有emacs和vim可以满足你要求. 如果只要最常见的那些lisp, 除了这两个一般都有些专门为他优化的插件支持的编辑器, 比如 clojure有lighttable和nightcode, racket 有GRacket 等
如果你真的问的是编译器的话, 请具体说是哪种lisp,因为不同的lisp编译器是完全不一样的, 比如common lisp 我是喜欢 ccl (很多人更喜欢sbcl), 比如scheme的话显然chez是最好得编译器