• Norman 置顶
    2019-08-14
    老师你好,请问学习这门课程需要什么基础知识吗?比如是否一定要了解Java或者js等?

    作者回复: 你有任何语言的背景,都能学这门课。
    毕竟,这门课本身,就是为了让你了解各门语言背后的知识。当然不会因为你所掌握的具体语言而卡壳。
    当然,我在课程里的例子,有c的,有java的,有javascript的,这几门语言的语法看上去都很像,所以你不会有陌生感。很多同学应该都学过上述语言之一。

     2
     20
  • 疯狂咸鱼 置顶
    2019-10-01
    老师,去GIS公司搞Java开发有前途么

    作者回复: 我离开GIS领域已有一段时间。为了你这个问题,专门问了两个同学,技术大咖。一位是腾讯地图的,一位是ESRI(ArcGIS,GIS领域的鼻祖级公司)的。

    大致需要三类技术:
    1.GIS的后端。都是用Java和C++开发的。对性能要求比较高。
    2.做算法。基本上是AI框架 + python,要能快速迭代,作出模型来以后,还能还要用java和C++落地到生产系统。
    3.做前端。这个就不说了。

    GIS总体来说,还是挑战比较高的一个领域。门槛高,前途应该也比较好。这是我的看法,仅供参考。

    
     8
  • Jaswine 置顶
    2019-08-15
    有一位前辈对我说,想做IT行业。好好学学“计算机组成原理”、“操作系统”、“计算机网络”和“编译原理”这几个知识,对你以后走多远很有好处。前三个我都或多或少的主动去接触过,确实觉得很重要,回头再看Java就是对一些抽象的东西进行封装,最后在做工作的还是操作系统和硬件,知道操作系统和硬件是怎么回事之后让我学习Java这一类的语言很有帮助。

    但是“编译原理”一直是处在我以为的状态,我知道有用但是一直没有系统学习。这次随着老师学习下。

    作者回复: 非常同意那位前辈的意见。他很有经验。
    一起努力!

     3
     3
  • 公众号:业余草
    2019-08-14
    确认过眼神,讲师头发是“编译”过的

    作者回复: 呃...

    那这个编译优化得很厉害。生成的目标代码很少。:(

     1
     36
  • 清风
    2019-08-14
    早就知道编译原理很重要,也很难学,希望在老师的课程中收获满满!

    作者回复: 如果学不会,是我的错!

     1
     29
  • 水上漂(陶)
    2019-08-14
    龚总,我是陶红军,你的坚持、执着、智慧真是棒棒的!从工作流到BI、再到电子表单、再到今天的大数据,我与你在随行……

    作者回复: 谢谢兄弟鼓励!

    
     17
  • xiaomian12138
    2019-08-14
    非科班出身,对计算机几大基础课感觉非常恐惧,之前极客时间推出的算法、网络协议、mysql专栏都特别好,每一门都认真学了,收获非常大。希望这次也能跟老师一起攻克编译原理(PS:宫老师的声音,听起来让人觉得很稳重很踏实,不由自主信任这样的老师

    作者回复: 谢谢信任,我一定努力,让大家都能听懂,都能上手!

    
     10
  • 贾献华
    2019-08-15
    在 iOS 上实现 Logo 语言,之前参照被人实现的都没有递归,写完本课程想完整完成 Logo 语言。

    作者回复: 一个厉害的flag!
    敬佩!加油!
    对了,我有点好奇,你想搞Logo,是要进入儿童教育或者大众编程教育领域吗?

    
     9
  • Milittle
    2019-08-14
    我要把这个学好,
    因为就是冲着学llvm来的,
    而且我坚信以后的dl会需要更多像tvm这样的东西存在。
    我要想着ai编译器进发。
    加油(ง •̀_•́)ง

    作者回复: 哇,你的思维已经很靠前了!
    一起加油!

    
     8
  • devna
    2019-08-14
    之前用Antlr 3写过一个SQL解析器,虽然做出来了,但一直感觉懵懵懂懂,希望这次能把编译原理彻底搞懂!

    作者回复: 对的,我明白你在说什么。
    搞懂原理,就能更自由、更有信心的驾驭工具。因为本质上,你也可以写出这样一个工具。
    另外,Antlr4又有很大进步,写语法规则更简单了。我怕这么好用的工具惯着大家,所以在课程里还是让大家从基础的坑踩起。比如左递归、结合性、优先级等必须说清楚。否则,大家用着工具还会是懵里懵懂的。

    
     7
  • coder
    2019-08-14
    好奇宫老师在中科院哪个所读的研究生?

    作者回复: 中科院是在地理所搞遥感和GIS。北大时也是在这个领域,是城环系,现在是城环学院。
    那时用国外的GIS软件,人家都能支持脚本。觉得咱们怎么做个软件都没有支持语言的能力呢?
    当时还在工作站上用mathematica。惊艳!强大的交互式命令和脚本。

     4
     7
  • 一修💤
    2019-08-15
    工作中会遇到很多问题比如策略引擎,工作流,数据处理的DAG,甚至神经网络的结构连接,感觉都能用简单的语言来描述,底层编译成相应的执行代码来运行,

    作者回复: 感谢你分享领域需求!你说的非常对!
    你所说的策略引擎、工作流等就是DSL。
    另外神经网络领域,不管用哪家的AI库,但底层原理都是一样的,都是这几年深度学习领域那些进展,都是张量计算。所以,其实不同家的AI,应该都可以翻译成标准的底层。这就是ML领域的IR。然后再对应到不同的硬件上,比如TPU、GPU。这个领域内正在定标准。

    
     6
  • 我叫不知道
    2019-08-14
    跟老师一起实现一门脚本语言和编译型语言,还有面向未来的编程语言。
    不认真学完这门课,我就回来打自己的脸🤣
    一起加油呀 小伙伴们 (ง •̀_•́)ง

    作者回复: 哈哈!一起加油!

    
     6
  • allean
    2019-08-14
    听说老师准备了半年之久,一定是精心打磨的课程,学就完事了!

    作者回复: 感谢信任!

    
     5
  • litao91
    2019-08-14
    想学编译技术多年,苦于没有合适的入门方式,这回争取入门

    作者回复: 一定能行!再入不了门,找我说道说道!

    
     4
  • Shanks
    2019-08-14
    老师,就android开发,看到大牛门,比方说分析到Java 8 支持,就出现了如下代码,学习完编译原理,能看懂这类代码吗,谢谢
    Class #2 -
      Class descriptor : 'LJava8$1;'
      Access flags : 0x1011 (PUBLIC FINAL SYNTHETIC)
      Superclass : 'Ljava/lang/Object;'
      Interfaces -
        #0 : 'LJava8$Logger;'
    展开

    作者回复: 会的,会有帮助。
    在编译原理的后端部分,我们会动手生成汇编、生成中间代码、生成字节码。这些都有共通性。以后你再看这些就不会觉得陌生了!

     4
     3
  • coder
    2019-08-14
    课程介绍应用篇第28讲,标题取名字,指令选择,在编译里面,指令选择是编译器后端的一个概念,出现在寄存器分配这个pass之前或者之后,指令选择算法也有很多种,有基于树的,也有基于列表匹配的,但是第28讲专栏想表达的好像不是

    作者回复: 这门课的设计思路之一,是拿实例带动对原理的理解。否则很多同学都会被卡住。
    第28篇,是应用篇。是用一个应用题目,以点带面的让大家对指令选择有个直观的体会,甚至是戏剧性的体会。
    这也是我们的一个想法,一定要让大家建立直观的感受,这才算领进门。领进门以后,我们往往就自己有能力往前走了。
    这就要致力于消除这样的疑问:编译原理的这部分到底是在讲什么?编译原理的知识点中,很多都面临这样的挑战。建立直观理解的挑战。

    
     3
  • blue blood
    2019-08-14
    我觉得吧,编译原理这门课程对我们理解编程非常重要,你只有了解你写的高级语言一步步如何转化成机器语言的,才能知道如何写出高效的代码,也更容易理解那些语法和知道如何处理bug。

    作者回复: 没错。从顶层到底层贯通,心里才会踏实。

    
     3
  • 我是男超人
    2019-08-15
    我就是那个"每次鼓起勇气拿起《编译原理》,啃不了多少页就放下了"的人.

    作者回复: 愿意去拿起来的同学,就不简单。

    
     2
  • Geek_Ben
    2019-08-15
    为了更好的写BUG。

    作者回复: 呃...

    
     2
我们在线,来聊聊吧