编程语言|青训营笔记

96 阅读1分钟

一、前言背景

是人写的编程语言,方便机器解读,一个语言需要介质;机器语言,汇编语言,高级语言,从右到左,进行传递编译;

中级语言C,面向过程,可移植能力强,功能齐全,可对位字节、地址直接操作;

高级语言: C++,面向对象 Lisp:代码即数据,函数式 JavaScript:面向对象,基于原型和头等函数的多范式语言,

二、编程范式

1.程序语言特性:

是否允许副作用,操作顺序,代码组织,状态管理,语法和词法 命令式:面向对象或过程 声明式:函数式或响应式 过程式编程:自顶向上

2.面向过程的问题:

数据与算法关联弱,不利于修改和扩充,不利于代码重用。 结构化编程:顺序、选择、循环

3.面向对象:

封装、继承(无需重写进行功能扩充)、多态(进行接口共享,达到函数复用)、依赖注入(去代码耦合)

面向对象:五大原则 单一职责原则 开放封闭原则 里式替换原则 依赖倒置原则 接口分离原则(基于依赖倒置)

4.函数式编程

优势:可缓存、移植、测试、推理、并行

5.效应式编程、(observable)

数据流,操作符,过滤,合并,转化 观察者模式,迭(die)代器模式模式,promise超集 操作符:合并,过滤,转化,异常处理,多播

屏幕截图 2023-04-15 173408.png

三、领域特定语言(创造DSL)

用通用语言来实现,但通用语言不能实现特定语言 语言运行、语法规则, parser-LL:从左到右检查,从左到右,构建语法树 parser-LR:从右到左构建语法树 tools、visitor

屏幕截图 2023-04-15 174119.png

屏幕截图 2023-04-15 174219.png