
程序设计语言基础知识
文章平均质量分 67
叫醒你笛莎
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
确定的有限自动机(DFA)与不确定的有限自动机(NFA)详解
1. 核心定义(1) 确定的有限自动机(DFA)状态转移唯一性:对任意状态和输入符号,只有一条转移路径。形式化定义QQ:有限状态集合ΣΣ:输入字母表δδ:转移函数 δ:Q×Σ→Qδ:Q×Σ→Q(单值)q0q0:初始状态FF:接受状态集合(2) 不确定的有限自动机(NFA)状态转移不确定性:对同一状态和输入符号,可能有零条、一条或多条转移路径,且允许空转移(ε-NFA)。形式化定义δδ:转移函数 δ:Q×(Σ∪{ϵ})→2Qδ:Q×(Σ∪{ϵ})→2Q(多值,幂集)2. 关键区别对比。原创 2025-05-13 20:58:49 · 1089 阅读 · 0 评论 -
静态错误、动态错误
原创 2025-05-13 17:00:07 · 101 阅读 · 0 评论 -
编译过程前三阶段的输入与产物
示例AST(简化表示):plaintext复制下载/ | \/ | \"42" "b"原创 2025-05-13 16:37:34 · 561 阅读 · 0 评论 -
有限自动机(DFA)和非确定有限自动机(NFA)
若NFA有状态 {q0,q1}{q0,q1},DFA可能的状态为 ∅,{q0},{q1},{q0,q1}∅,{q0},{q1},{q0,q1}。: 转移函数 Q×(Σ∪{ϵ})→2QQ×(Σ∪{ϵ})→2Q(多值,含空转移):正则表达式可直接转换为NFA(如Thompson算法)。:任何DFA本身就是NFA的特例(单值转移+无空转移)。:当需要高效执行且状态数可控时(如关键词匹配)。: 转移函数 Q×Σ→QQ×Σ→Q(单值):当设计灵活性优先(如复杂正则表达式)。自循环(多值转移)。原创 2025-04-09 18:41:20 · 1187 阅读 · 0 评论 -
栈帧(活动记录)的组成与作用
栈帧(Stack Frame),也称为活动记录(Activation Record),是函数调用时在程序栈(Stack)上分配的一段内存空间,用于存储该函数执行过程中所需的数据和控制信息。每个函数调用都会创建一个独立的栈帧,函数返回时该栈帧被销毁。:栈溢出(Stack Overflow)会破坏栈帧中的返回地址,导致程序控制流被劫持。栈帧是函数调用的核心数据结构,包含形参、返回地址、局部变量等,但。:栈帧中存储的是形参(函数定义中的参数)或实参的副本。:全局变量存储在静态区,与栈帧无关。原创 2025-04-07 08:07:08 · 243 阅读 · 0 评论