用 Java 语言实现 NFA 到 DFA 的等价变换姓名:桂日培单位:湖北工业大学计算机学院 02 计算机 1 班学号:0212025123时间:2005 年 10 月 31 日一、实验目的1、理解什么是 NFA 和什么是 DFA;2、掌握 NFA 和 DFA 之间的等价变换;3、了解程序设计语言 Java 的语言机制
二、实验小组(按姓氏拼音排序):陈超、桂日培三、术语解释1、DFA确定的有穷自动机(DFA)M 是一五元组M=(Q,∑,δ,q0,Z), 其中:(1) Q 是一有穷状态集;(2) ∑是有穷输入字母表;(3)δ 是从 Q×∑Q 的映射函数,称为状态变迁函数,定义式 δ(q1,a)=q2 表示在 q1 状态下读入字母a 后,转到状态 q2;(4) q0∈Q 是唯一的初态;(5) Z 包含于 Q 是终态集
2、NFA假如 δ(q1,a)的值不唯一,而是一个状态子集的话,那么这样的 FA 是不确定的,称为不确定的有穷自动机(NFA)
NFA 和 DFA 定义的主要差别是它们的映射函数不一样,NFA 的 δ 函数定义为:δ:Q×∑ρ其中:ρ∈2Q,即 ρ 是 Q 的任意子集,2Q 是 Q 的幂集
四、实验步骤与内容1、实验环境:操作系统:Microsoft Windows XP编译平台:Borland JBuilder 2025 Enterprise2、步骤与内容:(1)启动 JBuilder,新建一个名为:NFA_To_DFA 的工程,模板为默认类型(Default project)
(2)打开新建的工程
(3)在工程里添加一个名为 NfaDemo 的 Java 文件
(4)打开 NfaDemo 文件,编辑源代码
(5)按“Ctrl+F9”对源文件进行编译
(6)按“Ctrl+Shift+F9"对目标文件进行连接
(7)点击工具栏上的“RunRun “Nfa