编程范式|青训营笔记

60 阅读2分钟

为什么需要编程语言

因为需要和机器对话,从而产生了机器语言 汇编语言 中级语言 高级语言

语言代表

中级语言代表 c语言

高级语言代表

面向对象代表 c++

函数式代表:lisp

多范式代表:JavaScript

编程范式有两种:

命令式: 面向过程和面向对象

声明式:函数式和响应式

面向过程的问题:数据与算法关联弱

不利于修改和扩充

不利于代码重用

面向对象编程有五大原则:

单一职责原则

开放封闭原则

里式替换原则

依赖倒置原则

接口分离原则

面向对象的缺点:

需要的需求达到了但是却很臃肿

函数式编程的优点:

可以缓存 可以移植 可以测试 可以推理 可以并行

让代码写起来的程序不臃肿

编程范式分为:

过程式:自顶向下 结构化编程 问题

面向对象: 封装 继承 多态 原则 问题

函数式编程:一等函数 纯函数 curry/compose/functor/monard/applicative

响应式编程:

操作符 monard observable

Domain-specificlanguage(DSL):应用于特定领域的语言 General-purpose language ·HTML

·C/C++

·SQL

·Javascript

lexer SQLToken分类

·注释

·关键字

·操作符

·空格

·字符串

.变量

04Parser_语法规则 上下文无关语法规则

推导式:表示非终结符到(非终结符或终结符)的关系

终结符:构成句子的实际内容。可以简单理解为词法分析中的token。

非终结符:符号或变量的有限集合。它们表示在句子中不同类型的短语或子句

总结:

编程语言为

机器语言 汇编语言 中级语言 高级语言

编程范式分为:

过程式:自顶向下 结构化编程 问题

面向对象: 封装 继承 多态 原则 问题

函数式编程:一等函数 纯函数 curry/compose/functor/monard/applicative

响应式编程:

操作符 monard observable

领域特定语言:lexer parser tools visitor