首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 不确定有穷自动机确定化编译原理实验报告

    时间:2021-03-19 12:06:46 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:自动机 不确定 编译

    不确定有穷自动机的确定化编译原理实验报告 本文关键词:自动机,不确定,编译,原理,实验

    不确定有穷自动机的确定化编译原理实验报告 本文简介:编译原理实验报告实验名称不确定有穷自动机的确定化实验时间_____2014年4月10日_______院系_______管理信息工程学院_______班级_______11计算机科学与技术____学号______201101020109____________姓名________姜高_________

    不确定有穷自动机的确定化编译原理实验报告 本文内容:

    编译原理实验报告

    实验名称

    不确定有穷自动机的确定化

    实验时间_____

    2014年4月10日_______

    系_______管理信息工程学院_______

    级_______11计算机科学与技术____

    号______201101020109____________

    名________姜高__________________

    1、

    实验目的

    不确定有穷自动机的确定化

    2、

    实验原理

    用子集构造算法构造子集加入子集族中直到收敛(所有构造的子集都已存在于子集族)为止。如原来不确定有穷自动机的五元组形式为:M=(K,

    For

    每输入字母a

    DO

    {

    U:=closure(move(T,a));

    If

    U

    不在S中

    then

    将U作为未被标记的子集加在S中

    }

    }

    5.代码实现

    #include

    #include

    #define

    MAXS

    100

    using

    namespace

    std;

    string

    NODE;

    //结点集合

    string

    CHANGE;

    //终结符集合

    int

    N;

    //NFA边数

    struct

    edge{

    string

    first;

    string

    change;

    string

    last;

    };

    struct

    chan{

    string

    ltab;

    string

    jihe[MAXS];

    };

    void

    kong(int

    a)

    {

    int

    i;

    for(i=0;iNODE.find(a[i+1]))

    {

    b=a[i];

    a[i]=a[i+1];

    a[i+1]=b;

    }

    }

    void

    eclouse(char

    c,string

    for(k=0;khe.length())

    he+=b[k].last;

    eclouse(b[k].last[0],he,b);

    }

    }

    }

    void

    move(chan

    k=he.ltab.length();

    l=he.jihe[m].length();

    for(i=0;ihe.jihe[m].length())

    he.jihe[m]+=b[j].last[0];

    for(i=0;ihe.jihe[m].length())

    he.jihe[m]+=b[j].last[0];

    }

    //输出

    void

    outputfa(int

    len,int

    h,chant)

    {

    int

    i,j,m;

    cout>b[i].first;

    if(b[i].first==“#“)

    break;

    cin>>b[i].change>>b[i].last;

    }

    N=i;

    /*for(j=0;jNODE.length())

    NODE+=b[i].first;

    if(NODE.find(b[i].last)>NODE.length())

    NODE+=b[i].last;

    if((CHANGE.find(b[i].change)>CHANGE.length())

    }

    len=CHANGE.length();

    cout>endnode;

    for(i=0;iNODE.length())

    {

    cout“;

    move(t[i],k,b);

    //求move(I,a)

    //coutednode.length())

    d[0]+=NODE[i];

    endnode=ednode;

    cout<

    outputfa(len,h,t);

    //输出DFA

    cout<<“其中终态为:“<

    //DFA最小化

    m=2;

    sta.erase();

    flag=0;

    for(i=0;i

    {

    //cout<<“d[“<

    for(k=0;k

    {

    //cout<<“I“<

    y=m;

    for(j=0;j

    {

    for(n=0;n

    {

    if(d[n].find(t[NODE.find(d[i][j])].jihe[k])

    )

    {

    if(t[NODE.find(d[i][j])].jihe[k].length()==0)

    x=m;

    else

    x=n;

    if(!sta.length())

    {

    sta+=x+48;

    }

    else

    if(sta[0]!=x+48)

    {

    d[m]+=d[i][j];

    flag=1;

    d[i].erase(j,1);

    //cout<

    j--;

    }

    break;

    //跳出n

    }

    }//n

    }//j

    if(flag)

    {

    m++;

    flag=0;

    }

    //cout<<“sta=“<

    sta.erase();

    }//k

    }//i

    cout<

    for(i=0;i

    cout<<“{“<

    “;

    cout<

    //状态重新命名

    chanmd=new

    chan[m];

    NODE.erase();

    cout<

    for(i=0;i

    {

    md[i].ltab=

    A

    +i;

    NODE+=md[i].ltab;

    cout<<“{“<

    }

    for(i=0;i

    for(k=0;k

    for(j=0;j

    {

    if(d[i][0]==t[j].ltab[0])

    {

    for(n=0;n

    {

    if(!t[j].jihe[k].length())

    break;

    else

    if(d[n].find(t[j].jihe[k])

    {

    md[i].jihe[k]=md[n].ltab;

    break;

    }

    }

    break;

    }

    }

    ednode.erase();

    for(i=0;i

    for(j=0;j

    if(d[i].find(endnode[j])

    endnode=ednode;

    cout<

    outputfa(len,m,md);

    cout<<“其中终态为:“<

    }

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识