2025-11-19-重拾编程语言设计与计科相关概念

First Post:

Last Update:

Page View: loading...

计算机类专业结果这些都得自己学,整理一套编程语言设计与计算机科学核心概念集,日后开坑学习,博客狠狠写,知识学爆

一、内存管理

基础概念

  • 指针(Pointer)
  • 引用(Reference)
  • 堆(Heap)
  • 栈(Stack)
  • 内存布局(Memory Layout)
  • 垃圾回收(Garbage Collection)
  • 内存泄漏(Memory Leak)
  • 悬挂指针/引用(Dangling Pointer/Reference)
  • 内存序(Memory Ordering)
  • 写时复制(Copy-on-Write)
  • 内存映射文件(Memory-mapped Files)
  • 缓存一致性协议(Cache Coherence Protocol)
  • 虚拟内存机制(Virtual Memory)
  • 内存屏障(Memory Barrier)
  • 内存对齐(Memory Alignment)
  • 内存分配器(Memory Allocator)
  • 内存池(Memory Pool)
  • 引用计数(Reference Counting)
  • 弱引用(Weak Reference)
  • 循环引用(Circular Reference)
  • 内存碎片(Memory Fragmentation):包括内部碎片和外部碎片
  • 分页与分段(Paging and Segmentation):虚拟内存管理技术
  • 垃圾回收算法:如标记-清除、复制、标记-整理等具体算法
  • 内存管理单元(Memory Management Unit)
  • 内存保护(Memory Protection)
  • 内存访问(Memory Access)

存储类别

  • 自动存储期(Automatic Storage Duration)
  • 静态存储期(Static Storage Duration)
  • 动态存储期(Dynamic Storage Duration)
  • 线程存储期(Thread Storage Duration)
  • 寄存器变量(Register Variable)

二、程序执行模型

函数调用机制

  • 调用栈(Call Stack)
  • 栈帧(Stack Frame)
  • 调用约定(Calling Convention)
  • 参数传递(Parameter Passing)
  • 尾调用优化(Tail Call Optimization)
  • 尾递归(Tail Recursion)
  • Trampoline 机制
  • Thunk:延迟计算的代码块
  • Thunk 函数:用于实现惰性求值的技术

执行上下文

  • 作用域(Scope)
  • 词法作用域(Lexical Scope)
  • 动态作用域(Dynamic Scope)
  • 作用域链(Scope Chain)
  • 闭包(Closure)
  • 执行上下文(Execution Context)
  • 变量环境(Variable Environment)
  • 词法环境(Lexical Environment)
  • 延续(Continuation)
  • 协程(Coroutine)
  • 生成器(Generator)

控制流

  • 事件循环(Event Loop)
  • 计算器模型(Evaluator Model)
  • 消息传递接口(Message Passing)
  • Actor 模型
  • CSP(Communicating Sequential Processes)
  • 控制流图(Control Flow Graph)
  • 数据流分析(Data Flow Analysis)

三、并发与并行

并发模型

  • 并发(Concurrency)
  • 并行(Parallelism)
  • 绿色线程(Green Threads)
  • 内核线程(Kernel Threads)
  • 用户态线程(User-level Threads)
  • 线程池(Thread Pool)
  • 工作窃取(Work Stealing)
  • 屏障(Barrier):同步原语
  • fork-join 模型:并行任务执行模型
  • 数据竞争(Data Race):并发访问共享数据的问题

同步机制

  • 原子操作(Atomic Operations)
  • 比较并交换(Compare-and-Swap)
  • 锁(Lock)
  • 自旋锁(Spinlock)
  • 互斥锁(Mutex)
  • 读写锁(Read-Write Lock)
  • 信号量(Semaphore)
  • 条件变量(Condition Variable)
  • 无锁编程(Lock-free Programming)
  • 内存模型(Memory Model)
  • 顺序一致性(Sequential Consistency)
  • 释放获取语义(Release-Acquire Semantics)

异步编程

  • Promise/Future
  • async/await
  • 响应式编程(Reactive Programming)
  • 数据并行(Data Parallelism)
  • 任务并行(Task Parallelism)
  • 事务内存(Transactional Memory)

四、类型系统

类型分类

  • 静态类型(Static Typing)
  • 动态类型(Dynamic Typing)
  • 强类型(Strong Typing)
  • 弱类型(Weak Typing)
  • 基本数据类型(Primitive Data Types)
  • 复合数据类型(Composite Data Types)
  • 引用类型(Reference Types)
  • 值类型(Value Types)
  • 类型推导(Type Inference)
  • 类型检查(Type Checking)
  • 类型擦除(Type Erasure)
  • 类型转换(Type Casting)
  • 类型别名(Type Alias)
  • 类型注解(Type Annotation)
  • 泛型(Generics)
  • 类型参数(Type Parameter)
  • 类型变量(Type Variable)
  • 类型约束(Type Constraint)
  • 类型构造器(Type Constructor)
  • 类型等价(Type Equality)
  • 类型子类型(Type Subtyping)
  • 类型上界(Type Upper Bound)
  • 类型下界(Type Lower Bound)
  • 类型推断(Type Inference)
  • 类型检查(Type Checking)
  • 子类型(Subtyping):类型之间的关系
  • 型变(Covariance/Contravariance):更详细的变型规则说明
  • 不透明类型(Opaque Types):隐藏实现细节的类型

高级类型概念

  • 行多态(Row Polymorphism)
  • 存在类型(Existential Types)
  • 高阶类型(Higher-Kinded Types)
  • 依赖类型(Dependent Types)
  • 渐进类型(Gradual Typing)
  • 类型类(Type Classes)
  • 泛型(Generics)
  • 变型(Variance):协变、逆变、不变
  • 类型安全(Type Safety)
  • 类型擦除(Type Erasure)
  • 单态化(Monomorphization)

五、函数与抽象

函数概念

  • 高阶函数(Higher-Order Function)
  • 回调函数(Callback)
  • 递归(Recursion)
  • 匿名函数(Anonymous Function)
  • Lambda 表达式
  • 柯里化(Currying)
  • 部分应用(Partial Application)
  • 函数组合(Function Composition)

抽象机制

  • 控制抽象(Control Abstraction)
  • 数据抽象(Data Abstraction)
  • 迭代器(Iterator)
  • 流处理(Stream Processing)
  • 声明式编程(Declarative Programming)
  • 函子(Functor):映射结构的抽象概念
  • 单子(Monad):具有绑定操作的计算容器

六、面向对象编程

核心概念

  • 类(Class)
  • 对象(Object)
  • 封装(Encapsulation)
  • 继承(Inheritance)
  • 多态(Polymorphism)
  • 接口(Interface)
  • 抽象类(Abstract Class)
  • 混入(Mixin)
  • 特质(Trait)

对象模型

  • 虚函数表(Virtual Method Table)
  • 方法解析顺序(Method Resolution Order)
  • 对象布局(Object Layout)
  • 多重继承(Multiple Inheritance)
  • 虚继承(Virtual Inheritance)
  • 原型继承(Prototypal Inheritance)
  • 消息传递(Message Passing):对象间的通信机制
  • 委托(Delegation):替代继承的复用机制

七、元编程与反射

元编程技术

  • 反射(Reflection)
  • 内省(Introspection)
  • 宏系统(Macro System)
  • 卫生宏(Hygienic Macro)
  • 语法宏(Syntax Macro)
  • 过程宏(Procedural Macro)
  • 模板元编程(Template Metaprogramming)
  • 注解处理(Annotation Processing)
  • 属性导向编程(Attribute-Oriented Programming)

运行时元编程

  • 动态代理(Dynamic Proxy)
  • 方法缺失处理(Method Missing)
  • 代码生成(Code Generation)
  • AST 操作(Abstract Syntax Tree Manipulation)

八、编译与解释

编译原理

  • 词法分析(Lexical Analysis)
  • 语法分析(Syntax Analysis)
  • 语义分析(Semantic Analysis)
  • 中间代码生成(Intermediate Code Generation)
  • 代码优化(Code Optimization)
  • 目标代码生成(Target Code Generation)
  • 编译器架构(Compiler Architecture)
  • 编译器设计(Compiler Design)
  • 编译器实现(Compiler Implementation)
  • 链接时优化(Link Time Optimization, LTO):跨模块优化技术
  • Profile-Guided Optimization (PGO):基于运行时信息的优化

执行引擎

  • 解释器(Interpreter)
  • 字节码(Bytecode)
  • 即时编译(Just-In-Time Compilation)
  • 抽象语法树(Abstract Syntax Tree, AST)
  • 单态化(Monomorphization)
  • 类型擦除(Type Erasure)
  • 中间表示(Intermediate Representation)
  • SSA 形式(Static Single Assignment)

九、系统接口

操作系统交互

  • 系统调用(System Call)
  • 文件描述符(File Descriptor)
  • ABI(Application Binary Interface)
  • 系统 V ABI
  • TLS(Thread Local Storage)
  • 信号处理(Signal Handling)

十、异常与错误处理

错误处理机制

  • 异常处理(Exception Handling)
  • 返回值错误(Error Return Values)
  • Result 类型
  • 可选值(Option/Maybe)
  • 断言(Assertion)
  • 契约编程(Design by Contract)

资源管理

  • RAII(Resource Acquisition Is Initialization)
  • 所有权系统(Ownership System)
  • 借用检查(Borrow Checking)
  • 生命周期(Lifetime)
  • 析构函数(Destructor)
  • finally 块

十一、模块化与代码组织

代码组织

  • 模块化(Modularity)
  • 命名空间(Namespace)
  • 包管理(Package Management)
  • 依赖注入(Dependency Injection)
  • 接口隔离(Interface Segregation)

链接与加载

  • 静态链接(Static Linking)
  • 动态链接(Dynamic Linking)
  • 符号解析(Symbol Resolution)
  • 重定位(Relocation)
  • 名称修饰(Name Mangling)

十二、性能优化

编译器优化

  • 内联优化(Inlining)
  • 常量传播(Constant Propagation)
  • 死代码消除(Dead Code Elimination)
  • 循环优化(Loop Optimization)
  • 向量化(Vectorization)
  • 分支目标缓冲(Branch Target Buffer):提高分支预测准确性的硬件机制
  • 指令级并行(Instruction Level Parallelism):CPU 级别的并行执行

运行时优化

  • 内联缓存(Inline Cache)
  • 方法缓存(Method Cache)
  • 逃逸分析(Escape Analysis)
  • 栈上替换(On-Stack Replacement)
  • 热点代码检测(Hotspot Detection)

硬件优化

  • 缓存局部性(Cache Locality)
  • 分支预测(Branch Prediction)
  • 流水线冒险(Pipeline Hazard)
  • 预取(Prefetching)
  • SIMD(Single Instruction Multiple Data)

十三、形式化方法与理论

形式化验证

  • 霍尔逻辑(Hoare Logic)
  • 指称语义(Denotational Semantics)
  • 操作语义(Operational Semantics)
  • 公理语义(Axiomatic Semantics)
  • 进展定理(Progress Theorem)
  • 保持定理(Preservation Theorem)

计算理论

  • λ 演算(Lambda Calculus)
  • 组合子逻辑(Combinatory Logic)
  • 图灵完备性(Turing Completeness)
  • 邱奇-图灵论题(Church-Turing Thesis)
  • 停机问题(Halting Problem)

十四、现代语言特性

语言设计趋势

  • 空安全(Null Safety)
  • 模式匹配(Pattern Matching)
  • 异步/等待(Async/Await)
  • 记录类型(Record Types)
  • 代数数据类型(Algebraic Data Types)
  • 效应系统(Effect System)
  • 资源安全(Resource Safety)
  • 所有权与借用(Ownership and Borrowing):Rust 中的内存安全机制
  • 异构编程(Heterogeneous Programming):利用多种计算设备的编程模型

表达式问题

  • 表达式问题(Expression Problem)
  • 访问者模式(Visitor Pattern)
  • 模式匹配解构

十五、编程范式

主要范式

  • 命令式编程(Imperative Programming)
  • 声明式编程(Declarative Programming)
  • 函数式编程(Functional Programming)
  • 逻辑编程(Logic Programming)
  • 面向对象编程(Object-Oriented Programming)
  • 面向方面编程(Aspect-Oriented Programming)

混合范式

  • 多范式编程(Multi-paradigm Programming)
  • 函数响应式编程(Functional Reactive Programming)
  • 元对象协议(Metaobject Protocol)

十六、软件开发基础

基础概念

  • 表达式与语句(Expressions vs Statements)
  • 控制流(Control Flow)
  • 数据结构(Data Structures)
  • 算法(Algorithms)
  • 复杂度分析(Complexity Analysis)
  • 设计模式(Design Patterns):常见问题的标准解决方案
  • SOLID 原则:面向对象设计的五个基本原则