当前位置:文档之家› 语法分析器实验报告

语法分析器实验报告

语法分析器实验报告
语法分析器实验报告

语法分析器的设计实验报告

一、实验内容

语法分析程序用LL(1)语法分析方法。首先输入定义好的文法书写文件(所用的文法可以用LL(1)分析),先求出所输入的文法的每个非终结符是否能推出空,再分别计算非终结符号的FIRST集合,每个非终结符号的FOLLOW集合,以及每个规则的SELECT集合,并判断任意一个非终结符号的任意两个规则的SELECT 集的交集是不是都为空,如果是,则输入文法符合LL(1)文法,可以进行分析。对于文法:

G[E]:

E->E+T|T

T->T*F|F

F->i|(E)

分析句子i+i*i是否符合文法。

二、基本思想

1、语法分析器实现

语法分析是编译过程的核心部分,它的主要任务是按照程序的语法规则,从由词法分析输出的源程序符号串中识别出各类语法成分,同时进行词法检查,为语义分析和代码生成作准备。这里采用自顶向下的LL(1)分析方法。

语法分析程序的流程图如图5-4所示。

语法分析程序流程图

该程序可分为如下几步:

(1)读入文法

(2)判断正误

(3)若无误,判断是否为LL(1)文法

(4)若是,构造分析表;

(5)由句型判别算法判断输入符号串是为该文法的句型。

三、核心思想

该分析程序有15部分组成:

(1)首先定义各种需要用到的常量和变量;

(2)判断一个字符是否在指定字符串中;

(3)读入一个文法;

(4)将单个符号或符号串并入另一符号串;

(5)求所有能直接推出&的符号;

(6)求某一符号能否推出‘ & ’;

(7)判断读入的文法是否正确;

(8)求单个符号的FIRST;

(9)求各产生式右部的FIRST;

(10)求各产生式左部的FOLLOW;

(11)判断读入文法是否为一个LL(1)文法;

(12)构造分析表M;

(13)句型判别算法;

(14)一个用户调用函数;

(15)主函数;

下面是其中几部分程序段的算法思想:

1、求能推出空的非终结符集

Ⅰ、实例中求直接推出空的empty集的算法描述如下:

void emp(char c){ 参数c为空符号

char temp[10];定义临时数组

int i;

for(i=0;i<=count-1;i++)从文法的第一个产生式开始查找

{

if 产生式右部第一个符号是空符号并且右部长度为1,

then将该条产生式左部符号保存在临时数组temp中

将临时数组中的元素合并到记录可推出&符号的数组empty中。

}

Ⅱ、求某一符号能否推出'&'

int _emp(char c)

{ then返回1(A->B,B可推出空)

if 右部长度为1但第一个字符为终结符,then 返回0(A->a,a为终结符)

else

{

for(k=0;k<=j-1;k++)

{

查找临时数组empt[].并标记mark-=1(A->AB)

if 找到的字符与当前字符相同(A->AB)

结束本次循环

else(mark等于0)

查找右部符号是否可推出空字,把返回值赋给result

把当前符号加入到临时数组empt[]里.

}

if 当前字符不能推出空字且还没搜索完全部的产生式

then 跳出本次循环继续搜索下一条产生式

else if if 当前产生式右部符号可推出空字且当前字符不是右

部的最后一个字符 then

获取右部符号下一个字符在所有字符集中的位置

if 此字符的FIRST集还未查找 then

找其FIRST集,并标其查找状态为1

把求得的FIRST集并入到c的FIRST集.

if当前右部符号串可推出空且是右部符号串的最后一个字符(即产生式为c→Y1Y2…Y k,若对一切1<=i<=k,均有&∈FIRST(Y i),则将&∈符号加进FIRST(c) ) then 把空字加入到当前字符c的FIRST集.

else

不能推出空字则结束循环

标识当前字符c已查找其FIRST集. }

3. 计算FOLLOW集

FOLLOW集的构造可用如下方法来求:

对于文法中的符号X ?V N ,其FOLLOW(A)集合可反复应用下列规则计算,直到FOLLOW(A)集合不再增大为止。

(1)对于文法开始符号S,因为S S,故#?FOLLOW(S);

(2)若A→??B?,其中B?V N,??(V T ?V N)*、??(V T ?V N)+,则

FIRST(?)-{?}?FOLLOW(B);

(3)若A→??B或A→??B? (????),则

FOLLOW(A) ?FOLLOW(B)。

FOLLOW集的算法描述如下:

void FOLLOW(int i)

X为待求的非终结符

把当前字符放到一临时数组foll[]中,标识求已求其FOLLOW集.避免循环递归

if X为开始符号 then #∈FOLLOW(X)

对全部的产生式找一个右部含有当前字符X的产生式

注:比如求FOLLOW(B)则找A→αX或A→?X?(?ε)的产生式

if X在产生式右部的最后(形如产生式A→?X) then

查找非终结符A是否已经求过其FOLLOW集.避免循环递归

if 非终结符A已求过其FOLLOW集 then

FOLLOW(A)∈FOLLOW(X)

继续查下一条产生式是否含有X

else

求A之FOLLOW集,并标识为A已求其FOLLOW集

else if X不在产生式右部的最后(形如A→?B?) then

if右部X后面的符号串?能推出空字? then

查找?是否已经求过其FOLLOW集.避免循环递归

if 已求过?的FOLLOW集 then

FOLLOW(A)∈FOLLOW(B)

结束本次循环

else if ?不能推出空字 then

求FIRST(?)

把FIRST(?)中所有非空元素加入到FOLLOW(B)中

标识当前要求的非终结符X的FOLLOW集已求过

4.计算SELECT集

SELECT集的构造算法如下:

对所有的规则产生式A→x:

(1)若x不能推出空字?,则SELECT(A→x) = FIRST(x);

(2)若x可推出空字?,则SELECT(A→x)=FIRST(x)–{?} ? FOLLOW(A)。

算法描述如下:

for(i=0;i<=产生式总数-1;i++)

先把当前产生式右部的FIRST集(一切非空元素,不包括ε)放入到当前产生式的

SELECT(i);

if 产生式右部符号串可推出空字? then

把i指向的当前产生式左部的非终结符号的FOLLOW集并入到SELECT(i)中

5.判断是否LL(1)文法

要判断是否为LL(1)文法,需要输入的文法G有如下要求:

具有相同左部的规则的SELECT集两两不相交,即:

SELECT(A→?)∩ SELECT(A→?)= ?

如果输入的文法都符合以上的要求,则该文法可以用LL(1)方法分析。

算法描述如下:

把第一条产生式的SELECT(0)集放到一个临时数组temp[]中

for(i=1;i<=产生式总数-1;i++)

求temp的长度length

if i指向的当前产生式的左部等于上一条产生式的左部 then

把SELECT(i)并入到temp数组中

If temp的长度小于length加上SELECT (i)的长度

返回0

else

把temp清空

把SELECT (i)存放到temp中

结果返回1;

四、算法

#include<>

#include<>

#include<>

/*******************************************/

int count=0; 回1(A->B,B可推出空)

return(1);

else if(j==1&&in(right[i][0],termin)==1)A->AB)

mark=1;

}

if(mark==1) --产生式X→a (a∈VT)或X→&,则把a或&加进FIRST(X) temp[0]=right[j][0];

temp[1]='\0';

merge(first1[i],temp,1);

}

for(k=0;k<(int)strlen(right[j]);k++)

{

empt[0]='\0'; }

}

else

break;免循环递归

if(c==start)

{ 免循环递归

{免循环递归

merge(follow[i],follow[m],1);表示已求,0表示未求followflag[j]='0';表示已求,0表示未求

}

for(j=0;j<=(int)strlen(v)-1;j++)

{

first2(j); ;

return;

}

else

{

S[strlen(S)-1]='\0';

j++;

ch=str[j];

}

}

else

{

for(i=0;;i++)

if(non_ter[i]==S[strlen(S)-1])

break;

for(k=0;;k++)

{

if(termin[k]==ch)

break;

if(k==(int)strlen(termin))

{

printf("词法错误!");

return;

}

}

if(M[i][k]==-1)

{

printf("语法错误!");

return;

}

else

{

m=M[i][k];

if(right[m][0]=='@')

S[strlen(S)-1]='\0';

else

{

p=strlen(S)-1;

q=p;

for(n=strlen(right[m])-1;n>=0;n--)

S[p++]=right[m][n];

S[q+strlen(right[m])]='\0';

}

}

}

printf("S:%s str:",S);

for(p=j;p<=(int)strlen(str)-1;p++)

printf("%c",str[p]);

printf(" \n");

}

}

/*******************************************

一个用户调用函数

********************************************/

void menu()

{

syntax();

printf("\n是否继续(y or n):");

scanf("%c",&choose);

getchar();

while(choose=='y')

{

menu();

}

}

/*******************************************

主函数

********************************************/

void main()

{

int i,j;

start=grammer(termin,non_ter,left,right); //读入一个文法 printf("count=%d",count);

printf("\n开始符号为:%c",start);

strcpy(v,non_ter);

strcat(v,termin);

printf("\n所有符号集为:%s",v);

printf("\n非终结符集合:{%s",non_ter);

printf("}");

printf("\n终结符集合:{%s",termin);

printf("}");

printf("\n文法所有右边表达式依次是:");

for(i=0;i<=count-1;i++)

{

printf("%s ",right[i]);

}

printf("\n文法所有左边开始符依次是:");

for(i=0;i<=count-1;i++)

{

printf("%c ",left[i]);

}

if(validity==1)

validity=judge();

printf("\nvalidity=%d",validity);

if(validity==1)

{

ll=LL1();

printf("\nll=%d",ll);

if(ll==0)

printf("\n该文法不是一个LL1文法!");

else

{

printf("\n该文法是一个LL(1)文法!");

MM();

printf("\n");

for(i=0;i<=19;i++)

for(j=0;j<=19;j++)

if(M[i][j]>=0)

printf("M[%d][%d]=%d ",i,j,M[i][j]);

menu();

}

}

}

由于算法仍有很多错误,最终结果没能实现,这点很失望!

五、实验心得

通过本次实验,我收获了很多东西。首先对编译原理这门课有了进一步的深刻理解,同时对LL(1)文法分析的原理和过程有了进一步的巩固,也锻炼了我编程的能力,巩固了平时所学的知识,真正做到了学以致用。

在做实验的过程中,发现自己在编写程序过程中,总是会忽略各种细节,从而导致经常修改一些很小的低级错误才能使程序正常运行,不仅浪费时间,还影响对其他地方的修改,并且在很多步骤处理上,方法不正确。使结果不能符合要求,深刻体会到了自己在编程方面与别人的差距,在今后的学习中,我会注意改正自己在这方面的缺点,促使自己的编程水平不断进步。

编译原理是一门专业学科,对于现阶段的我来说,只能掌握它的一些基本原理和概念,对于一些更深层的知识还是有很多难以理解的地方。但在这次实验过程中,锻炼了自己的思考能力,也锻炼了自己的动手编程能力,对于将知识的转化有了很大的帮助。

编译原理实验报告《LL(1)语法分析器构造》

《LL(1)分析器的构造》实验报告 一、实验名称 LL(1)分析器的构造 二、实验目的 设计、编制、调试一个LL(1)语法分析器,利用语法分析器对符号串的识别,加深对语法分析原理的理解。 三、实验内容和要求 设计并实现一个LL(1)语法分析器,实现对算术文法: G[E]:E->E+T|T T->T*F|F F->(E)|i 所定义的符号串进行识别,例如符号串i+i*i为文法所定义的句子,符号串ii+++*i+不是文法所定义的句子。 实验要求: 1、检测左递归,如果有则进行消除; 2、求解FIRST集和FOLLOW集; 3、构建LL(1)分析表; 4、构建LL分析程序,对于用户输入的句子,能够利用所构造的分析程序进行分析,并显示出分析过程。 四、主要仪器设备 硬件:微型计算机。 软件: Code blocks(也可以是其它集成开发环境)。 五、实验过程描述 1、程序主要框架 程序中编写了以下函数,各个函数实现的作用如下: void input_grammer(string *G);//输入文法G

//将文法G预处理得到产生式集合P,非终结符、终结符集合U、u, int eliminate_1(string *G,string *P,string U,string *GG);//消除文法G中所有直接左递归得到文法GG int* ifempty(string* P,string U,int k,int n);//判断各非终结符是否能推导为空 string* FIRST_X(string* P,string U,string u,int* empty,int k,int n);求所有非终结符的FIRST集 string FIRST(string U,string u,string* first,string s);//求符号串s=X1X2...Xn的FIRST集 string** create_table(string *P,string U,string u,int n,int t,int k,string* first);//构造分析表 void analyse(string **table,string U,string u,int t,string s);//分析符号串s 2、编写的源程序 #include #include #include using namespace std; void input_grammer(string *G)//输入文法G,n个非终结符 { int i=0;//计数 char ch='y'; while(ch=='y'){ cin>>G[i++]; cout<<"继续输入?(y/n)\n"; cin>>ch; } } void preprocess(string *G,string *P,string &U,string &u,int &n,int &t,int &k)//将文法G预处理产生式集合P,非终结符、终结符集合U、u, { int i,j,r,temp;//计数 char C;//记录规则中()后的符号 int flag;//检测到() n=t=k=0; for( i=0;i<50;i++) P[i]=" ";//字符串如果不初始化,在使用P[i][j]=a时将不能改变,可以用P[i].append(1,a) U=u=" ";//字符串如果不初始化,无法使用U[i]=a赋值,可以用U.append(1,a) for(n=0;!G[n].empty();n++) { U[n]=G[n][0]; }//非终结符集合,n为非终结符个数 for(i=0;i

【实验报告】SPSS相关分析实验报告

SPSS相关分析实验报告 篇一:spss对数据进行相关性分析实验报告 实验一 一.实验目的 掌握用spss软件对数据进行相关性分析,熟悉其操作过程,并能分析其结果。 二.实验原理 相关性分析是考察两个变量之间线性关系的一种统计分析方法。更精确地说,当一个变量发生变化时,另一个变量如何变化,此时就需要通过计算相关系数来做深入的定量考察。P值是针对原假设H0:假设两变量无线性相关而言的。一般假设检验的显著性水平为0.05,你只需要拿p值和0.05进行比较:如果p值小于0.05,就拒绝原假设H0,说明两变量有线性相关的关系,他们无线性相关的可能性小于0.05;如果大于0.05,则一般认为无线性相关关系,至于相关的程度则要看相关系数R值,r越大,说明越相关。越小,则相关程度越低。而偏相关分析是指当两个变量同时与第三个变量相关时,将第三个变量的影响剔除,只分析另外两个变量之间相关程度的过程,其检验过程与相关分析相似。三、实验内容 掌握使用spss软件对数据进行相关性分析,从变量之间的相关关系,寻求与人均食品支出密切相关的因素。 (1)检验人均食品支出与粮价和人均收入之间的相关关系。 a.打开spss软件,输入“回归人均食品支出”数据。

b.在spssd的菜单栏中选择点击,弹出一个对话窗口。 C.在对话窗口中点击ok,系统输出结果,如下表。 从表中可以看出,人均食品支出与人均收入之间的相关系数为0.921,t检验的显著性概率为0.0000.01,拒绝零假设,表明两个变量之间显著相关。人均食品支出与粮食平均单价之间的相关系数为0.730,t检验的显著性概率为 0.0000.01,拒绝零假设,表明两个变量之间也显著相关。 (2)研究人均食品支出与人均收入之间的偏相关关系。 读入数据后: A.点击系统弹出一个对话窗口。 B.点击OK,系统输出结果,如下表。 从表中可以看出,人均食品支出与人均收入的偏相关系数为0.8665,显著性概率p=0.0000.01,说明在剔除了粮食单价的影响后,人均食品支出与人均收入依然有显著性关系,并且0.86650.921,说明它们之间的显著性关系稍有减弱。通过相关关系与偏相关关系的比较可以得知:在粮价的影响下,人均收入对人均食品支出的影响更大。 三、实验总结 1、熟悉了用spss软件对数据进行相关性分析,熟悉其操作过程。 2、通过spss软件输出的数据结果并能够分析其相互之间的关系,并且解决实际问题。 3、充分理解了相关性分析的应用原理。

财务报表分析实验报告

本科生实验报告 实验课程财务报表分析 学院名称商学院 专业名称会计学 学生姓名XXX 学生学号 指导教师XXX 实验地点理工大学 实验成绩 二〇16 年 4 月二〇16 年 5 月

填写说明 1、适用于本科生所有的实验报告(印制实验报告册除外); 2、专业填写为专业全称,有专业向的用小括号标明; 3、格式要求: ①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。 ②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下 2.54cm,左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值 (缩放100%,间距:标准);页码用小五号字底端居中。 ③具体要求: 题目(二号黑体居中); 摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4 号宋体); 关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体); 正文部分采用三级标题; 第1章××(小二号黑体居中,段前0.5行) 1.1 ×××××小三号黑体×××××(段前、段后0.5行) 1.1.1小四号黑体(段前、段后0.5行) 参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

黄金矿业股份有限公司 摘要 黄金矿业股份有限公司,以下简称黄金,股票代码(600547),2000年1月由省经济体制改革委员会批准,经招金集团公司、黄金集团,莱州黄金等五家法人单位发起设立的,主要从事黄金开采和选冶加工。其偿债能力、盈利能力、营运能力、成长能力的高低直接影响企业的持续生存发展,对影响这三项能力的相关指标的分析,是全面分析公司是否具有可持续发展的关键。 关键词:偿债能力;盈利能力;营运能力;成长能力

编译原理 语法分析实验二

华北水利水电学院编译原理实验报告 2010~2011学年第二学期xxxx 级计算机专业 班级:xxxxx 学号:xxxxx 姓名:xxx 一、实验目的 通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,进一步掌握常用的语法分析方法。 二、实验要求 ⑴选择最有代表性的语法分析方法,如LL(1)分析法、算符优先法或LR分析法 ⑵选择对各种常见程序语言都用的语法结构,如赋值语句(尤指表达式)作为分析对象,并且与所选语法分析方法要比较贴切。 ⑶实习时间为6小时。 三、实验内容 选题1:使用预测分析法(LL(1)分析法)实现语法分析: (1)根据给定文法,先求出first集合、follow集合和select集合,构造预测分析表(要求预测分析表输出到屏幕或者输出到文件); (2)根据算法和预测分析表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程) (3)给定表达式文法为: G(E): S→TE E→+TE | ε T→FK K→*FK |ε F→(S)|i (4)分析的句子为: (i+i)*i和i+i)*i 四、程序源代码 #include "stdafx.h" #include "SyntaxAnalysis.h" #include "SyntaxAnalysisDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif /////////////////////////////////////////// // CAboutDlg dialog used for App About

典型相关分析

武夷学院实验报告 课程名称:多元统计分析项目名称:典型相关分析 姓名:专业:14信计班级:1班学号:同组成员:无 -、实验目的 1.对典型相关分析问题的思路、理论和方法认识; 2.SPSS软件相应计算结果确认与应用; 3.SPSS软件相应过程命令。 二、实验内容 这里通过典型相关分析来反映我国财政收入与财政支出之间的关系。第一组反映财政收入的指标有国内增值税、营业税、企业所得税、个人所得税、专项收入及行政事业性收费收入等,分别用X1-X6来表示。第二 组反映财政支出的指标有一般公共服务、国防、公共安全、教育、科学技术、社会保障和就业、医疗卫生与计划生育及节能环保等,分别用Y1-Y8来表示。原始数据如下: jts 10^ ?96K! 1?痼8496.6641 H929? 129.06M.820H W234 8? 225.0B425.1 '2W.39tU.31

企业经营实验报告

企业经营实验报告 ——企业模拟实验报告 程银菊 11 级市场营销02 班[1**********] 一实验目的 通过模拟公司运营的全过程,进行团队合作、企业战略规划、预算、流程管理等一系列活动,使学生综合运用战略管理、营销管理、生产管理、财务管理、人力资源管理等综合知识,领悟市场竞争环境中企业经营管理的规律,全面提升综合管理的专业技能。该实验采用沙盘模拟方式,在其中老师不再单单是讲解者,而在不同阶段扮演着不同的角色:调动者、观察家、引导者、分析评论员、业务顾问等。整个沙盘模拟过程就如一个游戏过程,具有互动性、趣味性、竞争性的特点,使学生能够充分运用听、说、学、做、改等一系列学习手段,开启一切可以调动的感官功能,并能够将学到的管理思路和方法在实际操作中很快实践与运用,从而对所学内容形成深度记忆。学生通过沙盘演练,还可以在以下思维方面获得提升:树立共赢理念、全局观点与团队合作的重要性、保持诚信、个性特征与职业定位的协调统一、对待风险的态度等 二、实验基本原理与方法 企业经营沙盘模拟是将企业的主要部门和工作对象制作成类似的实物或电子模型,将企业运行过程设计为运作规则,进而模拟企业的经营过程。沙盘模拟实验一般将学生按37 人分成若干个学习小组,各自组建模拟公司,形成一个模拟市场,围绕形象直观的沙盘模型,实战演练模拟企业的经营管理与市场竞争,使学生在模拟公司5-8 年的市场竞争表现中,不断对“公司”的经营业绩进行分析总结,反思决策成败,解析战略得失,经过多次的调整与改进管理思路,使学生的综合管理素质得到切实提高。 三、实验内容及要求 通过模拟企业八个季度经营周期的事务,综合运用管理科学、市场营销、库存管理、市场运作管理、人力资源管理、管理信息系统、数据库技术等、所学知识,在激烈市场竞争环境下的企业产品市场销售价格、广告费的投入、销售人员的素质、产品生产计划、生产能力调整、材料订购批量、流动资金贷款、产品质量改进费投入、股利分红等一系列现代企业生产经营活动过程中的主要内容做出决策。达到培养我们在企业经营管理活动中综合运用课堂上所学到的知识,分析和解决企业经营管理过程中问题的能力的目的。具体操作如下:给出不同经营周期的市场经济形势变化趋势和各竞争企业的生产经营条件后,将我们组合成若干

TEST语言 -语法分析,词法分析实验报告

编译原理实验报告 实验名称:分析调试语义分析程序 TEST抽象机模拟器完整程序 保证能用!!!!! 一、实验目的 通过分析调试TEST语言的语义分析和中间代码生成程序,加深对语法制导翻译思想的理解,掌握将语法分析所识别的语法范畴变换为中间代码的语义翻译方法。 二、实验设计 程序流程图

extern int TESTScan(FILE *fin,FILE *fout); FILE *fin,*fout; //用于指定输入输出文件的指针 int main() { char szFinName[300]; char szFoutName[300]; printf("请输入源程序文件名(包括路径):"); scanf("%s",szFinName); printf("请输入词法分析输出文件名(包括路径):"); scanf("%s",szFoutName); if( (fin = fopen(szFinName,"r")) == NULL) { printf("\n打开词法分析输入文件出错!\n"); return 0; } if( (fout = fopen(szFoutName,"w")) == NULL) { printf("\n创建词法分析输出文件出错!\n"); return 0; } int es = TESTScan(fin,fout); fclose(fin); fclose(fout); if(es > 0) printf("词法分析有错,编译停止!共有%d个错误!\n",es); else if(es == 0) { printf("词法分析成功!\n"); int es = 0;

spss相关分析实验报告

实验五相关分析实验报关费 一、实验目得: 学习利用spss对数据进行相关分析(积差相关、肯德尔等级相关)、偏相关分析。利用交叉表进行相关分析。 二、实验内容: 某班学生成绩表1如实验图表所示。 1.对该班物理成绩与数学成绩之间进行积差相关分析与肯德尔等级相关 分析. 2.在控制物理成绩不变得条件下,做数学成绩与英语成绩得相关分析(这 种情况下得相关分析称为偏相关分析)。 3.对该班物理成绩与数学成绩制作交叉表及进行其中得相关分析。 三、实验步骤: 1.选择分析→相关→双变量,弹出窗口,在对话框得变量列表中选变量 “数学成绩"、“物理成绩”,在相关系数列进行选择,本次实验选择 皮尔逊相关(积差相关)与肯德尔等级相关。单击选项,对描述统计量进 行选择,选择标准差与均值.单击确定,得出输出结果,对结果进行分析解 释。 2.选择分析→相关→偏相关,弹出窗口,在对话框得变量列表选变量“数 学成绩”、“英语成绩”,在控制列表选择要控制得变量“物理成绩”以在 控制物理成绩得影响下对变量数学成绩与英语成绩进行偏相关分析; 在“显著性检验”框中选双侧检验,单击确定,得出输出结果,对结果进 行分析解释. 3.选择分析→描述统计→交叉表,弹出窗口,对交叉表得行与列进行选 择,行选择为数学成绩,列选择为物理成绩.然后对统计量进行设置, 选择相关性,点击继续→确定,得出输出结果,对结果进行分析解释。 四、实验结果与分析: 表1

五、实验结果及其分析:

分析一:由实验结果可观察出,数学成绩与物理成绩得积差相关系数r=0、786,肯德尔等级相关系数r=0、602可知该班物理成绩与数学成绩之间存在显著相关。 分析二:由偏相关分析结果可知,英语成绩与数学成绩得相关系数r=—0、158,英语成绩与物理成绩得相关系数r=-0、150,在物理成绩得控制下,数学成绩与

编译原理LL(1)语法分析实验报告

学号20102798 专业软件工程姓名薛建东 实验日期2013.04.08 教师签字成绩实验报告 【实验名称】LL(1)语法分析 【实验目的】 通过完成预测分析法的语法分析程序,了解预测分析法和递归子程序法的区别和联系。使了解语法分析的功能,掌握语法分析程序设计的原理和构造方法,训练掌握开发应用程序的基本方法。 【实验内容】 ◆根据某一文法编制调试LL ( 1)分析程序,以便对任意输入的符号串进行分析。 ◆构造预测分析表,并利用分析表和一个栈来实现对上述程序设计语言的分析程序。 ◆分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号以及LL(1) 分析表,对输入符号串自上而下的分析过程。 【设计思想】 (1)、LL(1)文法的定义 LL(1)分析法属于确定的自顶向下分析方法。LL(1)的含义是:第一个L表明自顶向下分析是从左向右扫描输入串,第2个L表明分析过程中将使用最左推导,1表明只需向右看一个符号便可决定如何推导,即选择哪个产生式(规则)进行推导。 LL(1)文法的判别需要依次计算FIRST集、FOLLOW集和SELLECT集,然后判断是否为LL(1)文法,最后再进行句子分析。 需要预测分析器对所给句型进行识别。即在LL(1)分析法中,每当在符号栈的栈顶出现非终极符时,要预测用哪个产生式的右部去替换该非终极符;当出现终结符时,判断其与剩余输入串的第一个字符是否匹配,如果匹配,则继续分析,否则报错。LL(1)分析方法要求文法满足如下条件:对于任一非终极符A的两个不同产生式A→α,A→β,都要满足下面条件:SELECT(A→α)∩SELECT(A→β)=? (2)、预测分析表构造 LL(1)分析表的作用是对当前非终极符和输入符号确定应该选择用哪个产生式进行推

实验二--语法分析-

实验二--语法分析(算符优先)-(2)

编译原理实验报告实验名称:语法分析器设计 专业:计算机科学与技术 姓名:田莉莉 学号:201117906

语法分析—算符优先分析程序 一.实验要求 ⑴ 选择最有代表性的语法分析方法,如算符优先法、递归子程序法或LR 分析法 ⑵ 选择对各种常见程序语言都用的语法结构,如赋值语句(尤指表达式)作为分析对象,并且与所选语法分析方法要比较贴切。 ⑶ 实习时间为6 学时。 二.实验内容及要求 ( 1)根据给定文法,先求出 FirstVt 和 LastVt 集合,构造算符优先关系表(要求算符优先关系表输出到屏幕或者输出到文件); ( 2)根据算法和优先关系表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程) (3)给定表达式文法为: G(E ' ): E'T #E# E—E+T | T T—T*F |F F—(E)|i (4)分析的句子为 : (i+i)*i 和 i+i)*i 三.程序设计思想及实现步骤 程序的设计思想:

按照编译原理教材提供的算法,本程序的设计主要实现三个主要的过程: (1) 求解 FristVT 集和 LastVT 集:利用 CString 数组存放 VT 集,利用数组 下标对应非终结符关系; (2) 输出算符优先分析表:利用 MFC 中的 ClistCtrl 控件输出显示算符表, 比 利用二维数组对应其在内存中的关系。 (3) 利用算符优先分析表进行归约:根据教材所给算法,并对其进行实现在 屏幕上输 出归约过程。 实现步骤: 1、为程序各变量设计存储形式,具体设计如下所示: CString m_strTElem[T_LEN]; CString m_strNTElem[NT_LEN]; // 非终结符 CMapStringToPtr m_mapProdu; // 存放产生式 CMapStringToPtr m_mapProduEX; // 存放 扩展产生式 CString m_strFristVT[NT_LEN]; CString m_strLastVT[NT_LEN]; int m_nPriSheet[T_LEN+1][T_LEN+1]; // 终结符 //fristVT 集 //lastVT 集

实验报告心得体会

实验心得体会 在做测试技术的实验前,我以为不会难做,就像以前做物理实验一样,做完实验,然后两下子就将实验报告做完.直到做完测试实验时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅. 在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间.比如做光伏的实验,你要清楚光伏的各种接法,如果你不清楚,在做实验时才去摸索,这将使你极大地浪费时间,使你事倍功半.做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做.做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛. 通过这次测试技术的实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅. 实验心得体会

这个学期我们学习了测试技术这门课程,它是一门综合应用相关课程的知识和内容来解决科研、生产、国防建设乃至人类生活所面临的测试问题的课程。测试技术是测量和实验的技术,涉及到测试方法的分类和选择,传感器的选择、标定、安装及信号获取,信号调理、变换、信号分析和特征识别、诊断等,涉及到测试系统静动态性能、测试动力学方面的考虑和自动化程度的提高,涉及到计算机技术基础和基于LabVIEW的虚拟测试技术的运用等。 课程知识的实用性很强,因此实验就显得非常重要,我们做了金属箔式应变片:单臂、半桥、全桥比较,回转机构振动测量及谱分析,悬臂梁一阶固有频率及阻尼系数测试三个实验。刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题,也使我感到理论知识的重要性。但是我并没有气垒,在实验中发现问题,自己看书,独立思考,最终解决问题,从而也就加深我对课本理论知识的理解,达到了“双赢”的效果。 实验中我学会了单臂单桥、半桥、全桥的性能的验证;用振动测试的方法,识别一小阻尼结构的(悬臂梁)一阶固有频率和阻尼系数;掌握压电加速度传感器的性能与使用方法;了解并掌握机械振动信号测量的基本方法;掌握测试信号的频率域分析方法;还有了解虚拟仪器的使用方法等等。实验过程中培养了我在实践中研究问题,分析问题和解决问

公司运作模拟实训报告

武汉科技大学城市学院 公司运作模拟实训报告 学生姓名:宋天聪 学号:201210269227 专业班级:12级市场营销(专)班 指导教师:吴佑坚

公司运作模拟实训报告 为期一周的公司运作模拟实训结束了,这一周实训中使我受益匪浅。作为大三学生,即将面临就业,读书就到了实践的时候了,而模拟实训就给了我一个很好的实践机会,因为模拟企业就是在仿真的企业环境中,构建传统的手工管理模式和利用计算机计术、信息化技术的现代化管理模式,模拟现实企业的生产经营管理过程。 在模拟企业中分配不同的角色,让我们体验整个经营过程,并把所学的理论知识应用到实践中,可由此加深对企业和企业的物流、商流、资金流和信息流的体会,提高企业信息化管理的应用技能。我学的是市场营销专业,接触到只是市场分析、企业策划,但是在企业里每一职位环节都是紧紧相连的,所以在企业里要做好每一步是企业成功的关键。正所谓商场如战场,读万卷书不如行万里路。实践是检验理论的方法,所以通过这次实训体会到规划,决策,合作等因素对成

功是很重要的。 在这次实训里我作为市场总监,市场总监是市场部门的总负责人,直接对总经理负责,需要在市场分析调查领域具有良好的业绩和职业道德纪录,分析能力强,具有优秀的谈判技巧和供应商管理能力。对我来说,这是个挑战。作为市场总监我要主持市场部全面工作,统筹策划和确定运营内容,减少不必要的开支,以有效的资金,保证最大的供应,确保各项任务完成。 要取得成功不紧要每个人做好每个角色,还要有好的规划,决策,团队的合作等。第一,整体战略意识。第二,重视群体策略的团队精神。CEO在整个运营群体中,做出战略决策是CEO的职责,但是这个决策不能由CEO一个人来完成,必须协商生产,采购,营销和财务等各总监说出想法和参考意见,最后由CEO拿定方案开始实施。第三,财务预算。对于每个组来说,资金是短缺的,在运营过程中,每个CEO和财务总监都想尽办法弄到更多钱,减少资金的流失。所以财务对公司的运作是很重要的。第四,订单。每个季度的订单是很重要的,订单最重要的因素不在于它能挣多少,而是对自己企业而言,拿到合理的订单是胜利的第一步。第五,营销总监和生产总监的紧密配合。第六,了解对手。知己知彼百战百胜,时刻了解对手的动向,使本企业更好的作出及时可行的调整和对策,以致本企业的利益得到最大化。

编译原理实验二

实验二语法分析 一、实验目的: 设计MiniC的上下文无关文法,利用JavaCC生成调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。 二、语法分析器: 按照MiniC语言的语法规则检查词法分析输出的记号流是否符合这些规则,并根据这些规则所体现出的语言中的各种语法结构的层次性。把规则写入到JavaCC的.jjt文件中,可以生成树状的层次结构。 三、JavaCC: 在JavaCC的文法规范文件中,不仅可以描述语言的语法规范,而且可以描述词法规范,本次实习中,利用JavaCC以MiniC语言构造一个不含语义分析的编译器前端,包括词法分析、语法分析,并要考虑语法分析中的错误恢复问题。通过使用JavaCC, 可以体会LL(k)文法的编写特点,掌握编写JavaCC文法规范文件的方法。 内容:利用JavaCC生成一个MiniC的语法分析器; 要求: 1.用流的形式读入要分析的C语言程序,或者通过命令行输入源程序。 2.具有错误检查的能力,如果有能力可以输出错误所在的行号,并简单提示 3.如果输入的源程序符合MiniC的语法规范,输出该程序的层次结构的语法树本次实习仅完成以下语法范畴的语法分析: 1. 写出一个源程序中仅包含if…else, else语句的语法分析。要求能分析其自身 嵌套. 其他语句可简化处理 2. 写出一个源程序中仅包含for语句的语法分析。要求能分析其自身嵌套, 其他语句可简化处理 3. 写出一个源程序中仅包含while语句的语法分析。要求能分析其自身嵌套。 其他语句可简化处理 4. 写出一个源程序中包含上面的12或者13或者23或者123语句的语法分析。 要求能分析除其自身嵌套外,还包括相互嵌套。其他语句可简化处理 具体实施步骤如下: 1.把MiniC转换为文法如下 <程序〉→ main()〈语句块〉 〈语句块〉→{〈语句串〉}

相关与回归分析实验报告

课程论文 题目统计学实验 学院数学与统计学院 专业金融数学 班级14金融数学 学生姓名罗星蔓 指导教师胡桂华 职称教授 2016 年 6 月21 日

相关与回归分析实验报告 一、实验目的:用EXCEL进行相关分析和回归分析. 二、实验内容: 1.用EXCEL进行相关分析. 2.用EXCEL进行回归分析. 三、实验步骤 采用下面的例子进行相关分析和回归分析. 相关分析: 数学分数(x)统计学分数(y) 数学分数(x) 1 统计学分数(y) 0.986011 1 回归分析: SUMMARY OUTPUT 回归统计 Multiple R 0.986011 R Square 0.972217 Adjusted R 0.968744 Square 标准误差 2.403141 观测值 x 方差分 析

df SS MS F Significance F 回归分析1 1616.69 9 1616.69 9 279.943 8 1.65E-07 残差8 46.2006 9 5.77508 6 总计9 1662.9 Coefficie nts 标准误 差 t Stat P-valu e Lower 95% Upper 95% 下限 95.0% 上限 95.0% Intercept 12.32018 4.2862 79 2.8743 3 0.0206 91 2.4360 05 22.204 36 2.4360 05 22.204 36 数学分数(x)0.896821 0.0536 01 16.731 52 1.65E- 07 0.7732 18 1.0204 24 0.7732 18 1.0204 24 RESIDUAL OUTPUT 观测值预测统计学分数 (y) 残差标准残差 1 84.06587 0.934133 0.412293 2 93.03408 -1.03408 -0.4564 3 66.12945 3.87055 4 1.708324 4 93.03408 -3.03408 -1.33913 5 82.27223 0.727775 0.321214 6 90.34361 -0.34361 -0.15166 7 93.03408 0.965922 0.426323 8 52.67713 -2.67713 -1.18159 9 90.34361 2.656385 1.172433 10 84.06587 -2.06587 -0.9118 PROBABILITY OUTPUT 百分比排 位统计学分数 (y) 5 50 15 70 25 82 35 83 45 85 55 90 65 90 75 92

行业分析实验报告

行业分析实验报告 一、实验目的 查找有关资料,运用资料对行业进行分类,能判断行业所处生命周期,能了解政府政策对行业的影响,选择有投资前景的行业进行投资。 二、实验内容 (一)选择一类行业,比如医药行业,收集相关行业资料,进行投资分析。 (二)判断医药行业的行业特征、行业周期及政府相关政策影响。 1.行业特征: (1)高技术性 制药业融合了各个学科的先进技术,药品的研发过程需要尖端技术人才和充足的经费,药品的制造过程依赖精密的设备和先进工艺。 (2)高收益性 因为新药研发成本高,周期长,成功与否的不确定性大,所以新药在定价方面会有较高溢价,新药收益要远远超过其最初的研发投入。 (3)高风险性 制药业的高风险性主要表现为研发风险。医药产品的开发孕育着较大的不确定性,新药的研发从合成、提取、药物筛选、实验、注册上市到售后监督,耗资大、耗时长,任何一个环节出错或失败都可能前功尽弃。 2.行业周期:产业已由成长向成熟阶段发展。2003-2011年,医药制造业主营业务收入 增速保持在17%-30%之间,表明行业处于从成长期到成熟期过渡阶段,技术水平进步迅猛并日趋成熟,产品和服务日趋标准,企业经营比较规范,市场运行状况较好,行业系统风险相对较小。同时,医药制造业主营业务收入占国内生产总值的比重较为稳定,尤其是2008年金融危机爆发以来,在国内外经济增速普遍放缓的背景下,医药制造业表现较好,行业成长能力较强。 3.政府政策影响:近年来,我国加速了医药行业的改革速度,尤其是2015年以来,一系 列重大医疗改革政策密集发布。 三、实验结论 通过对医药行业的行业分析,个人认为在医药行业是防御型行业,特别在这次疫情中医药行业也有着不错的表现。在创新力度足够的情况和中药现代化的情况下,医药行业有着出色的发展前景,是值得投资的行业。 行业分析是基本分析的主要内容之一。不同的行业在国民经济发展的不同时期其表现也不同,做出正确的行业选择是投资成功的重要保障。

语法分析(自上而下分析)实验报告

实习二语法分析-自上而下分析 一、实验目的 使用预测分析方法对输入的表达式进行分析,掌握其具体的使用并且学会去分析一个文法。 二、实验内容 1.设计表达式的语法分析器算法(使用预测分析) 2.编写一段代码并上机调试查看其运行结果 三、实验要求 使用LL(1)分析算法设计表达式的语法分析器 LL(1)文法是一个自上而下的语法分析方法,它是从文法的开始符号出发,生成句子的最左推导,从左到右扫描源程序,每次向前查看一个字符,确定当前应该选择的产生式。 实现LL(1)分析的另一种有效方法是使用一张分析表和一个栈进行联合控制。 预测分析程序的总控程序在任何时候都是按STACK栈顶符号X和当前a的输入符号行事的。对于任何(X,a),总控程序每次都执行三种可能的动作之一。 1.若X=a=“#”,则宣布分析成功,停止分析过程 2.若X=a≠“#”,则把X从STACK栈顶逐出,让a指向下一 个输入符号。 3.若X是一个非终结符,则查看分析表。 四、运行结果

(本程序只能对由'i','+','*','(',')'构成的以'#'结束的字符串进行分析) 五、源程序实现 /*LL(1)分析法源程序,只能在VC++中运行*/ #include #include #include #include char A[20]; char B[20]; char v1[20]={'i','+','*','(',')','#'};/*终结符*/ char v2[20]={'E','G','T','S','F'};/*非终结符*/ int j=0,b=0,top=0,l;/*L为输入串长度*/

编译原理实验二语法分析器LL(1)实现

编译原理程序设计实验报告 ——表达式语法分析器的设计班级:计算机1306班姓名:张涛学号:20133967 实验目标:用LL(1)分析法设计实现表达式语法分析器 实验内容: ⑴概要设计:通过对实验一的此法分析器的程序稍加改造,使其能够输出正确的表达式的token序列。然后利用LL(1)分析法实现语法分析。 ⑵数据结构: int op=0; //当前判断进度 char ch; //当前字符 char nowword[10]=""; //当前单词 char operate[4]={'+','-','*','/'}; //运算符 char bound[2]={'(',')'}; //界符 struct Token { int code; char ch[10]; }; //Token定义

struct Token tokenlist[50]; //Token数组 struct Token tokentemp; //临时Token变量struct Stack //分析栈定义 { char *base; char *top; int stacksize; }; ⑶分析表及流程图

Begin PUSH(#),PUSH(E) POP(x) x ∈VT x ∈VN x=w end W=#n y NEXT(w) y n err 查LL (1)分析表空? n PUSH (i )err n y 逆序压栈 ⑷关键函数: int IsLetter(char ch) //判断ch 是否为字母 int IsDigit(char ch) //判断ch 是否为数字 int Iskey(char *string) //判断是否为关键字 int Isbound(char ch) //判断是否为界符 int Isboundnum(char ch) //给出界符所在token 值 int init(STack *s) //栈初始化 int pop(STack *s,char *ch) //弹栈操作 int push(STack *s,char ch) //压栈操作 void LL1(); //分析函数 源程序代码:(加入注释)

相关与回归分析实验报告

相关与回归分析实验报告

学 2014106146 号: 课程论文 题目统计学实验 学院数学与统计学院 专业金融数学 班级14金融数学 学生姓名罗星蔓 指导教师胡桂华 职称教授 2016 年 6 月21 日

相关与回归分析实验报告 一、实验目的:用EXCEL进行相关分析和回归 分析. 二、实验内容: 1.用EXCEL进行相关分析. 2.用EXCEL进行回归分析. 三、实验步骤 采用下面的例子进行相关分析和回归分析. 学生数学分数(x)统计学分数 (y) 1 2 3 4 5 6 7 8 9 10 80 90 60 90 78 87 90 45 87 80 85 92 70 90 83 90 94 50 93 82

相关分析: 数学分数(x)统计学分数(y) 数学分数(x) 1 统计学分数(y) 0.986011 1 回归分析: SUMMARY OUTPUT 回归统计 Multiple R 0.98601 1 R Square 0.97221 7 Adjusted R Square 0.96874 4 标准误差2.40314 1 观测值 x 方差分 析 df SS MS F Significanc e F 回归分析1 1616.69 9 1616.69 9 279.943 8 1.65E-07 残差8 46.2006 9 5.77508 6 总计9 1662.9 Coeffici ents 标准误 差 t Stat P-valu e Lower 95% Upper 95% 下限 95.0% 上限 95.0%

Intercept 12.32018 4.2862 79 2.8743 3 0.0206 91 2.4360 05 22.204 36 2.4360 05 22.204 36 数学分数(x)0.896821 0.0536 01 16.731 52 1.65E- 07 0.7732 18 1.0204 24 0.7732 18 1.0204 24 RESIDUAL OUTPUT 观测值预测统计学分数 (y) 残差 标准残 差 1 84.06587 0.93413 3 0.41229 3 2 93.03408 -1.0340 8 -0.4564 3 66.12945 3.87055 4 1.70832 4 4 93.03408 -3.0340 8 -1.3391 3 5 82.27223 0.72777 5 0.32121 4 6 90.34361 -0.3436 1 -0.1516 6 7 93.03408 0.96592 2 0.42632 3 8 52.67713 -2.6771 3 -1.1815 9 9 90.34361 2.65638 5 1.17243 3 10 84.06587 -2.0658 7 -0.9118 PROBABILITY OUTPUT 百分比排 位统计学分数 (y) 5 50 15 70 25 82 35 83

(实习报告)企业实习相关分析报告范文

企业实习相关分析报告范文 本次外出实习,部里安排我到xx会计师事务所实习,主要任务是协助各注册会计师到各街道进行查账,主要工作有编制工作底稿,查阅凭证,帐簿,报表发现问题,提出审计意见,进行现金盘点,资产清查,编制审计报告等。 本次外出实习,我感觉收获特别大。第一:收集了很多教学素材案例,在审计过程中,一旦我发现有对我以后教学有用的东西,我都会用笔记本记录下来。故此,这次外出企业实习,我做的笔记就有3本。我相信这些素材将会对我以,后教学提供很多帮助。本学期我讲授企业单项实训课程,在授课时就经常顺手拈来我外出审计中碰到的很多案例感觉教学效果很好。第二:了解目前企业会计现状以及他们在做帐过程中存在的各种问题及种种舞弊现象。第三:向注册会计师学习了很多知识,对于我在审计过程中碰到的各种问题,我都会虚心地向xx会计师事务所的老师询问,对于我提出的各种轰炸式提问,他们都很耐心地给予回答。第四:近距离接触,真正了解到对会计人员各方面素质及要求,为我以后在讲授课程时对于授课内容如何有所侧重更有帮助。本次发言,张部长主要让我谈一谈目前企业对会计人员要求,我们在教学中应注重培养学生哪些方面知识.我以为主要有以下几方面:一,会计电算化知识 本次外出企业查帐,我发现大部分企业已实现用电脑做帐,而且大部分企业公司都是采用金蝶财务软件做帐,少部分采用用友软件做帐。故此,我们应重点加强这方面知识讲授,让每位同学都能达到熟练运用这2个财务软件.既然是用电脑做帐,对打字速度有一定要求,一般要求学生每分钟要达到40-50个字左右。 二,税务知识 本次外出企业查帐,我发现很多公司因为规模较小,只设有一名会计人员,会计人员可以说是一名多面手、做帐、报税等均是他的工作。所以,我们以后应加强税务知识讲授,尤其是税务实务操作练习,教会每会学生如何申请报税、计税、缴税、尤其是几个主要税种,如个人所得税、企业所得税、营业税、房产税等更要重点讲授。 三,出纳方面知识 由于我们的学生学历较低,很多同学毕业后只能担任出纳,故此,对于出纳工作主要职责(如登记现金日记帐、银行存款日记帐、保管库存现金、有价证券、空白发票、支票印章)以及应具备技能(如点钞、计算器、辩别真假钞票)等应让学生熟练掌握。 四,财会法规知识

相关主题
文本预览
相关文档 最新文档