编程范式 | 青训营笔记
1 课程介绍
课程背景:
1.前端的主要编程语言为JavaScript。
2.JavaScript做为一种融合了多种编程范式的语言,灵活性非常高。
3.前端开发人员需要根据场景在不同编程范式间自如切换。
4.进一步需要创造领域特定语言抽象业务问题。
课程收益:
1.了解不同编程范式的起源和适用场景。
2.掌握JavaScript在不同的编程范式特别是函数式编程范式的使用。
3.掌握创建领域特定语言的相关工具和模式。
2 编程语言
C: “中级语言”过程式语言代表·可对位,字节,地址直接操作
代码和数据分离倡导结构化编程
功能齐全:数据类型和控制逻辑多样化可移植能力强
C++:面向对象语言代表 . C with Classes 继承 ·权限控制 ·虚函数 ·多态
Lisp: 函数式语言代表 与机器无关 列表︰代码即数据 ·闭包
·基于原型和头等函数的多范式语言 ·过程式 ·面向对象 ·函数式 ·响应式*
3 编程范式
面向对象编程语言的问题在于,它总是附带着所有它需要的隐含环境。你想要一个香蕉,但得到的却是一个大猩猩拿着香蕉,而且还有整个丛林。
面向过程问题 数据与算法关联弱 .不利于修改和扩充 .不利于代码重用
面向对象编程 封装 继承多态 依赖注入*
函数式编程_Pure Function优势 ·可缓存 ·可移植 ·可测试 ·可推理 ·可并行
4 领域特定语言
lexer
SQL Token分类·注释 ·关键字 ·操作符·空格·字符串 ·变量
Parser_语法规则
上下文无关语法规则 推导式:表示非终结符到(非终结符或终结符)的关系。 终结符:构成句子的实际内容。可以简单理解为词法分析中的token。 非终结符:符号或变量的有限集合。它们表示在句子中不同类型的短语或子句。