logologo
  • WebUI
  • JavaScript
  • TypeScript
  • C++
  • ··
    • C
    • Rust
    • Python
    • Cangjie
    • SQL
    • Design
    概述
    常见的数据结构
    ecmascript相关
    enumerable
    Object 内部实现
    sameValue 算法
    unicode
    语法设计
    声明
    表达式
    模块
    语句
    严格模式
    类型系统
    Array
    typedArray
    Map
    Number
    Object
    Set
    String
    结构化
    基本的组织元素
    动态性
    并发性
    范式
    函数式
    函数的行为
    闭包
    函数
    从运算式语言到函数式语言
    语言的多范式

    Last Updated: 9/30/2025, 3:44:10 AM

    Previous pageStringNext page基本的组织元素

    #语言的结构化

    《我的架构思想》

    • 程序是可被组织的
    • 结构化只是回答程序是什么的一个解
    • 结构化只是组织的手法之一

    《计算机程序的构造和解释》中说

    程序 = 数据结构+算法

    #概述

    计算机语言的分类

    用途分类语言分类子分类语言列举
    程序设计说明式函数式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 借鉴了:

    • AWK
    • C
    • HyperTalk
    • Self 借鉴了原型继承系统

    #历史遗产

    TODO