编译原理实战课,我们到底要学些什么?

在这门课程里,宫老师精选出了Java、Java JIT、Python、JavaScript、Julia、Go、MySQL这7种真实编程语言的编译器,带你阅读它们的源代码,跟踪它们的执行过程,弄懂它们的运行机制。在这个过程中,你会获得对编译器的第一手理解,并能够与自己理解的编译原理知识相互印证。

另外,宫老师还会带你分析和总结这些现代语言的编译器的结构、所采用的算法和设计思路,帮你更好地理解和把握一门现代语言的特性,让你对新一代语言的设计思考有拨云见日的通透感。

有些语言我都没接触过,解析这些编译器,我能学得会吗?我学了又有什么用呢?能学得会吗?

当然可以了。在课程中,宫老师会梳理出这些不同语言编译器的源代码的重点和核心逻辑,并且会结合易懂、易读、易动手操作的示例程序,来带你一步步理解它们是如何运行的。

另外,其实你并不需要担心语言不熟悉的问题,因为现代的高级语言,相似度是很高的,即使是你不熟悉的语言,你也照样可以写一些基本的、试验性的程序,研究它的实现机制。

而且,学习编译原理的人会练就一项基本功,那就是更容易掌握一门语言的本质。我们这门课就是要帮你成为钻到铁扇公主肚子里的孙悟空,研究某一种语言的编译器,当然有助于你通过“捷径”去深入地理解这门语言。学了有什么用?

学好编译器前端技术,你能为软件增加各种自定义功能、能够实现自己的DSL,甚至实现完整的前端解析器(比如SQL解析器); 学好编译器后端技术,你能写出更容易优化的代码,洞悉让代码性能更高的秘密,以及采用后端工具快速实现一门完整的语言。

不仅如此,通过分析真实编译器的代码,你能洞悉实现一个完整编译器的各种细节。当你把编译技术用于一个项目时,你就会了然于胸,应该在什么地方使用什么样的技术。因为你已经见识过了各种编译器的实现方式,因此能够权衡和取舍。对你而言,编译原理,不再仅仅是原理,而是随时可以出击的利剑!

这个课程和之前宫老师的《编译原理之美》专栏课有什么区别?

《编译原理之美》专栏课是从前端与后端两个层面来讲解编译原理的核心技术点,用具体的案例带你理解抽象的原理。宫老师说,这门课是带你在编译原理的世界里“读万卷书”,目的就是帮你一次性掌握编译原理最核心的概念、理论和算法。通过这门课,你能真正克服学习编译原理的畏难情绪,可以真正运用编译技术解决报表设计等实际问题。

《编译原理实战课》是从实战的角度切入,是学习编译原理的“行万里路”,老师会用你最擅长的写代码、读代码的方式,来带你分析真实的编译器到底是怎么写出来的。通过研究多种编译器,你可以多次迭代对编译器的认知过程。并通过分析对比,你能发现这些编译器之间的异同点,激发出更多的思考,从而能得到更全面的、更深入的认知。在解析编译器的过程中,你也能更深入地把编译原理知识与实践相结合。

课程模块设计

课程主体分为三个模块。

预备知识篇:简明扼要地梳理编译过程中各个阶段的主要工作,带你重温编译原理的知识体系,让你对这些关键概念的理解变得更加清晰。在这个过程中,你也能更好地建立具体实现跟原理之间的关联,互相印证。

真实编译器解析篇:带你研究Java、Java JIT、Python等7种语言编译器的源代码,跟踪它们的运行过程,分析编译过程的每一步是如何实现的,并会对有特点的编译技术点加以分析和点评,以此帮你吃透现代语言的核心特性,直接提高你的技术水平,让你更高效地学习编译原理知识。

现代语言设计篇:带你分析和总结前面研究过的7种真实语言的编译器,进一步提升你对相关编译技术的认知高度,让你对如何设计编译器的前端、中端、后端、运行时,都有比较全面的了解,知道如何在不同的技术路线之间做取舍。

python编译原理_编译原理实战课 带你吃透编译技术核心概念与算法相关推荐

  1. 区块链笔记 - 《区块链技术核心概念与原理讲解》

    说明:笔记内容来源于慕课网<区块链技术核心概念与原理讲解>视频课程.如有侵权,请联系删除. 目录 1.区块链前世今生 2.区块链前景 3.比特币是什么 4.比特币原理 4.1 账本如何验证 ...

  2. java语言 编译原理_【Java学习】深入分析Java的编译原理

    在<Java代码的编译与反编译>中,有过关于Java语言的编译和反编译的介绍.我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件.这是我们通常 ...

  3. 分类计数原理与分步计数原理_分类计数原理与分步计数原理

    分类计数原理与分步计数原理 <分类计数原理与分步计数原理 ( 一 ) >教学设计 柳州地区民族高级中学 覃艳莉 相关教材 : 人民教育出版社的全日制普通高级中学教科书 ( 必修 ) < ...

  4. grpc通信原理_容器原理架构详解(全)

    目录 1 容器原理架构 1.1 容器与虚拟化 1.2 容器应用架构 1.3 容器引擎架构 1.4 Namespace与Cgroups 1.5 容器镜像原理 2 K8S原理架构 2.1 K8S主要功能 ...

  5. python 招聘 海盐_聚焦普高新课标 提升信息核心素养——海盐县初中信息技术Python课堂教学研讨活动在武原中学举行...

    2018年10月29日,"海盐县初中信息技术Python课堂教学研讨活动"在武原中学举行,活动由县学科教研员丁光明老师主持,全体初中信息技术教师参加.本次教研活动以"普高 ...

  6. serverlet 原理_容器原理架构详解(全)

    目录 1 容器原理架构:容器与虚拟化.容器应用/引擎架构.Namespace与Cgroups.镜像原理 2 K8S原理架构:K8S主要功能.K8S 系统架构.Pod原理与调度 3 K8S存储方案:容器 ...

  7. python爬虫百度百科-python爬虫(一)_爬虫原理和数据抓取

    本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...

  8. python倒排索引实现_倒排索引原理和实现 - uncle_LLD的个人空间 - OSCHINA - 中文开源技术交流社区...

    关于倒排索引 搜索引擎通常检索的场景是:给定几个关键词,找出包含关键词的文档.怎么快速找到包含某个关键词的文档就成为搜索的关键.这里我们借助单词--文档矩阵模型,通过这个模型我们可以很方便知道某篇文档 ...

  9. 决策树原理实例(python代码实现)_决策树原理实例(python代码实现)

    决策数(Decision Tree)在机器学习中也是比较常见的一种算法,属于监督学习中的一种.看字面意思应该也比较容易理解,相比其他算法比如支持向量机(SVM)或神经网络,似乎决策树感觉"亲 ...

最新文章

  1. 【廖雪峰python入门笔记】list_替换元素
  2. 10张图带你深入理解Docker容器和镜像--云平台技术栈07
  3. linux绑定盘符吗,Linux盘符绑定实现原理.PDF
  4. html中用来标记关键字的标识,简单的HTML标识属性与识别
  5. gpg keys for php 5.5,Fedora解决/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64问题
  6. python中list转csv的两种方法
  7. 【大盛】全网首发HTC One/M7 最新本地化TrickDroid9.0/固件升级/永久root/高级,快速设置/稳定,流畅经典ROM...
  8. linux svn配置教程,linux svn搭建及配置
  9. Spark入门(十一)之排序
  10. 高通被欧盟指控垄断 或将面临高达25亿美元罚款
  11. 《深入理解 Spring Cloud 与微服务构建》第四章 Dubbo
  12. 注解@controller的作用_@controller和@Restontroller区别
  13. sql 计算单行数据字段空值比例_如何利用工具,迅猛定位低效SQL? | 1分钟系列...
  14. cpu超频软件_Easy OC,装机小白进阶大神的好用软件
  15. 2018最新麻瓜编程实用主义学Python课程
  16. 用Python实现表格读写
  17. azkaban报Error Chunking during uploading files to db
  18. java怎么把数据传入数组_怎么把数据放入数组中
  19. Dubbo Spring Cloud 逆向分析服务注册事件变化的处理过程
  20. 探测器反向偏压_(如光电二极管)反向偏置.ppt

热门文章

  1. wxWidgets:wxXmlDocument类用法
  2. wxWidgets:wxActivateEvent类用法
  3. wxWidgets:命名空间
  4. boost::make_recursive_variant相关的测试程序
  5. boost::proto::noinvoke相关的测试程序
  6. boost::make_reverse_graph用法的测试程序
  7. boost::get_property用法的测试程序
  8. boost::fusion::nil用法的测试程序
  9. boost::fusion::find_if用法的测试程序
  10. GDCM:gdcm::Reader的测试程序