编程范式:(水一下)
课程:
1, 前端主要编程语言:Javascript
2, 多编程范式语言,灵活性高
3, 需要在不同编程范式之间切换
4, 需要创造领域内特定语言抽象业务问题
机器语言——汇编语言——中级语言——高级语言
C(中级,面向过程)/c++
lisp:与机器无关,代码即数据,闭包
JavaScript:过程式,面向对象,函数式,响应式
编程范式:命令式(面向过程,面向对象),声明式(函数式,响应式)
结构化编程:顺序结构,选择结构,循环结构
JS中面向对象
面向过程问题,数据与算法关联弱,不利于修改和扩充,不利于代码重用
面向对象编程的五大原则:
单一职责,开放封闭,里氏替换,依赖倒置,
响应式编程-操作符
合并,过滤,转化,异常处理,多播
响应编程Monad 去除嵌套的Observable
语言运行:
Lexer parser visit——interpret/code gen
Parser语法规则:
上下文无关语法规则:
推导式:表示非终结符到(非终结符或终结符)的关系
终结符:构成句子的实际内容可以理解为token
非终结符:符号或变量的有限集合,它们表示在句子中不同类型的短语或子句
LL从左到右检查,从左到右构建语法树
LR从左到右检查,从右到左构建语法树