当我们要了解一些编译经典语录的时候,豆豆语录网已经为您备好了这些编译经典语录的内容,等待您的翻阅,相信这些编译经典语录的相关信息会是您正想要阅读的经典语录。
编译经典语录
编译经典语句
如何学习编译原理?个人不太建议一上手就拿起龙书、虎书等等来看。学过编译原理课程的同学应该有体会,各种文法、各种词法语法分析算法,非常消磨人的耐心和兴致;中间代码生成和优化,其实在很多应用场景下并不重要(当然这一块对于“编译原理”很重要);语义分析要处理很多很多细节,特别对于比较复杂的语言;最后的指令生成,可能需要读各种手册,也比较枯燥。 编译原理是用来做什么的?从源语言提取需要的信息;把源语言翻译成目标语言;自动生成满足一定规范的文本...有个东西叫DSL(领域专用语言):从各种格式的数据中提取信息:XML/JSON/CSV/Excel;...各种格式文本的转换:word/markdown...生成到pdf/html/..写爬虫从HTML中抓感兴趣的内容;做网站,实现/修改模板引擎,ORM..自定义描述测试用例规范的脚本,然后自动生成测试用例...心理学实验,按一个简单规范(语法)写描述性句子,就能生成相关的场景图; xx毕业论文答谢词生成模板,这算不算呢。。;发挥想象力,能做的还有很多,如上面 @董成良 就提到用yacc解析法律文本...推荐两本书:《编程语言实现模式》,主要用ANTLR讲解各种例子。《领域专用语言实战》用Ruby、Groovy等语言讲解。(这类书我感觉都写得不怎样,找不到很合适的。。)现在你开始动手了:最简单的应用,可以放下词法、语法分析等概念,直接用你会的语言去实现;有时你会发现写得很”绕“,虽然有了正则表达式会方面不少;然后你可以试着用各种工具:yacc/lex, ANTLR, flex/bison, parsec, ply..用什么无需计较,顺手、达到目标就行。这些工具通常只是方便词法、语法分析, 语义上的要自己处理;不满于处理简单的文本,想分析真正意义上的程序语义,或者希望深入理解自己所用工具的原理,这时候你可以去看那些理论的书了;建议从解释器做起:基本的解释器,很多应用场景下,熟悉下面几个就够了。行解释器:对于非常简单的”语言“,其实可以逐行解析,边解析边做语义的处理。如我做的一个几何题命题的DSL,就是按规范一行行给题目条件,然后会自动生成解题方程组; 在词法、语法解析的过程中做语义处理,经典的例子”计算器解释器“一般都是这样做的。先通过词法和语法分析,生成抽象语法树(AST),然后基于AST做语义分析。 如果对编程语言设计和实现感兴趣,解释器是弄清楚很多概念的窍门,推荐从Scheme学推荐The little schemer,另外R5R标准也才30多页。注意多动手。然后可以看Essential of Programming Language,玩上面的各种解释器。一两本书是不够的,你看的时候很可能还是搞不清很多概念。要善用网络资源,要多动手,选择看更多书也是可以的。 就想做编译器当然,你可以跳过上面的步骤,事实上也没有步骤一说。找一本实践性比较强的,一定要多动手(可以和另外一本理论性比较强的结合者看)比如虎书+龙书(PS:虎书其实有3个版本,分别用Java、C、Ocaml描述,目标是实现Tiger语言比如 @冯东 提到的Compiler Construction: Principles and Practice其他答案答得挺好了..