没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
4页
一、实验目的 通过实验教学,加深学生对所学的关于编译的理论知识的理解,增强学生对所学知识的综合应用能力,并通过实践达到对所学的知识进行验证。通过对DFA模拟程序实验,使学生掌握词法分析的实现技术,及具体实现方法。通过本实验加深对词法分析程序的功能及实现方法的理解 。 二、实验环境 供Windows系统的PC机,可用C++/C#/Java等编程工具编写,语言不限。 三、实验内容 1、自己定义一个DFA或者一个右线性正规文法 示例如(仅供参考) G[S]:S→aU|bV U→bV|aQ V→aU|bQ Q→aQ|bQ|e 2、利用合适数据结构存储自动机,如 3、利用有穷确定自动机M=(K,Σ,f, S,Z)行为模拟程序算法,来对于任意给定的串,若属于该语言时,该过程经有限次计算后就会停止并回答“是”,若不属于,要么能停止并回答“不是” K:=S; c:=getchar; while c<>eof do {K:=f(K,c); c:=getchar; }; if K is in Z then return (‘yes’) else return (‘no’)
资源推荐
资源详情
资源评论
#include<iostream>
using namespace std;
class DFA
{
public:
char Cstate;//初态
char Zstate;//终态
char state;//状态
char U,V;
char str[50];
int p,q; //p 判断第一个字符 q 判断后面的字符
void setstr(); //输入数组
void checkF();//检查第一个字符
void checkSTR();//检查后面的字符
void checkTransform();//转化
void checkL();//检查终态
};
void DFA::setstr()
{
cin>>str;
}
void DFA::checkF()//检查初态
{
if(str[0]=='a')
{Cstate='S'; state='U'; p=1; /*cout<<"进入初态"<<endl;*/}
else
if(str[0]=='b')
{Cstate='S'; state='V'; p=1; /*cout<<"进入初态"<<endl;*/}
else
p=0;
//cout<<"1 Error!"<<endl;
资源评论
- deckcode2021-06-28学到了学到了
superm_
- 粉丝: 5
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功