编译原理之美
宫文学
北京物演科技CEO
立即订阅
8171 人已学习
课程目录
已完结 43 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么你要学习编译原理?
免费
实现一门脚本语言 · 原理篇 (13讲)
01 | 理解代码:编译器的前端技术
02 | 正则文法和有限自动机:纯手工打造词法分析器
03 | 语法分析(一):纯手工打造公式计算器
04 | 语法分析(二):解决二元表达式中的难点
05 | 语法分析(三):实现一门简单的脚本语言
06 | 编译器前端工具(一):用Antlr生成词法、语法分析器
07 | 编译器前端工具(二):用Antlr重构脚本语言
08 | 作用域和生存期:实现块作用域和函数
09 | 面向对象:实现数据和方法的封装
10 | 闭包: 理解了原理,它就不反直觉了
11 | 语义分析(上):如何建立一个完善的类型系统?
12 | 语义分析(下):如何做上下文相关情况的处理?
13 | 继承和多态:面向对象运行期的动态特性
实现一门脚本语言 · 应用篇 (2讲)
14 | 前端技术应用(一):如何透明地支持数据库分库分表?
15 | 前端技术应用(二):如何设计一个报表工具?
实现一门脚本语言 · 算法篇 (3讲)
16 | NFA和DFA:如何自己实现一个正则表达式工具?
17 | First和Follow集合:用LL算法推演一个实例
18 | 移进和规约:用LR算法推演一个实例
实现一门脚本语言 · 热点答疑与用户故事 (2讲)
19 | 案例总结与热点问题答疑:对于左递归的语法,为什么我的推导不是左递归的?
用户故事 | 因为热爱,所以坚持
编译原理 · 期中考试周 (1讲)
期中考试 | 来赴一场100分的约定吧!
免费
实现一门编译型语言 · 原理篇 (12讲)
20 | 高效运行:编译器的后端技术
21 | 运行时机制:突破现象看本质,透过语法看运行时
22 | 生成汇编代码(一):汇编语言其实不难学
加餐 | 汇编代码编程与栈帧管理
23 | 生成汇编代码(二):把脚本编译成可执行文件
24 | 中间代码:兼容不同的语言和硬件
25 | 后端技术的重用:LLVM不仅仅让你高效
26 | 生成IR:实现静态编译的语言
27 | 代码优化:为什么你的代码比他的更高效?
28 | 数据流分析:你写的程序,它更懂
29 | 目标代码的生成和优化(一):如何适应各种硬件架构?
30 | 目标代码的生成和优化(二):如何适应各种硬件架构?
实现一门编译型语言 · 应用篇 (2讲)
31 | 内存计算:对海量数据做计算,到底可以有多快?
32 | 字节码生成:为什么Spring技术很强大?
实现一门编译型语言 · 扩展篇 (3讲)
33 | 垃圾收集:能否不停下整个世界?
34 | 运行时优化:即时编译的原理和作用
35 | 案例总结与热点问题答疑:后端部分真的比前端部分难吗?
面向未来的编程语言 (3讲)
36 | 当前技术的发展趋势以及其对编译技术的影响
37 | 云编程:云计算会如何改变编程模式?
38 | 元编程:一边写程序,一边写语言
结束语 (1讲)
结束语 | 用程序语言,推动这个世界的演化
编译原理之美
登录|注册

37 | 云编程:云计算会如何改变编程模式?

宫文学 2019-11-18
上一讲中,我分享了当前 3 个技术发展趋势,以及其对编译技术的影响。今天我们把其中的云计算和编程模式、编译技术的之间的关系、前景再展开探讨一下。
总的来说,现在编写程序是越来越云化了,所以,我们简单地称作云编程就好了。
关于云编程,有很多有趣的问题:
1. 编程本身是否也能上云?在云上编程会跟本地开发有什么不同?
2. 如何编写云应用,来充分发挥云平台的能力?分为哪些不同的模式?
3. 为什么编写云应用那么复杂?如何降低这些复杂度?云原生应用的开发平台,能否解决这些问题?
本节课,我就带你深入讨论这些问题,希望借此帮助你对编程和云计算技术的关系做一个梳理,促使你更好地利用云计算技术。
首先,来看看如何实现云上编程。

实现云上编程

90 年代初,我在大学学习编程,宿舍几个人合买了一台 386 电脑。那个时候,我记得自己不太喜欢微软提供的 MFC 编程框架,这和 386 电脑没有浮点运算器,编译起来比较慢有关,编译一次使用 MFC 框架的,C++ 程序的时间,足够我看一页报纸的了。
喜欢编程的人,为了获得流畅的性能,电脑配置总是很高,虽然这足以满足 C/C++ 时代的编程需要,但进入 Java 时代后,因为应用结构越来越复杂,工程师们有时需要在笔记本或桌面电脑上,安装各种复杂的中间件,甚至还要安装数据库软件,这时,电脑的配置即便再高,也很难安装和配置好这么复杂的环境。那么到了云计算时代,挑战就更大了,比如,你能想象在电脑上安装 Hadoop 等软件,来做大数据功能的开发吗?
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《编译原理之美》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(2)

  • xiaobang
    一直没能理解云原生的意思,云是指云上的资源,在远程机器的,原生是本地的资源,这两个放一起不知道怎么理解,老师能解释下吗?
    2019-12-08
  • 刘強
    有赞有一套自己的电商开发平台,用户可以通过拖拽功能块来实现自己的业务功能。我觉得这种开发方式好像一定程度的实现了您说的云原生编程平台,只不过还是属于特定领域的,有一定局限的。不知道理解对不对?
        编程语言的最高抽象层次是自然语言,云平台开发的最高抽象层次我觉得是“搭积木”,由此,我“瞎猜”一下,将来的软件开发就好像现在的UI设计一样,需要什么功能我拿过来拼接一下,当然,既然是云,上面有各种各样的“原生”功能模块,就好像编程语言一样,通过组合这些功能就能开发出各种应用。更进一步,我设计好我的架构图,业务功能模块,然后一键部署,你都不知道背后发生了什么,哈哈。

    作者回复: 嗯,你的分析很好,总结起来是领域化、可视化、抽象化。

    我最关注的,是复杂度问题。上周在华为的aicon上,跟华为、阿里云的专家探讨过。我提出,现在云计算在解决复杂性上,仍然没有达到当初的承诺:只需要加机器就行了。实际上,按照目前的技术,当应用功能边复杂的时候,系统的复杂度急剧上升。我认为这是仍然需要解决的问题。目前的云原生,只是用用docker,还不够。

    2019-11-18
收起评论
2
返回
顶部