js:语言精髓笔记5----语言分类

计算模型:源于对计算过程的不同认识;

1.基于不同计算模型一般分为://教科书的一般分类

  • 命令式语言;
  • 函数式语言;
  • 逻辑式语言;
  • 面向对象程序设计语言;

2.基于程序本质分类:  //编程的经典法则:算法+数据结构=程序

  • 命令式:   //基于数据结构
    • 结构化编程(冯诺依曼:计算机系统以存储和处理为核心)【面向存储的编程】;
    • 面向对象编程;
  • 说明式:   //基于算法
    • 函数式;
    • 其他;

命令式语言面临的问题:如何抽象数据存储;

结构化编程:通过运算去改变内存;

  • 结构:
    • 控制结构:顺序,分支,循环;
    • 组织结构:表达式,语句行,语句块,过程,单元,包等;
    • 数据结构(命令式语言所关注的存储):基本数据结构,复合数据结构;
  • 问题:
    • 数据具体含义与关系;
    • 面向数据存储形式的算法,脱离使用环境,算法结构也缺乏通用性;
    • 僵化的类型和逻辑影响业务逻辑表达;

 面向对象编程:对象系统:数据/行为/关系

  • 优化:
    • 更加细化的可见性设定,更好的数据封装性及数据域管理;
    • 使用继承解决通用性;
    • 使用多态解决业务逻辑冲突;
  • 对象是更高层次的数据抽象,但它仍是对以结构的认可而不是以对算法的认可为前提的;//所以仍然是在结构影响算法当中;

面向接口的编程方法:

  • 接口更高层次的抽象,只暴露数据体的逻辑行为能力,而不暴露这种能力的实现方法和基于的数据特性;
  • 接口基于的原则并不是结构确定则算法确定,而是在共同的规约描述下的算法功能的确定;

 3.多范型语言:具有交叉分类特性的语言;其中JS支持函数式,命令式和(基于原型)面向对象;

原文地址:https://www.cnblogs.com/jinkspeng/p/4012561.html