《我的架构思想》
结构化只是回答程序是什么的一个解结构化只是组织的手法之一《计算机程序的构造和解释》中说
程序 = 数据结构+算法
计算机语言的分类
| 用途分类 | 语言分类 | 子分类 | 语言列举 |
|---|---|---|---|
| 程序设计 | 说明式 | 函数式 | 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
从计算模型(计算范型角度)的语言分类:
语源即设计思想,javascript 借鉴了:
TODO