2025-11-19-重拾编程语言设计与计科相关概念
First Post:
Last Update:
Page View: loading...
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 原则:面向对象设计的五个基本原则