时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

不想当“螺丝钉”?先搞定编译原理

  • 2019-08-15
  • 本文字数:1715 字

    阅读完需:约 6 分钟

不想当“螺丝钉”?先搞定编译原理

众所周知,编译技术是计算机科学史上的明珠之一。如果说整个互联网的发展是构建在编译技术和编程语言之上也毫不为过。


不过,有的程序员可能会觉得,我也不会去设计一门新的编程语言,有必要学习编译原理吗?学了有什么用呢?


实际上,编译原理不是用于炫耀的屠龙技,程序员在工作中经常会碰到需要编译技术的场景,比如:


  • 编写界面模板引擎;

  • 为项目编写各种各样的 DSL;

  • 深度理解甚至开发出 Spring、Hibernate、阿里巴巴 Druid 这样的工具。


除此之外,解析用户输入,防止代码注入,为前端工程师提供像 React 那样的 DSL,像 TypeScript 那样把一门语言翻译成另一门语言,像 CMake 和 Maven 那样通过配置文件来灵活工作,运维工程师分析日志文件等等高级别的需求,都会用到编译技术。


编译技术,就是把高级语言的代码翻译成为计算机可以理解和运行的二进制代码的技术。掌握了编译技术,你可以获得什么能力呢?太多了,比如:


  • 让你的软件支持公式和脚本,从而具有更强的灵活性;

  • 有能力参与基础软件的研发,因为它们很多都会用到编译技术,比如 Hibernate、Spring、大数据系统等等;

  • 编写特定领域语言,解决领域问题;

  • 写出高效、高质的代码,成为更优秀的开发者;

  • 更好地理解和学习新的语言,降低学习成本,快速跟进技术潮流。


除了实践性强,学习编译技术对于提升程序员的职场竞争力也很重要。


比如,我发现一些大公司招聘程序员时,有难度的面试题都是涉及底层机制的。理解了底层机制,才能更深入的思考问题和解决问题。学习编译原理,能让你从前端的语法、代码优化、与硬件结合等维度,加深对计算机的理解,提升工作中解决疑难杂症的能力。


如今的快餐式学习,虽然会帮助个人在短期内迅速了解一门技术,但程序员想要保持长期的竞争力,学习底层知识并进行实践,提升专业素养必不可少。也许你以后不会成为编译器开发者,但学好编译原理,一定会让你终生受益。

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

很多同学反馈说,知道编译技术的重要性,也很希望能啃下来,但总是会遇到许多问题:


  • 作为底层技术,编译原理出了名的晦涩难懂,学习完全没有头绪;

  • 网络上的资料过于抽象和理论化,篇幅长,讲解枯燥;

  • 畏难情绪严重,学习编译原理简直成了心魔。


为了帮助大家真正克服畏难情绪,更好的理解和实践编译原理,我在极客时间开了课程《编译原理之美》,为此特别梳理了一个知识框架图,希望帮你快速、直观地了解我们的知识结构体系。


我是谁?

我是宫文学,现任北京物演科技 CEO。本科毕业于北京大学,硕士毕业于中科院。我是国内最早做 BPM(流程管理平台)和 BI 平台(大数据平台)的创业者之一,2016 年还入选了厦门市第九批“双百计划”领军型创业人才。


我曾经以 3 个人的团队,用编译技术做了一些硬核的产品原型,然后就跟联想集团签订了战略级合作协议,之后我又做过电子表单和快速开发平台。我参与的第一个公司被上市公司收购,第二个在新三板上市,而这些成果在一定程度上受都益于编译技术。

我会如何讲解编译原理?

在这个课程里,我会从前端与后端两个层面来讲解编译原理的核心技术点,用具体的案例带你理解抽象的原理,帮助你建立信心,克服畏难情绪,让你在这个过程中一步步趟过雷区,在工作中真正用到编译技术。



课程具体分为三个部分:


第一部分:实现一门脚本语言


主要聚焦编译器前端技术,通过具体实例,带你了解词法分析、语法分析、语义分析的原理,实现一门脚本语言,并用工具提升效率。


第二部分:实现一门编译型语言


主要聚焦编译器后端技术,带你了解如何生成目标代码和对代码进行优化,并引入 LLVM 工具,最后生成可执行的文件能支持即时编译,并经过了多层优化。


第三部分:面向未来的编程语言


人工智能与编译技术结合是否会出现人工智能编程?这个模块将对编译技术的发展趋势进行分析,帮你更好地把握未来技术发展的脉搏。

学习完课程,你能收获什么?

1.系统掌握编译器核心技术


2.手动实现解释型和编译型 2 门语言


3.4 大案例剖析编译技术的实际应用


4.编译技术的趋势解读


1 分钟看看目录,为了帮你更加体系化的掌握编译器核心技能,我将内容精简到了 30 多节,但绝对干货满满,能让你真正学懂、落地实践编译原理。



《编译原理之美》限时订阅福利


戳我订阅,输入优惠口令:bianyi666


到手价 ¥63,仅前 500 人有效


2019-08-15 11:268587

评论

发布
暂无评论
发现更多内容

软件测试 | 测试开发 | 浅谈测试需求分析

测吧(北京)科技有限公司

测试 需求 用户需求分析

Meta公司内部项目-RaptorX:将Presto性能提升10倍

Alluxio

presto Alluxio #Facebook meta 9月月更

软件测试 | 测试开发 | 测试人生 | 双非学历,从外包到某大厂只用了1年时间,在2线城市年薪近30万,我柠檬了......

测吧(北京)科技有限公司

软件测试 | 测试开发 | 从跨专业手工测试转岗外包,再到 Python 测试开发,跳槽涨薪 85%!

测吧(北京)科技有限公司

软件测试 测试

AI 时代的视频云转码移动端化——更快、更好、更低、更广

ZEGO即构

AI 音视频开发 视频云转码

NFT拍卖交易系统开发NFT商城

薇電13242772558

NFT

软件测试 | 测试开发 | 测试人生 | 从传统行业到名企大厂,薪资翻倍,我做到了

测吧(北京)科技有限公司

软件测试 测试

IDaaS 系统ArkID一账通内置插件:图形验证码认证因素的配置流程

龙归科技

单点登录 Idaas

The main application of radio technology in aerospace field/IPQ4019 IPQ4029 ,802.11AC 2x2 2.4G&5G

wallys-wifi6

IPQ4019 ipq4029

干货|app自动化之如何参数化用例

霍格沃兹测试开发学社

云原生数据库极致弹性体验 - Amazon Aurora Serverless v2

亚马逊云科技 (Amazon Web Services)

数据库 云原生

软件测试 | 测试开发 | 测试人生 | 拿到多个 offer 从了一线互联网公司并涨薪70%,90后小哥哥免费分享面试经验~

测吧(北京)科技有限公司

软件测试 测试 offer

软件测试 | 测试开发 | Jenkins job 机制该如何使用?

测吧(北京)科技有限公司

测试 测试工程师

干货|app自动化测试之Andriod WebView如何测试

霍格沃兹测试开发学社

干货|app自动化测试之Appium 原理 与 JsonWP 协议分析

霍格沃兹测试开发学社

赋能企业敏捷开发的低代码平台

力软低代码开发平台

软件测试 | 测试开发 | Hybird app开发入门之Native和H5页面交互原理

测吧(北京)科技有限公司

软件测试

软件测试中的『草莓酱定律』

BY林子

敏捷测试 草莓酱定律 温伯格

软件测试 | 测试开发 | Linux下的Nginx内存泄露定位

测吧(北京)科技有限公司

nginx Liunx 测试开发

软件测试 | 测试开发 | 测试人生 | 双非院校跨城重新开始,薪资翻了2倍还多,这个90后小姐姐好飒

测吧(北京)科技有限公司

测试 测试工程师

软件测试 | 测试开发 | Jenkins 持续集成体系介绍

测吧(北京)科技有限公司

软件测试 测试

软件测试 | 测试开发 | 测试人生 | 97年双非学历的小哥哥,2线城市涨薪100%,我酸了......

测吧(北京)科技有限公司

软件测试 测试

软件测试 | 测试开发 | 测试人生 | 毕业2年,拒绝独角兽入职名企大厂涨薪10万+,这个95后小姐姐好飒

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试人生 | 年薪50w+ 并入职名企大厂,这是双非学历小哥哥给自己30岁的礼物

测吧(北京)科技有限公司

软件测试 测试

软件测试 | 测试开发 | 测试人生 | 双非院校、入职某知名电商公司薪资翻倍还有股票奖励,这个90后小姐姐也太飒了吧?

测吧(北京)科技有限公司

测试 面试题 软件测试面试题

瓴羊智能客服,基于钉钉重磅推出一体化的智能服务解决方案

瓴羊企业智能服务

内存管理:程序是如何被优雅的装载到内存中

C++后台开发

内存管理 Linux内核 内核源码 内核开发 嵌入式开发

软件测试 | 测试开发 | ADBLib 在 android 中的使用

测吧(北京)科技有限公司

android 测试

软件测试 | 测试开发 | 多种框架小程序测试环境构建总结

测吧(北京)科技有限公司

软件测试 测试

软件测试 | 测试开发 | 测试人生 | 三十而立终圆大厂梦,测试开发开启新征程

测吧(北京)科技有限公司

软件测试 测试 测试开发

Python图像处理丨带你认识图像量化处理及局部马赛克特效

华为云开发者联盟

人工智能 企业号九月金秋榜

不想当“螺丝钉”?先搞定编译原理_语言 & 开发_宫文学_InfoQ精选文章