C语言是过程式语言代表,它可对位、字节、地址直接操作;代码与数据分离,可以实现结构化编程;功能齐全,数据类型和控制逻辑多样化;可移植能力强。
C++ 是面向对象语言的代表,它增加了对类的支持;拥有权限控制、继承、虚函数、多态。
Lips 是函数式语言的代表,它与机器无关,代码即数据,闭包。
javascript 是基于原型和头等函数的多范式语言(过程式、面向对象、函数式、响应式)。
程序语言的特性有:1、是否允许副作用 2、操作的执行顺序 3、代码组织 4、状态管理 5、语法和词法。
编程范式可以分为命令式和声明式,其中命令式又可以分为面向过程和面向对象,面向过程是用过程分组,而面向对象是用状态和对象分组;声明式可以分为函数式和响应式,函数式是用函数,响应式是用数据流表示结果。
面向过程编程是自顶向下的,也是结构化编程(顺序结构、选择结构、循环结构),面向过程的缺点有:数据与算法关联弱、不利于修改和扩充、不利于代码重用。
面向对象编程有几个特点:封装(关联数据和算法)、继承(无需重写的情况下进行功能扩充)、多态(不同结构可以进行接口共享,进而达到函数复用)、依赖注入(去除代码耦合)。
面向对象编程的五大原则:1、单一职责原则(SRP) 2、开放封闭原则(OCP) 3、里式替换原则(LSP) 4、依赖倒置原则(DIP) 5、接口分离原则(ISP)。
面向对象编程的问题是无法单独引用其中的具体部分。
函数式编程的特点有:1、函数是一等公民 2、纯函数/无副作用(可缓存、可移植、可测试、可推理、可并行) 3、高阶函数/闭包 4、组合 5、容器。