我的第一个C 项目:手撸编译器
时间:2021-08-19 16:29:22
[导读]总有些读者问我C是如何入门的?我好像一直也没有总结过一篇文章。其实说真的,学习任何一门语言都是靠实践,我现在还清晰的记得,我用C做的第一个项目就是实现一个小型编译器。大二的时候学习编译原理,当时的大作业就是要实现个编译器。当时对编译原理就非常感兴趣,感觉各种词法分析语法分析非常有...
总有些读者问我C 是如何入门的?我好像一直也没有总结过一篇文章。其实说真的,学习任何一门语言都是靠实践,我现在还清晰的记得,我用C 做的第一个项目就是实现一个小型编译器。
大二的时候学习编译原理,当时的大作业就是要实现个编译器。当时对编译原理就非常感兴趣,感觉各种词法分析语法分析非常有意思。最后我也成功的完成了大作业,C 水平上了一个档次,编译原理期末考试也考了96分哈哈。就这么与编译原理结下了不解之缘。
不知道什么时候开始,编译原理总被人说成是用来炫耀的“屠龙技”,对此我不敢苟同。我认为编译技术是目前大家工作中实用性最强的技术之一。 除了实践性强,编译技术在求职中也同样重要。不少大厂在招聘时,都会出一些涉及底层机制、有难度的面试题。因为只有当面试者彻底理解了编译链接等底层机制,他才能更深入地思考和解决问题,这样的人才是面试官想要的,而非盲目地搜索答案、只看表面的人。 所以,学习和掌握编译原理,对我们每个人都意义重大。它会带你从前端的语法维度、代码优化的维度、与硬件结合的维度几个方面,加深对计算机技术的理解,同时提升自己的竞争力。学好编译原理,才能让你的编程水平上一个台阶。 下面这张宫哥做的脑图,图上系统梳理了关于编译技术最核心的概念、理论和算法,收藏价值挺大,我已经存了好几年:
于是,当时顺藤摸瓜找到了他在极客时间的专栏《编译原理之美》,立马入手。追着看完对我的提升确实有不小的影响。最近又在回看复习,收获了一些新的见解和看法,所以也想推荐给你们。 现在买还有个订阅突破 10,000 的优惠,秒杀 口令加起来才 ¥89 ,差不多是今年的最低价了,除非你是新用户,能 ¥59.9 就到手。
秒杀 专属口令「happy2021」立省 ¥40,到手仅 ¥89即将恢复原价 ¥129 专栏作者宫文学,是北京物演科技 CEO,也是国内最早做 BPM(流程管理平台)和 BI 平台(大数据平台)的创业者之一,他参与的第一个公司卖给了上市公司,第二个在新三板上市,这些成果都在一定程度上受益于编译技术。 当然,他还熟知各种语言编译器的实现机制,实战经验非常丰富。 值得注意的是,不论你是什么语言的背景,都能学这门课。因为宫哥的这门课就是为了带着大家去了解各门语言背后的知识,所以课程里选了 C语言、java、javascript 等几门语法看上去都很像的语言来做例子,保证你不会有陌生感,也不会因为掌握的具体语言而卡壳。 在课程里,宫哥主要从前端与后端两个层面来讲解编译原理的核心技术点,用具体的案例带你理解抽象的原理,帮你建立信心,克服畏难情绪,让你在这个过程中一步步趟过雷区,在工作中真正用到编译技术。 课程分成三部分:第一部分:实现一门脚本语言主要聚焦编译器前端技术,通过具体实例,带你了解词法分析、语法分析、语义分析的原理,实现一门脚本语言,并用工具提升效率。 第二部分:实现一门编译型语言主要聚焦编译器后端技术,带你了解如何生成目标代码和对代码进行优化,并引入 LLVM 工具,最后生成可执行的文件能支持即时编译,并经过了多层优化。 第三部分:面向未来的编程语言人工智能与编译技术结合是否会出现人工智能编程?这个模块将对编译技术的发展趋势进行分析,帮你更好地把握未来技术发展的脉搏。 具体每部分内容,来看目录。 别光我说,还收集了一些其他人的评价,供你参考。▽点开可看大图 虽然很多课程都会搭配实战,但其代码能在实际中用的不多,而宫哥介绍的 Antlr 和 LLVM 两个工具,前者能做编译器前端的工作,后者能完成编译器后端的工作,真正做到了帮你用编译技术来解决报表设计等实际问题,这点非常难得。 我粉丝的专属优惠: 秒杀 专属口令「happy2021」立省 ¥40,到手仅¥89即将恢复原价 ¥129
点击「阅读原文」输入粉丝专享口令「happy2021」以 立省 ¥40 入手
大二的时候学习编译原理,当时的大作业就是要实现个编译器。当时对编译原理就非常感兴趣,感觉各种词法分析语法分析非常有意思。最后我也成功的完成了大作业,C 水平上了一个档次,编译原理期末考试也考了96分哈哈。就这么与编译原理结下了不解之缘。
不知道什么时候开始,编译原理总被人说成是用来炫耀的“屠龙技”,对此我不敢苟同。我认为编译技术是目前大家工作中实用性最强的技术之一。 除了实践性强,编译技术在求职中也同样重要。不少大厂在招聘时,都会出一些涉及底层机制、有难度的面试题。因为只有当面试者彻底理解了编译链接等底层机制,他才能更深入地思考和解决问题,这样的人才是面试官想要的,而非盲目地搜索答案、只看表面的人。 所以,学习和掌握编译原理,对我们每个人都意义重大。它会带你从前端的语法维度、代码优化的维度、与硬件结合的维度几个方面,加深对计算机技术的理解,同时提升自己的竞争力。学好编译原理,才能让你的编程水平上一个台阶。 下面这张宫哥做的脑图,图上系统梳理了关于编译技术最核心的概念、理论和算法,收藏价值挺大,我已经存了好几年:
于是,当时顺藤摸瓜找到了他在极客时间的专栏《编译原理之美》,立马入手。追着看完对我的提升确实有不小的影响。最近又在回看复习,收获了一些新的见解和看法,所以也想推荐给你们。 现在买还有个订阅突破 10,000 的优惠,秒杀 口令加起来才 ¥89 ,差不多是今年的最低价了,除非你是新用户,能 ¥59.9 就到手。
秒杀 专属口令「happy2021」立省 ¥40,到手仅 ¥89即将恢复原价 ¥129 专栏作者宫文学,是北京物演科技 CEO,也是国内最早做 BPM(流程管理平台)和 BI 平台(大数据平台)的创业者之一,他参与的第一个公司卖给了上市公司,第二个在新三板上市,这些成果都在一定程度上受益于编译技术。 当然,他还熟知各种语言编译器的实现机制,实战经验非常丰富。 值得注意的是,不论你是什么语言的背景,都能学这门课。因为宫哥的这门课就是为了带着大家去了解各门语言背后的知识,所以课程里选了 C语言、java、javascript 等几门语法看上去都很像的语言来做例子,保证你不会有陌生感,也不会因为掌握的具体语言而卡壳。 在课程里,宫哥主要从前端与后端两个层面来讲解编译原理的核心技术点,用具体的案例带你理解抽象的原理,帮你建立信心,克服畏难情绪,让你在这个过程中一步步趟过雷区,在工作中真正用到编译技术。 课程分成三部分:第一部分:实现一门脚本语言主要聚焦编译器前端技术,通过具体实例,带你了解词法分析、语法分析、语义分析的原理,实现一门脚本语言,并用工具提升效率。 第二部分:实现一门编译型语言主要聚焦编译器后端技术,带你了解如何生成目标代码和对代码进行优化,并引入 LLVM 工具,最后生成可执行的文件能支持即时编译,并经过了多层优化。 第三部分:面向未来的编程语言人工智能与编译技术结合是否会出现人工智能编程?这个模块将对编译技术的发展趋势进行分析,帮你更好地把握未来技术发展的脉搏。 具体每部分内容,来看目录。 别光我说,还收集了一些其他人的评价,供你参考。▽点开可看大图 虽然很多课程都会搭配实战,但其代码能在实际中用的不多,而宫哥介绍的 Antlr 和 LLVM 两个工具,前者能做编译器前端的工作,后者能完成编译器后端的工作,真正做到了帮你用编译技术来解决报表设计等实际问题,这点非常难得。 我粉丝的专属优惠: 秒杀 专属口令「happy2021」立省 ¥40,到手仅¥89即将恢复原价 ¥129
点击「阅读原文」输入粉丝专享口令「happy2021」以 立省 ¥40 入手





