Skip to content

语言的结构化

程序 = 数据结构+算法

概述

计算机语言的分类

用途分类语言分类子分类语言列举
程序设计说明式函数式LISP/Scheme/ML/Haskell
程序设计说明式数据流式Id/Val
程序设计说明式逻辑式Prolog/VisiCalc
程序设计命令式冯·诺依曼Fortran/Pascal/Basic/C
程序设计命令式面向对象Smalltalk/Eiffel/C++/Java
数据设计标记式HTML/XML
数据设计交换式JSON
模型设计建模UML

javaScript 兼顾说明式和命令式,是多范式语言。

所谓结构:

  • 控制结构
    • 顺序
    • 分支
    • 循环
  • 组织结构
    • 表达式
    • 语句行
    • 语句块
    • 过程
    • 单元
  • 数据结构:数据的表现形式
    • 基本数据结构
    • 复合数据结构

命令式语言

命令式语言的实质是面向存储的编程,即通过运算去改变内存。所以这类语言更关注存储的方式。

命令式语言的发展,与冯·诺依曼计算机体系存在直接关系:

  • 冯·诺依曼计算机系统以"存储"和"处理"为核心
  • 命令式编程语言将"存储"抽象为"内存",将"处理"抽象为"运算"
  • 软件程序与硬件系统,在本质上存在紧密联系

intel 计算机系统在"数据结构"上的简单抽象

自然语义机器系统编程系统语言/类型系统
基本数据单元8/16/32/64 位系统位/字节/字/双字/...bit/byte/word/dword/...
连续数据块连续存储块数组/字符串/结构体/...array/string/struct/...
有关系的数据片段存储地址指针/结构/引用/...pointer/tree/...

面向对象语言

面向对象相比较命令式语言,解决了三个问题:

  • 不必关心数据结构中的细节
  • 保证了算法结构的通用性
  • 表现力更强

可见性设定

可见性含义说明
published已发布。面向特殊系统的,比如 IDE
public公开,不限制访问的
protected internal内部保护
protected保护,访问限于此程序
internal内部
private私有

接口是更高的抽象:

  • 封装:提供能力
  • 使用:不关注能力的来源和获取方法。

面向接口编程的理解:

  • 数据:对象封装了数据提以及数据的存储逻辑
  • 行为:对象对外展现了可以对数据进行的运算与运算逻辑
  • 关系:交互关系

面向接口编程是面向对象编程不可或缺的一部分。ECMAScript 规范为将来的语言特征保留了这些关键字:interface、implements

语言的分类

TODO

语源

TODO

历史遗产

TODO

Released under the MIT License.