当前位置:首页 > 公众号精选 > 程序喵大人
[导读]最近芯片公司挺火的,编译器岗位突然多了起来。不知道什么时候开始,编译原理总被人说成是用来炫耀的“屠龙技”,对此我不敢苟同,编译原理实打实的是一门对你我工作大有裨益的技术。 编译技术简单点说,就是把高级语言的代码翻译成为计算机可以理解和运行的二进制代码的技术。我们经常会碰到需要编译...

最近芯片公司挺火的,编译器岗位突然多了起来。不知道什么时候开始,编译原理总被人说成是用来炫耀的“屠龙技”,对此我不敢苟同,编译原理实打实的是一门对你我工作大有裨益的技术。
编译技术简单点说,就是把高级语言的代码翻译成为计算机可以理解和运行的二进制代码的技术。我们经常会碰到需要编译技术的场景,比如编写界面模板引擎,为项目编写各种各样的 DSL,深度理解甚至开发出 Spring、Hibernate、阿里巴巴 Druid 这样的工具。 除此之外,解析用户输入,防止代码注入,为前端工程师提供像 React 那样的 DSL,像 TypeScript 那样把一门语言翻译成另一门语言,像 CMake 和 Maven 那样通过配置文件来灵活工作,运维工程师分析日志文件等等高级别的需求,都会用到编译技术。 除了实践性强,编译技术在求职中也同样重要。不少大厂在招聘时,都会出一些涉及底层机制、有难度的面试题。 说起来,我很早就被编译器种了草,当时下定决心学,还是因为想加入 tvm 的社区,发现自己这个短板必须得补上。结果跟大部分朋友一样,遇到了俩最常见的问题:没人教、怕看不懂。

如何深入理解并实践编译原理?

如今的快餐式学习,虽然会帮助个人在短期内迅速了解一门技术,但程序员想要保持长期的竞争力,学习底层知识并进行实践,提升专业素养必不可少。 直到后来,我发现了下面这张宫哥做的脑图,图上系统梳理了关于编译技术最核心的概念、理论和算法,收藏价值挺大,我已经存了好几年了:
这张图来自极客时间的专栏《编译原理之美》它在极客时间上订阅量已经超过 1 万 3 了,口碑相当不错。 专栏作者是宫文学,他是北京物演科技 CEO,也是国内最早做 BPM(流程管理平台)和 BI 平台(大数据平台)的创业者之一,第一个公司卖给了上市公司,第二个在新三板上市,后来还做过电子表单和快速开发平台,这些经历与成果都跟编译技术密不可分。当然,他还熟知各种语言编译器的实现机制,实战经验非常丰富。 我当时还顺藤摸瓜找到了他在极客时间的另外一个专栏《编译原理实战》专栏,马上入手了!跟着学下来,收获真的很大,毕竟把知识与实践相结合,才让编译技术真正变成自己手中的高阶技能! 刚好两个编译原理专栏有联合活动,售价 ¥258(129 129),现在到手只要半价 ¥129,我这个月都推荐过好几次了,每次买的朋友都很多,真的非常划算,再次推荐给你们!


扫码立即半价入手 售价 ¥258,立省 ¥129优惠仅 50 份,卖完恢复原价

他是如何讲编译原理与实战的?

不用担心看不懂,不论你是什么语言的背景都能学宫哥的《编译原理之美》就是为了带着大家去了解各门语言背后的知识,所以课程里选了 C 语言、java、javascript 等几门语法看上去都很像的语言来做例子,保证你不会有陌生感,也不会因为掌握的具体语言而卡壳。 宫哥主要从前端与后端两个层面来讲解编译原理的核心技术点,用具体的案例带你理解抽象的原理,帮你建立信心,克服畏难情绪,让你在这个过程中一步步趟过雷区,在工作中真正用到编译技术。


宫哥将编译原理专栏内容分成三部分: 第一部分:实现一门脚本语言主要聚焦编译器前端技术,通过具体实例,带你了解词法分析、语法分析、语义分析的原理,实现一门脚本语言,并用工具提升效率。 第二部分:实现一门编译型语言主要聚焦编译器后端技术,带你了解如何生成目标代码和对代码进行优化,并引入 LLVM 工具,最后生成可执行的文件能支持即时编译,并经过了多层优化。 第三部分:面向未来的编程语言人工智能与编译技术结合是否会出现人工智能编程?这个模块将对编译技术的发展趋势进行分析,帮你更好地把握未来技术发展的脉搏。 有很多朋友,尽管理解了编译原理的理论和概念,但难以做到知行合一,其实,要做到这一点,无非要是搞清楚我们用的编译器,到底是怎么写出来的 只有深入了解现代语言编译器的结构、采用的算法和设计上的权衡,在用编译技术完成一个项目时,你才知道在什么地方该用什么技术——掌握更多编译器的设计和实现思路,作为项目的决策依据 在专栏《编译原理实战》中,宫哥系统梳理了编译原理的核心基础知识,解析 7 大主流语言的编译器源码(Java、Java JIT、Python、JavaScript、Julia、Go、MySQL )。通过大量实战案例讲解,带你掌握真实编译器的实现机制与关键算法,进而站在更加宏观的视角,从编程语言的设计层面理解编译原理。 看完后对我的提升确实有不小的影响,后来社区也成功进了,而且我现在知道如何在不同的技术路线之间做取舍了。最近因为项目需要在回看复习,还收获了一些新的见解和看法。 在学习这三类模块中的语言外,实战中的大部分内容,都是他在读源码,跟踪源码执行过程的基础上梳理出来的。在课程设计上,他会以研究真实编译器的运行原理为主要手段,着力于扩大知识版图,增强实战能力,从而达到「行万里路」的目的。



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

PathWave RFPro 与新思科技定制化编译器相辅相成,可提供无线晶片设计工作流程所需的整合式电磁模拟工具

关键字: 是德科技 集成电路 编译器

在MCU开发和应用中,工程师都需要进行MCU的能力测试,通用的做法是用Benchmark(基准)程序来测试。然而,在做基准测试时,编译器的优化能力也在测试结果中有较为明显的影响,同一套硬件平台,选用不同的编译器和不同的优...

关键字: IAR Systems MCU 编译器

Part1一、让自己习惯C条款01:视C为一个语言联邦C并不是一个带有一组守则的一体语言:他是从四个次语言(C、Object-OrientedC、Template、STL) 组成的联邦政府,每个次语言都有自己的规约。记住...

关键字: TI 函数 ASPECT 编译器

星标「嵌入式大杂烩」,一起进步!来源:www.cnblogs.com/Chaobs/p/4510768.html不知道你有没有想过,某种编程语言的第一个编译器是怎么来的呢?这不就是“鸡生蛋,蛋生鸡”的问题吗?先说最后的结...

关键字: 编译器

在嵌入式开发中,代码的体积和运行效率非常重要,代码体积往往和芯片的FLASH、RAM容量对应,程序的运行效率也要求在相应能力的处理器上运行。在大多数情况下,成熟的开发人员都希望降低代码体积、提高代码运行效率,然而具体该怎...

关键字: IAR Systems 嵌入式开发 编译器

关注星标公众号,不错过精彩内容作者|strongerHuang微信公众号 | 嵌入式专栏为了方便大家平时公交、地铁、外出办事也能用手机回顾查看文章,我特意用心精选,并分类整理了部分文章:多款优秀的支持C、C等多种语言的在...

关键字: 编译器 编辑器 软件

↓推荐关注↓英特尔的长期编译器专家JamesReinders在一篇博客中透露,他们将在下一代英特尔C/C编译器中使用LLVM开源基础架构;并分享了一些相关信息。“LLVM有助于我们实现为英特尔架构提供最佳C/C编译器的目...

关键字: 编译器 英特尔

点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达大家好,我是小麦,上次写过一篇文章《Keil编译太慢怎么办?教你一招,提速10倍 》,减少了中间文件的生成,确实把编译速度提高了很多,其实没有从根本上解...

关键字: 编译器

↓推荐关注↓英特尔的长期编译器专家JamesReinders在一篇博客中透露,他们将在下一代英特尔C/C编译器中使用LLVM开源基础架构;并分享了一些相关信息。“LLVM有助于我们实现为英特尔架构提供最佳C/C编译器的目...

关键字: 编译器 英特尔

程序喵大人

185 篇文章

关注

发布文章

编辑精选

技术子站

关闭