- 博客(135)
- 资源 (3)
- 收藏
- 关注
原创 【软件工程】软件生命周期(SDLC)各阶段划分
摘要: 软件生命周期指软件从提出、开发到废弃的全过程,通常分为六个阶段:可行性研究(评估项目可行性)、需求分析(明确用户需求)、概要设计(系统架构)、详细设计(模块实现)、编码与测试(开发验证)、运行维护(持续优化)。各阶段有明确的产出物(如需求规格书、设计文档等),强调文档驱动开发。理解生命周期是掌握开发模型的基础,需重点区分“做什么”(需求分析)和“怎么做”(设计阶段)。测试贯穿开发过程,维护阶段成本最高。记忆口诀:“可行需求概详编,维护续干六段全”。 (字数:150)
2026-07-09 19:49:03
46
原创 【软件工程】软件工程概述(定义、三要素、软件危机)
摘要: 软件危机是20世纪60年代因软件开发方式滞后于规模增长引发的系列问题,表现为成本失控、质量差、维护难等,1968年由NATO会议正式提出。其本质是缺乏工程化管理,催生了软件工程学科。IEEE定义的软件工程强调系统化、规范化开发方法,核心三要素为方法(技术指南)、工具(支撑环境)和过程(开发流程)。典型考题涉及三要素辨析、软件危机表现及原因(非硬件不足)。口诀“方法工具过程三”可快速记忆要点。 关键词: 软件危机、软件工程、三要素、IEEE、NATO
2026-07-09 19:48:13
42
原创 【操作系统】板块总结 + 下期预告(软件工程)
【摘要】本文为软考中级备考同学提供操作系统知识体系总结,涵盖28篇文章内容,包含进程管理、死锁、存储管理等核心模块的对比表与易错点。重点对比了进程调度、PV操作、存储管理方式、页面置换及磁盘调度算法,并汇总易混淆概念(如互斥信号量初值应为1、FIFO存在Belady异常等)。文末预告下期软件工程板块内容,涉及开发模型、DFD数据流图等高频考点,建议考生重点关注下午题的解题方法。全文配记忆口诀帮助强化理解,适合4分钟快速回顾。(150字)
2026-07-07 10:45:10
259
原创 【操作系统】复习日:进程管理 + 存储管理(整理对比表)
摘要: 本文针对软考中级备考同学,系统梳理进程管理与存储管理核心知识点。进程管理部分对比三态/五态模型、6种调度算法特性、PV操作应用场景及死锁处理策略;存储管理部分详解分区/页式/段式/段页式的区别、虚拟存储置换算法(含Belady异常)及磁盘调度策略。提炼易错点如“阻塞→运行”非法、PV操作顺序、碎片类型辨析等,并提供状态转换、死锁条件等记忆口诀。附有调度算法计算、读者-写者问题等典型例题,帮助快速掌握高频考点。(149字) 关键词: 进程调度、死锁、页式存储、LRU算法、PV操作
2026-07-07 10:43:59
379
原创 【操作系统】磁盘调度算法(FCFS/SSTF/SCAN/C-SCAN)
本文系统讲解磁盘调度算法及其应用场景。首先分析磁盘访问时间构成,指出寻道时间是优化重点。随后详细介绍四种核心算法:先来先服务(FCFS)公平但效率低;最短寻道优先(SSTF)效率提升但可能饥饿;扫描算法(SCAN)类似电梯双向移动;循环扫描(C-SCAN)单向运行且返回时不服务。通过具体算例对比各算法的寻道距离计算,并总结其优缺点,最后给出记忆口诀和典型例题分析。适用于软考中级操作系统相关考点复习,重点掌握算法选择依据和寻道距离计算方法。
2026-07-05 16:49:59
386
原创 【操作系统】页面置换算法(CLOCK/改进型CLOCK)
本文介绍了CLOCK页面置换算法及其改进型实现。基本CLOCK算法通过循环队列和访问位(R位)近似LRU效果,指针扫描时将R=1的页面清零并继续查找R=0的页面置换。改进型CLOCK增加了修改位(M位),根据(R,M)组合将页面分为四类,优先淘汰(0,0)干净页以减少磁盘I/O。文章通过示例对比两种算法,指出改进型CLOCK通过多轮扫描能更精准选择置换页面,虽然实现复杂度稍高但能显著降低置换代价。最后提供了典型例题和记忆口诀,帮助理解算法核心逻辑。
2026-07-05 16:49:09
163
原创 【操作系统】页面置换算法(OPT/FIFO/LRU)
本文系统梳理了三种页面置换算法(OPT、FIFO、LRU)的核心原理和特点。OPT作为理论最优但不可实现的基准算法,FIFO简单但存在Belady异常现象,LRU基于历史访问记录性能较好但实现复杂。通过对比表格和典型例题分析,重点阐述了各算法的缺页计算方法和适用场景,并提供了记忆口诀。最后以LRU的练习题强化理解,帮助读者掌握这一操作系统核心考点。(149字)
2026-07-04 10:45:27
383
原创 【操作系统】虚拟存储管理(局部性原理、缺页中断)
摘要:虚拟存储通过局部性原理(时间/空间局部性)解决内存不足问题,仅需装入当前运行所需的程序部分。虚拟页式存储扩展页表项,存在位标识页面是否在内存。访问缺失触发缺页中断,需经历保存现场、磁盘I/O、更新页表等步骤,完成后重新执行原指令。缺页中断处理代价高,涉及磁盘I/O,是页面置换算法优化的关键。典型例题强调循环结构体现时间局部性,缺页中断后需重执行原指令。(150字) 关键词:虚拟存储、局部性原理、缺页中断、页表、页面置换
2026-07-04 10:44:46
231
原创 【操作系统】段式存储管理与段页式存储管理
本文对比分析了三种存储管理方式:页式、段式和段页式。页式存储机械划分固定大小的页,解决外部碎片但缺乏逻辑性;段式按程序逻辑划分可变长度段,便于共享保护但产生外部碎片;段页式结合两者优点,先分段再分页,实现逻辑性与无外部碎片的平衡,但需两次查表且管理复杂。关键区别在于划分依据、地址结构、碎片问题和共享保护机制。段页式需注意段表指向页表而非物理地址,地址转换较慢。典型考题涉及地址组成、段表项内容和易混淆概念(如碎片类型和查表次数)。记忆口诀帮助区分核心特点。
2026-07-03 15:38:48
252
原创 【操作系统】页式存储管理(地址转换、页表)
页式存储管理通过将逻辑地址空间和物理内存划分为固定大小的页和页框,解决外部碎片问题。逻辑地址由页号和页内偏移组成,页表记录页号到页框号的映射关系。地址转换由MMU完成,通过查页表获取页框号,结合不变的偏移量得到物理地址。快表(TLB)作为高速缓存可提升转换效率。页表项包含页框号、状态位、访问位等信息,地址转换时若页不在内存则触发缺页中断。典型计算题需根据页大小提取页号和偏移量,结合页表完成转换。易错点包括偏移量不变、TLB未命中仍需访问内存页表等。
2026-07-03 15:38:00
296
原创 【操作系统】分区存储管理(固定/动态分区、碎片)
文章摘要: 分区存储管理是多道程序存储的基础,分为固定分区(大小固定,产生内部碎片)和动态分区(按需分配,产生外部碎片)。固定分区实现简单但利用率低;动态分区需通过紧缩消除外部碎片,分配算法包括首次适应、最佳适应、最坏适应和循环首次适应,各有优劣。碎片问题中,内部碎片无法消除,而外部碎片可通过内存整理解决。典型考点包括两种分区的对比、碎片类型区分及分配算法的应用场景。口诀总结:固定内、动态外,分配算法按需选。
2026-07-02 12:22:42
224
原创 【操作系统】存储管理概述(分区/分页/分段)
本文梳理了操作系统存储管理的核心概念与演变历程,重点对比了三种主要管理方式的特点: 分区存储(连续分配): 固定分区产生内部碎片,动态分区产生外部碎片 已淘汰,因内存利用率低 分页存储(离散分配): 以固定页为单位分配,消除外部碎片 存在页内内部碎片,需页表转换地址 分段存储(离散分配): 按逻辑单元(代码/数据段)划分,支持共享保护 产生外部碎片,管理复杂度高 关键区别:分页侧重物理效率(无外碎),分段反映逻辑结构(易共享)。现代系统多采用段页式结合方案。 (摘要含标点共148字)
2026-07-02 12:21:52
493
原创 【操作系统】死锁检测与死锁恢复
摘要: 死锁检测与恢复是操作系统处理死锁的关键策略。检测通过资源分配图简化判断环路存在性,单资源环路必死锁,多资源需具体分析。恢复常用终止进程(优先终止低优先级、短时进程)或资源抢占(需回滚机制)。对比死锁(互相阻塞)、饥饿(长期无资源)、活锁(空转无进展),三者的核心区别在于进程状态与资源占用情况。软考重点考查资源分配图简化、死锁判定及恢复策略选择,需结合实例掌握判断逻辑(如例题中P1→R2→P2→R1环路形成死锁)。口诀辅助记忆检测与恢复要点。
2026-07-01 09:27:04
252
原创 【操作系统】银行家算法(安全序列判定)
摘要: 银行家算法的安全序列判定是软考高频考点,核心目标是通过模拟进程运行顺序判断系统是否安全。步骤包括:计算Need矩阵(Need=Max-Allocation)、初始化Work=Available、逐步查找满足Need≤Work的进程并释放其资源,最终检查所有进程是否完成。关键易错点包括误用Max比较、未释放资源或错误理解不安全状态。通过示例演示了安全序列的推导过程,强调需按步骤严谨计算。记忆口诀和常见例题解析帮助强化理解,确保考试中准确应用该算法避免死锁风险。
2026-07-01 09:26:19
762
原创 【操作系统】死锁预防与死锁避免(银行家算法)
本文总结了死锁预防和银行家算法的核心知识点。死锁预防通过破坏四个必要条件(互斥、持有等待、不可抢占、循环等待)实现,方法包括资源共享、一次性申请、资源抢占和有序分配,但各有局限性。银行家算法采用动态避免策略,通过维护Available、Max、Allocation和Need四个数据结构,在资源分配前进行安全性检查,确保系统始终处于安全状态。文章通过例题演示了安全序列的判断过程,并对比了两种策略的特点。最后提供了记忆口诀帮助掌握核心要点,并留有思考题供练习。
2026-06-30 13:38:29
545
原创 【操作系统】死锁的基本概念与必要条件
摘要:死锁是多个进程因争夺资源而互相等待的僵局,必须同时满足四个必要条件:互斥、持有并等待、不可抢占和循环等待。破坏任一条件即可预防死锁。死锁与饥饿不同,前者是进程互相阻塞,后者是单个进程长期无法获取资源。处理死锁的策略包括预防、避免、检测和恢复,其中银行家算法是关键。典型例题强调循环等待与死锁的关系,需注意必要条件同时成立才会导致死锁。口诀帮助记忆四个条件,小测验巩固理解。 (字数:149)
2026-06-30 13:37:41
162
原创 【操作系统】经典同步问题:读者-写者 / 哲学家进餐
摘要:本文重点解析操作系统中的读者-写者问题和哲学家进餐问题。读者-写者问题通过信号量(rw_mutex和count_mutex)实现读优先模型,允许多读者并发但写者独占,需注意第一个/最后一个读者对锁的控制。哲学家进餐问题则强调避免死锁,典型方案包括限制并发数、奇偶编号法或原子申请资源。两者对比生产者-消费者问题,核心差异在于资源互斥逻辑(读读共享/读写互斥)和死锁预防。记忆口诀帮助快速掌握要点,附例题加深理解。建议重点掌握读优先实现及死锁解决方案。
2026-06-29 11:36:23
229
原创 【操作系统】经典同步问题:生产者-消费者
摘要:生产者-消费者问题是操作系统中经典的同步与互斥问题。通过三个信号量(empty表示空位数,初值n;full表示数据数,初值0;mutex实现互斥)实现协调。生产者先检查空位(P(empty))再互斥访问缓冲区,消费者反之。关键点:必须严格保持P操作的顺序(先同步后互斥),否则会因资源竞争导致死锁。典型场景下,信号量动态变化反映缓冲区状态(如empty=2,full=6表示6个数据占位)。该模型是PV操作的核心考点,需理解其底层逻辑及信号量作用。
2026-06-29 11:35:21
388
原创 【操作系统】前趋图与PV操作(结合前趋图解题)
摘要:前趋图是一种有向无环图(DAG),用于描述进程间的执行顺序依赖关系,节点表示进程,有向边表示前驱关系。在软考中,常考与前趋图相关的PV操作转换问题。转换规则为:每个节点的入边对应开头的P操作,出边对应末尾的V操作,每条边分配一个初值为0的信号量。考试需注意信号量初始化、P/V操作数量匹配、区分同步与互斥信号量等陷阱。通过经典例题和口诀(“入边P来出边V”)可快速掌握该考点。
2026-06-28 18:09:03
181
原创 【操作系统】利用PV操作实现进程同步
本文系统讲解了进程同步中的PV操作,重点分析了同步信号量初值为0的原理与应用。文章通过对比互斥与同步的区别,阐述了同步信号量的核心作用(控制执行顺序),并结合前驱图和生产者-消费者模型等典型场景,详细说明了同步信号量的设置规则:前驱进程执行V操作通知后继,后继进程执行P操作等待条件。最后通过例题解析和记忆口诀,总结了"同步初值0,前驱打V后继P"的核心解题思路,帮助考生掌握这一软考高频考点。全文配有执行时序分析、信号量值含义表及对比总结,强调同步与互斥的关键差异。
2026-06-28 18:08:26
267
原创 【操作系统】利用PV操作实现进程互斥
PV操作是实现进程互斥的核心机制,通过信号量(初值为1)控制临界区访问。P操作为申请锁,V操作为释放锁,必须成对出现且针对同一信号量。互斥信号量的值含义:1表示空闲,0表示占用,负值表示等待进程数(绝对值为等待数)。使用时需注意临界区代码精简、P/V操作顺序正确。典型场景下,三个进程竞争时信号量可能变为-2。口诀总结:"互斥信号初值1,P/V包围临界区"。该考点在软考中频出,需重点掌握其原理和应用。
2026-06-26 13:26:56
260
原创 【操作系统】信号量机制与PV操作(基本概念)
摘要: 信号量(Semaphore)是解决进程同步与互斥的核心机制,由Dijkstra提出。通过P(申请)和V(释放)原子操作实现资源管理,分为整型信号量(忙等)和记录型信号量(带阻塞队列,避免忙等)。信号量初值决定用途:互斥时设为1,同步时设为0。关键点包括原子性、负数表示等待进程数,以及PV操作的具体流程。典型例题解析和记忆口诀帮助掌握考点,如信号量值为-3表示3个进程在等待。软考中需重点理解PV操作的应用场景和实现逻辑。 关键词: 信号量、PV操作、互斥、同步、软考考点
2026-06-26 13:25:57
332
原创 【操作系统】临界区与临界资源
摘要:临界资源是每次仅允许一个进程使用的共享资源(如变量、设备),多进程并发访问会导致错误。临界区是进程中访问临界资源的代码段,分为进入区、临界区、退出区和剩余区。管理临界区需遵循四项原则:忙则等待、空闲让进、有限等待、让权等待。临界资源是实体,临界区是代码逻辑,一个进程可含多个临界区。典型题型辨析概念与原则,如判断临界区定义(选C:访问临界资源的程序段)或管理原则(选A:忙则等待)。记忆口诀强化核心要点。 关键词:临界资源、临界区、互斥原则、进程同步、软考考点
2026-06-25 14:52:45
188
原创 【操作系统】进程同步与互斥的基本概念
摘要: 同步与互斥是操作系统协调多进程共享资源的核心机制。临界资源(如共享变量、打印机)一次仅允许一个进程访问,其对应代码段称为临界区,需满足忙则等待、空闲让进等原则。互斥解决进程竞争同一资源的问题(如打印机独占),而同步解决进程间执行顺序的协作(如生产者-消费者)。互斥是同步的特例,二者通过信号量PV操作实现。典型场景包括生产者-消费者、哲学家进餐等,需区分资源争抢(互斥)与顺序协调(同步)的本质差异。高频考点为临界区定义及同步/互斥区别。
2026-06-25 14:52:05
232
原创 【操作系统】进程调度算法(FCFS/SJF/优先级/时间片轮转)
摘要: 进程调度算法是操作系统管理CPU资源的核心机制,主要包括FCFS(先来先服务)、SJF(短作业优先)、优先级调度和时间片轮转四种经典算法。FCFS简单公平但可能导致长作业阻塞短作业;SJF理论上平均等待时间最短但需预知运行时间;优先级调度区分任务重要性但可能引发饥饿;时间片轮转通过分时策略保证公平性和响应速度。软考常考查算法特点、适用场景及周转时间计算(如FCFS示例平均周转时间12.33ms,SJF优化至7.33ms)。实际系统常结合动态优先级和时间片轮转以平衡效率和公平性。需掌握算法对比(如SJ
2026-06-24 21:19:59
228
原创 【操作系统】进程控制块PCB与上下文切换
摘要: 进程控制块(PCB)是操作系统管理进程的核心数据结构,存储进程标识、调度、控制及资源信息(如PID、状态、寄存器值),但不含程序代码。PCB通过链表或索引组织,是进程存在的唯一标志。上下文切换在进程状态变化时触发,需保存/恢复CPU现场到PCB,涉及寄存器、PC等数据,会产生TLB刷新、Cache失效等开销。高频考点包括PCB内容辨析(如例题1选C程序源代码)、切换步骤(例题2选A保存现场)及开销原因(例题3判断正确)。口诀“PCB是身份证,寄存器PC在中间”帮助记忆核心概念。 关键词: PCB、上
2026-06-24 21:18:53
210
原创 【操作系统】进程状态转换(三态模型/五态模型)
本文系统梳理了进程状态管理的核心知识点。三态模型(就绪、运行、阻塞)是基础,重点掌握四种状态转换关系及其触发条件;五态模型新增新建态和终止态,完整描述进程生命周期。需注意:阻塞→运行不可直接转换,运行→阻塞是主动行为,而阻塞→就绪是被动触发。文章通过对比表格和转换图示强化理解,并附典型例题及记忆口诀。最后以时钟中断导致运行→就绪的测验题作结,强调时间片用完的调度场景。
2026-06-23 13:33:07
885
原创 【操作系统】进程的基本概念(程序与进程的区别)
摘要: 程序是静态的磁盘文件(如.exe),进程是程序执行的动态实例(分配CPU/内存资源)。核心区别:程序永久存在且静态,进程临时且动态;一个程序可对应多个进程(如多开微信),但一个进程只属于一个程序。进程由程序段、数据段和进程控制块(PCB)组成,PCB是进程存在的唯一标识。常考易错点:进程是资源分配单位,程序源代码不存储在PCB中。 关键词: 程序、进程、PCB、静态动态、资源分配
2026-06-23 13:31:14
699
原创 【操作系统】操作系统发展历程(批处理/分时/实时)
文章摘要: 操作系统发展史是计算机从低效到高效、从独占到共享的演进过程。核心阶段包括:1)手工操作(效率极低);2)批处理系统(单道批处理减少人工干预,多道批处理实现CPU与I/O并行);3)分时系统(时间片轮转支持多用户交互);4)实时系统(硬/软实时保障严格响应)。现代操作系统多为分时与实时的混合体。关键区别:批处理重效率、分时重交互、实时重时限。记忆口诀:“批处理求效率,分时重交互,实时限时快”。考点聚焦各阶段特点对比及典型应用场景。 (字数:150)
2026-06-22 14:03:08
308
原创 【操作系统】 操作系统概述(定义、功能、分类)
操作系统(Operating System,简称OS)是一种系统软件,位于计算机硬件与应用程序之间。计算机裸机 → 操作系统 → 语言处理程序 → 应用程序操作系统是裸机之上的第一层软件,是对硬件系统功能的首次扩充。它负责管理计算机的硬件、软件和数据资源,控制程序的运行,同时充当人机之间的接口和应用软件与硬件之间的接口。
2026-06-22 14:02:23
209
原创 【程序语言与编译】复习日:文法 + 自动机 + 语法分析(整理对比表)
本文为软考中级备考同学总结了“程序语言与编译”板块的核心知识点。内容涵盖文法分类(0-3型)、词法分析(DFA/NFA)、语法分析(自上而下/自下而上)、短语与句柄等核心对比表,并整理了易错点和记忆口诀。重点包括:文法类型判断、NFA/DFA识别能力、推导与归约关系、句柄定义等常见误区。口诀帮助记忆文法分类、推导归约、短语句柄等概念。文章还预告了下一板块“操作系统”的内容,涉及进程管理、存储管理等重点考点。全文旨在帮助考生快速掌握该板块核心内容,提高选择题得分率。
2026-06-17 09:20:18
209
原创 【程序语言与编译】错误处理 + 传值与传址
摘要:本文针对软考中级备考同学,梳理编译各阶段错误类型(词法、语法、语义、运行时错误)及恢复策略(恐慌模式、错误产生式等),重点对比传值调用(复制实参值,不影响原数据)与传址调用(传递地址,修改影响实参)的特点及代码示例(C/C++)。通过对比表和典型例题(如变量类型错误、函数参数传递结果分析)强化理解,提供记忆口诀帮助区分核心概念,强调C语言默认传值、C++支持引用传址。全文约3分钟可读完,适合快速掌握考点。 关键词:编译错误、传值传址、软考考点、错误恢复、参数传递
2026-06-17 09:19:08
216
原创 【程序语言与编译】符号表与运行时存储组织(静态/栈/堆)
本文总结了软考中级软件设计师考试中关于符号表和运行时存储区域的核心知识点。符号表是记录变量、函数等标识符属性(类型、地址、作用域等)的编译核心数据结构,在编译各阶段使用。运行时存储分为静态区(全局/static变量,生命周期最长)、栈区(局部变量,自动管理)和堆区(动态分配,手动管理)。文章通过对比表格和典型例题(如递归函数最可能导致栈溢出)帮助考生掌握三者的分配时机、生命周期和管理方式差异。最后提供记忆口诀和备考重点提示,强调区分变量存储区域的能力是考试关键。
2026-06-15 12:02:53
246
原创 【程序语言与编译】中间代码形式(逆波兰、三元式、四元式)
逆波兰表示是一种不需要括号的表达式表示法,将运算符写在操作数之后,也称为后缀表示。计算时使用栈:遇到操作数压栈,遇到运算符则弹出所需数量的操作数计算,结果压回栈。三元式是一种三个字段,其中op为运算符,arg1和arg2为操作数(可以是变量、常量或另一个三元式的编号)。计算结果通过三元式的序号引用。。result是存放结果的临时变量。四元式更接近三地址代码。
2026-06-15 12:01:42
209
原创 【程序语言与编译】语法树与二义性
本文针对软考中级考生,系统讲解语法树与二义性文法的核心知识点。首先定义语法树为推导过程的图形化表示,说明其节点特征(根节点为开始符号,内部节点为非终结符,叶节点为终结符)和构造方法。重点解析二义性文法的定义(存在句子对应多棵语法树)及其危害,提供判断方法(寻找多重推导)和消除策略(通过改写文法引入优先级与结合性)。文中包含典型例题分析,如表达式文法的二义性改造,并给出常用记忆口诀。最后强调二义性是文法而非语言的属性,帮助考生掌握语法树绘制、二义性判断及文法改写等高频考点。全文以约300字概括核心内容,适合备
2026-06-14 21:49:46
179
原创 【程序语言与编译】短语、直接短语、句柄
本文介绍了编译原理中短语、直接短语和句柄的概念及其在语法分析中的作用,适合软考中级备考同学。短语是语法树中非终结符对应的叶节点串,直接短语由一步推导产生,句柄是最左的直接短语,是规范归约的关键。通过示例和语法树分析,文章展示了如何识别这些概念,并提供了记忆口诀和解题步骤,帮助考生掌握这一高频考点。备考时需结合文法推导和语法树练习识别这些结构。
2026-06-14 21:48:57
228
原创 【程序语言与编译】语法分析:自上而下推导(最左/最右)
本文介绍了软考中级备考中的语法分析核心概念。自上而下推导从开始符号出发,通过替换非终结符逐步展开输入串,分为最左推导(每次替换最左非终结符)和最右推导(每次替换最右非终结符)。二者虽然替换顺序不同,但最终生成的语法树结构相同。文章通过典型文法示例对比了两种推导方式的特点,并提供了相关例题和记忆口诀,帮助考生掌握这一高频考点。适用于选择题和简答题型的备考复习。
2026-06-13 12:17:48
244
原创 【程序语言与编译】正规式与有限自动机的等价转换
本文介绍了正规式(RE)与有限自动机(FA)的等价转换方法,重点讲解了Thompson构造法(将正规式转换为NFA)和状态消去法(将NFA转换为正规式)。文章包含基本规则、组合规则和具体示例,如将$(a|b)^*a$转换为NFA,以及通过状态消去法求解DFA的正规式。备考软考中级的同学需要掌握这两种转换方法的核心思想,能够处理简单实例,并通过列方程求解复杂情况。记忆口诀和实用建议帮助快速掌握考点。
2026-06-12 22:10:16
250
原创 【程序语言与编译】NFA转DFA(子集构造法)
本文介绍了NFA转DFA的子集构造法,包括其原理、算法步骤和示例讲解。首先说明NFA转换为DFA的必要性(提高运行效率),然后详细解释ε-闭包的核心概念。算法步骤分为初始化、状态转换、标记终止状态三部分,并通过具体示例演示转换过程,展示如何将识别"01"结尾字符串的NFA转换为等价的DFA。最后提供简化技巧、典型例题和记忆口诀,帮助备考同学掌握这一软考中级常考知识点。文章强调理解ε-闭包和按步骤推导的重要性,适合软考中级考生学习。
2026-06-12 22:08:52
342
原创 【程序语言与编译】 有限自动机(DFA与NFA)
本文介绍了有限自动机的基本概念,重点讲解了确定型(DFA)和非确定型(NFA)有限自动机的定义、特点及区别。DFA转移函数具有确定性,每个状态和输入对应唯一转移,而NFA允许不确定性和ε转移。文章详细说明了NFA转DFA的子集构造法,并通过例题演示转换过程。最后强调二者识别能力等价,DFA更适合实现而NFA便于构造,为软考中级备考者提供了重点知识总结和记忆口诀,帮助掌握词法分析的核心内容。
2026-06-11 17:26:50
240
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅