编程范式笔记 | 青训营笔记

113 阅读2分钟

编程范式笔记

编程语言

部分语言

1.jpg 关于C为什么被称为中级语言,抛去可能只是C单纯的有点不适合当下,显得有点拉所以被列为中级。也许也是因为它既像低级语言一样一定程度上可以直接对硬件进行操作,也像高级语言一样“面向程序员友好”。

什么是编程范式

2.jpg 感觉就是不同语言的设计理念。

面向过程

有什么缺点? 为什么又会诞生面向对象?

数据与算法弱关联;不利于修改和补充;不利于代码重用

面向对象

通过封装使数据和算法关联。
通过继承使在无需重写的情况下进行功能扩充。

但这样如果是老数据和算法被淘汰会不会比较难改动?因为一改可能会影响到多个继承的子类。所以说java很臃肿吗?那其他面向对象编程语言是怎么解决的?

通过多态使不同结构共享接口,达到函数复用

五大原则 3.jpg

面向对象编程的缺点? 为什么推荐函数式编程?

嗷,很多情境下我们不得不创建一个类的对象,加载它所有的字段和方法,但我们实际只需要其中的一小部分。

函数式编程

不依赖外部环境 4.jpg Currying 5.jpg Composition 6.jpg Functor 7.jpg Monad 8.jpg Applicative 9.jpg

响应式编程

Observable 10.jpg 所以是纯响应外部参数,进行处理?感觉就是面向过程那种

操作符 11.jpg 将数据“精加工”,且这些数据可是异步,离散的

领域特定语言

JS居然是通用语言啊!

语言运行

编译: 解析->解释->分析/操作->执行/转化 解析: 切分成多个类型,以sql为例 12.jpg 解释: 13.jpg (ll类为例) 14.jpg

分析: 工具辅助转成语法树
执行: 按照语法树遍历执行