史天永_221300220_语法分析实验

史天永_221300220_语法分析实验
史天永_221300220_语法分析实验

《编译系统设计实践》实验项目一:词法分析实验

学号:221300220

姓名:史天永

年级:2014级

学院:软件学院

专业:软件工程

实验时间:2016-2017学年第二学期

任课教师:陈晖

1、实验所用Pascal语言文法如下:

::= .

::=

::= const ; | ε

::= = | , = ::= var ; |ε

::= | ,

::= procedure ; ; |ε

::= :=

| call

| begin end

| if then

| while do

::= | ;

::= odd |

::= = | <> | < | > | <= | >=

::= | | ::= + | -

::= |

::= * | /

::= | | ( )

注意:

(1) "ε" 表示空串。.

(2) 分别表示标识符和数。

2、整理出文法的终结符和非终结符:

3、整理出文法的产生式的简化形式:

4、利用下述算法构造LR(1)项集族

Setofltems CLOSURE(I)

{

repeat

for (I中的每个项[A—>α·Bβ,a]

for(G中的每个产生式B—>γ)

for(FIRST(βa)中的每个终结符号b)

将[B—>·γ,b]加入到集合I中;

Until不能向I中加入更多的项;

return I

}

Setofltems GOTO (I,X){

将J初始化为空集;

for(I中的每一个项[A—>α·Xβ,a] )

将项[A—>α·Xβ,a]加入到集合J中;return CLOSURE(J):

}

V oid items(G)

{

将C初始化为{ CLOSURE}({[ S’—>·S,$]});

repeat

for(C中的每一个项集I)

for(每一个文法符号X)

if(GOTO(I,X)非空且不在C中)

将GOTO(I,X)加入C中;until 不再有新的项集加入到C中;

}

部分LR(1)项集族如下图所示:

5、构造LR(1)语法分析表

5.1、根据LR(1)项集族构造LR(1)分析表时所遵循的流程:

5.2、部分LR(1)分析表如下图所示,表中的移入操作用正数表示,其中正数值为666的表示Acc,归约操作用负数表示,0表示错误的状态。

6、编写LR(1)语法分析器的驱动程序

6.1、LR(1)驱动程序工作模型:

6.2、编写LR(1)驱动程序的流程:

1、将状态栈初始化为0状态入栈,将文法符号栈初始化为$入栈

2、根据状态栈栈顶和当前输入指针指向的输入符号查询语法分析表进行如下工作;

移进:若语法分析表中对应“移进”,那么当前输入符号进符号栈,并据状态转换表查得输入符号所对应的新的状态进状态栈栈顶,然后重复步骤2

归约:若语法分析表中对应“归约”,则按指定产生式进行归约,若产生式右部的符号串长度为n,则符号栈栈顶的n个符号为句柄,所以符号栈栈顶n个符号出栈,同时,状态栈顶的n个元素也出栈,此时假设状态栈的栈顶为x,归约后将产生式左部的非终结符A进入文法符号栈,并据状态转换表查询状态x行对应的非终结符号A所对应的新状态,并将这个新的状态进入状态栈栈顶;然后重复步骤2

接受:若动作表中对应“acc”,则分析成功,退出程序;

出错:若动作表中对应空白,则报告错误信息,退出程序。

6.3、LR(1)驱动程序关键源码

while(true)

{

ch=str2[str2Pointer]; //从文法符号串中读取一个文法符号

v=table[state[stateTop]][findNumber(ch)]; //从分析表中读取当前状态下该文法符号的值

//printf("%d%d\n",state[stateTop],findNumber(ch));

if(v>0) //说明应该移入

{

if(v==666) //说明Acc了

{

int len=0;

for(m=0;m<=stateTop;m++)

{

printf("%d ",state[m]);

if(state[m]/10==0) //说明是一位数

len+=2;

else if(state[m]/10>0 && state[m]/10<10) //说明是两位数

len+=3;

else

len+=4;

}

temp=42-len;

while(temp--)printf(" ");

for(m=0;m<=symbolTop;m++)

printf("%c",symbol[m]);

temp=26-(m+1);

while(temp--)printf(" ");

printf("%37s%s\n",str2+str2Pointer," 接受!");

break;

}

else

{

int len=0;

for(m=0;m<=stateTop;m++)

{

printf("%d ",state[m]);

if(state[m]/10==0) //说明是一位数

len+=2;

else if(state[m]/10>0 && state[m]/10<10) //说明是两位数

len+=3;

else

len+=4;

}

temp=42-len;

while(temp--)printf(" ");

for(m=0;m<=symbolTop;m++)

printf("%c",symbol[m]);

temp=26-(m+1);

while(temp--)printf(" ");

printf("%37s%s\n",str2+str2Pointer," 移入");

//开始进行实际的移入操作

state[++stateTop]=v; //更新状态栈

symbol[++symbolTop]=ch; //更新符号栈

str2Pointer++; //更新输入指针往后移一位}

}

else if(v<0) //说明应该归约

{

int len=0;

for(m=0;m<=stateTop;m++)

{

printf("%d ",state[m]);

if(state[m]/10==0) //说明是一位数

len+=2;

else if(state[m]/10>0 && state[m]/10<10) //说明是两位数

len+=3;

else

len+=4;

}

temp=42-len;

while(temp--)printf(" ");

for(m=0;m<=symbolTop;m++)

printf("%c",symbol[m]);

temp=26-(m+1);

while(temp--)printf(" ");

printf("%37s%s",str2+str2Pointer," 根据");

printf("%s归约\n",production[-v]);

//开始进行实际的归约操作

stateTop = stateTop - pLen[-v]; //状态栈出栈

symbolTop = symbolTop - pLen[-v]; //符号栈出栈

symbol[++symbolTop]=pLeft[-v]; //更新符号栈

temp=table[state[stateTop]][findNumber(pLeft[-v])];

state[++stateTop]=temp; //更新状态栈

}

else if(v==0) //说明出错了

{

int len=0;

for(m=0;m<=stateTop;m++)

{

printf("%d ",state[m]);

if(state[m]/10==0) //说明是一位数

len+=2;

else if(state[m]/10>0 && state[m]/10<10) //说明是两位数

len+=3;

else

len+=4;

}

temp=42-len;

while(temp--)printf(" ");

for(m=0;m<=symbolTop;m++)

printf("%c",symbol[m]);

temp=26-(m+1);

while(temp--)printf(" ");

printf("%37s%s\n",str2+str2Pointer," 语法错误!");

fprintf(fp4,"对文法符号串:%s,解析到%s时发生语法错误!",str2,str2+str2Pointer);

break;

}

}

6、测试数据以及截图

测试数据1:如发现有语法错误,程序会报告发生了错误var a,b,c;

if(a>b) {* annotation *}

a=3*4*5

then

while(c>1)

do c=a+b.

测试数据2:

begin

while a

end.

测试数据3:const a=2,b=3; var j,m,n; begin

m:=2;

end.

编译原理实验报告《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

现代仪器分析重点总结(期末考试版)

现代仪器分析:一般的说,仪器分析是指采用比较复杂或特殊的仪器设备,通过测量物质的某些物理或物理化学性质的参数及其变化来获取物质的化学组成、成分含量及化学结构等信息的一类方法。灵敏度:指待测组分单位浓度或单位质量的变化所引起测定信号值的变化程度。灵敏度也就是标准曲线的斜率。斜率越大,灵敏度就越高 光分析法:利用光电转换或其它电子器件测定“辐射与物质相互作用”之后的辐射强度等光学特性,进行物质的定性和定量分析的方法。 光吸收:当光与物质接触时,某些频率的光被选择性吸收并使其强度减弱,这种现象称为物质对光的吸收。 原子发射光谱法:元素在受到热或电激发时,由基态跃迁到激发态,返回到基态时,发射出特征光谱,依据特征光谱进行定性、定量的分析方法。 主共振线:在共振线中从第一激发态跃迁到激发态所发射的谱线。 分析线:复杂元素的谱线可能多至数千条,只选择其中几条特征谱线检验,称其为分析线。 多普勒变宽:原子在空间作不规则的热运动所引起的谱线变宽。 洛伦兹变宽:待测原子和其它粒子碰撞而产生的变宽。 助色团:本身不吸收紫外、可见光,但与发色团相连时,可使发色团产生的吸收峰向长波方向移动,且吸收强度增强的杂原子基团。 分析仪器的主要性能指标是准确度、检出限、精密度。 根据分析原理,仪器分析方法通常可以分为光分析法、电分析化学方法、色谱法、其它仪器分析方法四大类。 原子发射光谱仪由激发源、分光系统、检测系统三部分组成。 使用石墨炉原子化器是,为防止样品及石墨管氧化应不断加入(N2)气,测定时通常分为干燥试样、灰化试样、原子化试样、清残。 光谱及光谱法是如何分类的? ⑴产生光谱的物质类型不同:原子光谱、分子光谱、固体光谱;⑵光谱的性质和形状:线光谱、带光谱、连续光谱;⑶产生光谱的物质类型不同:发射光谱、吸收光谱、散射光谱。 原子光谱与发射光谱,吸收光谱与发射光谱有什么不同 原子光谱:气态原子发生能级跃迁时,能发射或吸收一定频率的电磁波辐射,经过光谱依所得到的一条条分立的线状光谱。 分子光谱:处于气态或溶液中的分子,当发生能级跃迁时,所发射或吸收的是一定频率范围的电磁辐射组成的带状光谱。 吸收光谱:当物质受到光辐射作用时,物质中的分子或原子以及强磁场中的自选原子核吸收了特定的光子之后,由低能态被激发跃迁到高能态,此时如将吸收的光辐射记录下来,得到的就是吸收光谱。发射光谱:吸收了光能处于高能态的分子或原子,回到基态或较低能态时,有时以热的形式释放出所吸收的能量,有时重新以光辐射形式释放出来,由此获得的光谱就是发射光谱。 选择内标元素和分析线对有什么要求? a. 若内标元素是外加的,则该元素在分析试样中应该不存在,或含量极微可忽略不计,以免破坏内标元素量的一致性。 b. 被测元素和内标元素及它们所处的化合物必须有相近的蒸发性能,以避免“分馏”现象发生。 c. 分析线和内标线的激发电位和电离电位应尽量接近(激发电位和电离电位相等或很接近的谱线称为“均称线对”);分析线对应该都是原子线或都是离子线,一条原子线而另一条为离子线是不合适的。 d. 分析线和内标线的波长要靠近,以防止感光板反衬度的变化和背景不同引起的分析误差。分析线对的强度要合适。 e. 内标线和分析线应是无自吸或自吸很小的谱线,并且不受其他元素的谱线干扰。 原子荧光光谱是怎么产生的?有几种类型? 过程:当气态原子受到强特征辐射时,由基态跃迁到激发态,约在10-8s后,再由激发态跃迁回到基态,辐射出与吸收光波长相同或不同的辐射即为原子荧光。 三种类型:共振荧光、非共振荧光与敏化荧光。 为什么原子发射光谱法可采用内标法来消除实验条件的影响? 影响谱线强度因素较多,直接测定谱线绝对强度计算难以获得准确结果,实际工作多采用内标法。内标法属相对强度法,是在待测元素的谱线中选一条谱线作为分析线,然后在基体元素或在加入固定量的其他元素的谱线中选一条非自吸谱线作为内标线,两条谱线构成定量分析线对。 通常为什么不用原子吸收光谱法进行物质的定性分析? 答:原子吸收光谱法是定量测量某一物质含量的仪器,是定量分析用的,不能将物质分离,因此不能鉴定物质的性质,因此不能。。。。 原子吸收光谱法,采用峰值吸收进行定量分析的条件和依据是什么? 为了使通过原子蒸气的发射线特征(极大)频率恰好能与吸收线的特征(极大)频率相一致,通常用待测元素的纯物质作为锐线光源的阴极,使其产生发射,这样发射物质与吸收物质为同一物质,产生的发射线与吸收线特征频率完全相同,可以实现峰值吸收。 朗伯比尔定律的物理意义是什么?偏离朗伯比尔定律的原因主要有哪些? 物理意义是:当一束平行单色光通过均匀的溶液时,溶液的吸光度A与溶液中的吸光物质的浓度C及液层厚度L的乘积成正比。A=kcL 偏离的原因是:1入射光并非完全意义上的单色光而是复合光。2溶液的不均匀性,如部分入射光因为散射而损失。3溶液中发生了如解离、缔合、配位等化学变化。 影响原子吸收谱线宽度的因素有哪些?其中最主要的因素是什么? 答:影响原子吸收谱线宽度的因素有自然宽度Δf N、多普勒变宽和压力变宽。其中最主要的是多普勒变宽和洛伦兹变宽。 原子吸收光谱法,采用极大吸收进行定量的条件和依据是什么? 答:原子吸收光谱法,采用极大吸收进行定量的条件:①光源发射线的半宽度应小于吸收线半宽度;②通过原子蒸气的发射线中心频率恰好与吸收线的中心频率ν0相重合。定量的依据:A=Kc 原子吸收光谱仪主要由哪几部分组成?各有何作用? 答:原子吸收光谱仪主要由光源、原子化器、分光系统、检测系统四大部分组成。

数据分析实验报告

数据分析实验报告 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

第一次试验报告 习题1.3 1建立数据集,定义变量并输入数据并保存。 2数据的描述,包括求均值、方差、中位数等统计量。 分析—描述统计—频率,选择如下: 输出: 统计量 全国居民 农村居民 城镇居民 N 有效 22 22 22 缺失 均值 1116.82 747.86 2336.41 中值 727.50 530.50 1499.50 方差 1031026.918 399673.838 4536136.444 百分位数 25 304.25 239.75 596.25 50 727.50 530.50 1499.50 75 1893.50 1197.00 4136.75 3画直方图,茎叶图,QQ 图。(全国居民) 分析—描述统计—探索,选择如下: 输出: 全国居民 Stem-and-Leaf Plot Frequency Stem & Leaf 5.00 0 . 56788 数据分析实验报告 【最新资料,WORD 文档,可编辑修改】

2.00 1 . 03 1.00 1 . 7 1.00 2 . 3 3.00 2 . 689 1.00 3 . 1 Stem width: 1000 Each leaf: 1 case(s) 分析—描述统计—QQ图,选择如下: 输出: 习题1.1 4数据正态性的检验:K—S检验,W检验数据: 取显着性水平为0.05 分析—描述统计—探索,选择如下:(1)K—S检验

结果:p=0.735 大于0.05 接受原假设,即数据来自正太总体。 (2 )W 检验 结果:在Shapiro-Wilk 检验结果972.00 w ,p=0.174大于0.05 接受原假设,即数据来自正太总体。 习题1.5 5 多维正态数据的统计量 数据:

编译原理词法分析器语法分析器实验报告

编译技术 班级网络0802 学号3080610052姓名叶晨舟 指导老师朱玉全2011年 7 月 4 日

一、目的 编译技术是理论与实践并重的课程,而其实验课要综合运用一、二年级所学的多门课程的内容,用来完成一个小型编译程序。从而巩固和加强对词法分析、语法分析、语义分析、代码生成和报错处理等理论的认识和理解;培养学生对完整系统的独立分析和设计的能力,进一步培养学生的独立编程能力。 二、任务及要求 基本要求: 1.词法分析器产生下述小语言的单词序列 这个小语言的所有的单词符号,以及它们的种别编码和内部值如下表: 单词符号种别编码助记符内码值 DIM IF DO STOP END 标识符 常数(整)= + * ** , ( )1 2 3 4 5 6 7 8 9 10 11 12 13 14 $DIM $IF $DO $STOP $END $ID $INT $ASSIGN $PLUS $STAR $POWER $COMMA $LPAR $RPAR - - - - - - 内部字符串 标准二进形式 - - - - - - 对于这个小语言,有几点重要的限制: 首先,所有的关键字(如IF﹑WHILE等)都是“保留字”。所谓的保留字的意思是,用户不得使用它们作为自己定义的标示符。例如,下面的写法是绝对禁止的: IF(5)=x 其次,由于把关键字作为保留字,故可以把关键字作为一类特殊标示符来处理。也就是说,对于关键字不专设对应的转换图。但把它们(及其种别编码)预先安排在一张表格中(此表叫作保留字表)。当转换图识别出一个标识符时,就去查对这张表,确定它是否为一个关键字。 再次,如果关键字、标识符和常数之间没有确定的运算符或界符作间隔,则必须至少用一个空白符作间隔(此时,空白符不再是完全没有意义的了)。例如,一个条件语句应写为

【实验报告】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、充分理解了相关性分析的应用原理。

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

. 编译原理实验专业:13级网络工程

语法分析器1 一、实现方法描述 所给文法为G【E】; E->TE’ E’->+TE’|空 T->FT’ T’->*FT’|空 F->i|(E) 递归子程序法: 首先计算出五个非终结符的first集合follow集,然后根据五个产生式定义了五个函数。定义字符数组vocabulary来存储输入的句子,字符指针ch指向vocabulary。从非终结符E函数出发,如果首字符属于E的first集,则依次进入T函数和E’函数,开始递归调用。在每个函数中,都要判断指针所指字符是否属于该非终结符的first集,属于则根据产生式进入下一个函数进行调用,若first集中有空字符,还要判断是否属于该非终结符的follow集。以分号作为结束符。 二、实现代码 头文件shiyan3.h #include #include

#include using namespace std; #define num 100 char vocabulary[num]; char *ch; void judge_E(); void judge_EE(); void judge_T(); void judge_TT(); void judge_F(); 源文件 #include"shiyan3.h" void judge_E() { if(*ch==';') { cout<<"该句子符合此文法!"<

int a=0; cout<<"按1结束程序"<>a; if(a==1) exit(0); } else if(*ch=='('||*ch=='i') { judge_T(); judge_EE(); } else { cout<<"该句子不匹配此文法!"<>a; if(a==1) exit(0); }

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;

仪器分析实验总结

仪器分析实验总结 1014061525 虞梦娜 一、红外光谱仪实验报告 1.仪器结构 仪器设备:SHIMADZU IRPresting-21型傅立叶变换红外光谱仪 SHIMADZU IRPresting-21 仪器结构: 傅 傅立叶变换红外光谱仪的工作原理图 固定平面镜、分光器和可调凹面镜组成傅立叶变换红外光谱仪的核心部

件-迈克尔干涉仪。由光源发出的红外光经过固定平面镜反射镜后,由分光器分为两束:50%的光透射到可调凹面镜,另外50%的光反射到固定平面镜。 可调凹面镜移动至两束光光程差为半波长的偶数倍时,这两束光发生相长干涉,干涉图由红外检测器获得,经过计算机傅立叶变换处理后得到红外光谱图。 IRPresting-21型傅立叶变换红外光谱仪具300入射迈克尔逊密闭型干涉仪,单光束光学系统,空冷陶瓷光源,镀锗KBr基片分束器,温度可调的DLATGS检测器,波数范围7,800~350cm-1,S/N大于40000∶1(4cm-1,1分钟,2100cm-1附近,P—P),具有自诊断功能和状态监控器。可收集中红外、近红外、远红外范围光谱。 常用红外光谱-红外光谱仪 ①棱镜和光栅光谱仪 光栅光谱仪 属于色散型光谱仪,它的单色器为棱镜或光栅,属单通道测量,即每次只测量一个窄波段的光谱元。转动棱镜或光栅,逐点改变其方位后,可测得光源的光谱分布。随着信息技术和电子计算机的发展,出现了以多通道测量为特点的新型红外光谱仪,即在一次测量中,探测器就可同时测出光源中各个光谱元的信息。 ②傅里叶变换红外光谱仪

它是非色散型的,核心部分是一台双光束干涉仪,常用的是迈克耳孙干涉仪。当动镜移动时,经过干涉仪的两束相干光间的光程差就改变,探测器所测得的光强也随之变化,从而得到干涉图。 傅里叶变换红外光谱仪 傅里叶变换光谱仪的主要优点是: ①多通道测量使信噪比提高; ②没有入射和出射狭缝限制,因而光通量高,提高了仪器的灵敏度; ③以氦、氖激光波长为标准,波数值的精确度可达0.01厘米-1; ④增加动镜移动距离就可使分辨本领提高; ⑤工作波段可从可见区延伸到毫米区,使远红外光谱的测定得以实现。 上述各种红外光谱仪既可测量发射光谱,又可测量吸收或发射光谱。当测量发射光谱时,以样品本身为光源;测量吸收或反射光谱时,用卤钨灯、能斯脱灯、硅碳棒、高压汞灯(用于远红外区)为光源。所用探测器主要有热探测器和光电探测器,前者有高莱池、热电偶、硫酸三甘肽、氘化硫酸三甘肽等;后者有碲镉汞、硫化铅、锑化铟等。常用的窗片材料有氯化钠、溴化钾、氟化钡、氟化锂、氟化钙,它们适用于近、中红外区。在远红外区可用聚乙烯片或聚酯薄膜。此外,还常用金属镀膜反射镜代替透镜。

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

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

词法分析器实验报告

词法分析器实验报告 词法分析器设计 一、实验目的: 对C语言的一个子集设计并实现一个简单的词法分析器,掌握利用状 态转换图设计词法分析器的基本方法。利用该词法分析器完成对源程 序字符串的词法分析。输出形式是源程序的单词符号二元式的代码, 并保存到文件中。 二、实验内容: 1. 设计原理 词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号。 理论基础:有限自动机、正规文法、正规式 词法分析器(Lexical Analyzer) 又称扫描器(Scanner):执行词法分析的程序 2. 词法分析器的功能和输出形式 功能:输入源程序、输出单词符号 程序语言的单词符号一般分为以下五种:关键字、标识符、常数、运算符,界符 3. 输出的单词符号的表示形式: 单词种别用整数编码,关键字一字一种,标识符统归为一种,常数一种,各种符号各一种。 4. 词法分析器的结构 单词符号 5. 状态转换图实现

三、程序设计 1.总体模块设计 /*用来存储目标文件名*/ string file_name; /*提取文本文件中的信息。*/ string GetText(); /*获得一个单词符号,从位置i开始查找。并且有一个引用参数j,用来返回这个单词最后一个字符在str的位置。*/ string GetWord(string str,int i,int& j); /*这个函数用来除去字符串中连续的空格和换行 int DeleteNull(string str,int i); /*判断i当前所指的字符是否为一个分界符,是的话返回真,反之假*/ bool IsBoundary(string str,int i); /*判断i当前所指的字符是否为一个运算符,是的话返回真,反之假*/ bool IsOperation(string str,int i);

编译原理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)分析表的作用是对当前非终极符和输入符号确定应该选择用哪个产生式进行推

实用仪器分析实验报告xrf

实用仪器分析实验报告X射线荧光光谱分析实验 学号: 学生姓名: 指导老师: 学院: 专业班级: 实验日期: 中南大学冶环学院实验中心

图1 X射线荧光光谱仪(岛津XRF-1800) 四、实验步骤 (1)仪器准备 使用仪器前务必检查外部冷却水系统水压是否在,X-射线荧光光谱仪主机板面是否有error灯亮或电脑界面是否显示报错。 仪器的运行环境:室温:23±5℃ 湿度<70% ,室内无明显的震动,无灰尘。

(2)样品准备 使用压样机压制样品,样品要求: a 不受理有可能污染仪器的样品(有机样品,高挥发性物质、低熔点材料和有掉落的粉末等)和磁性样品。 b仪器元素检测范围O~U,若样品含O之前的元素(譬如C、B等),建议改用其他检测手段。 c若样品中可能含有少量贵金属,譬如Ag、Pd等,送样时需明确标注。 d粉末样品过筛200目,务必彻底干燥,送样量2g左右。 e粉末样品若出现质轻,粘样品袋等特征,需混合均匀一定比例分析纯硼酸后再送样,同时明确备注样品与硼酸的质量比。 f无需预制样的样品表面必须平整、光滑、没有瑕疵。 (3)软件操作 打开电脑桌面的“PCXRF”软件。点击“初始化”,点击主菜单上的“Maintenance”项,点击“Component Control”栏中的“X-ray Generator”。“Control”选“Normal”,“Xray”选“ON”,输入“Voltage”20KV、“Current”5MA,点击“Start”。X光指示灯和控制面板上”X-RAY”指示灯同时亮。此时可以日常分析了! (4)样品测试 点击“analysis”,“analytical”设置检测条件,输入对应样品序号。点击仪器上“START”按钮,进行样品测试。 (5)结束操作 测试完毕后,需将X光管及时降至20kV,5mA的低能耗状态。点击主菜单上的“Maintenance”项,点击“Component Control”栏中的“X-ray Generator”。“Control”选“Normal”,“Xray”选“ON”,输入“Voltage”20kV、“Current”5mA,点击“Start”。

数据分析实验报告

数据分析实验报告 【最新资料,WORD文档,可编辑修改】 第一次试验报告 习题1.3 1建立数据集,定义变量并输入数据并保存。 2数据的描述,包括求均值、方差、中位数等统计量。 分析—描述统计—频率,选择如下: 输出:

方差1031026.918399673.8384536136.444百分位数25304.25239.75596.25 50727.50530.501499.50 751893.501197.004136.75 3画直方图,茎叶图,QQ图。(全国居民) 分析—描述统计—探索,选择如下: 输出: 全国居民Stem-and-Leaf Plot Frequency Stem & Leaf 9.00 0 . 122223344 5.00 0 . 56788 2.00 1 . 03 1.00 1 . 7 1.00 2 . 3 3.00 2 . 689

1.00 3 . 1 Stem width: 1000 Each leaf: 1 case(s) 分析—描述统计—QQ图,选择如下: 输出: 习题1.1 4数据正态性的检验:K—S检验,W检验数据: 取显着性水平为0.05 分析—描述统计—探索,选择如下:(1)K—S检验 单样本Kolmogorov-Smirnov 检验 身高N60正态参数a,,b均值139.00

标准差7.064 最极端差别绝对值.089 正.045 负-.089 Kolmogorov-Smirnov Z.686 渐近显着性(双侧).735 a. 检验分布为正态分布。 b. 根据数据计算得到。 结果:p=0.735 大于0.05 接受原假设,即数据来自正太总体。(2)W检验

仪器分析期末总结

仪器分析期末重点知识总结 第一章 1.化学分析是以物质化学反应为基础的分析方法。仪器分析是以物质的物理性质和物理化学性质为基础的分析方法。 2.仪器分析法的数量级。 3.仪器分析方法分为光学分析法、电化学分析法、色谱法、和其它仪器分析法。 4.定量分析普遍使用的方法:标准曲线法。标准曲线是被测物质的浓度或含量与仪器响应信号的关系曲线。 5.许多方法的灵敏度随实验条件而变化,所以现在一般不用灵敏度作为方法的评价指标。 6.精密度公式: 7.准确度常用相对误差量度。方法有较好的精密度并且消除了系统误差后,才有较好的准确 度。 8.检出限:信噪比取3。方法的灵敏度越高,精密度越好,检出限就越低。精密度、准确度和检出限三个指标作为分析方法的主要评价指标。 第二章 1.光学分析法:根据物质发射的电磁辐射或电磁辐射与物质相互作用建立起来的分析方法。 2.电磁辐射具有波粒二象性:波动性和微粒性。 3. 4.普朗克方程将电磁辐射的波动性和微粒性联系在一起。 5.电磁辐射按照波长(或频率、波数、能量)大小的顺序排列就得到电磁波谱。 6.并不是原子中任何两个能级之间都能够发生跃迁。不符合光谱选择定则的跃迁叫禁戒跃迁。 7.原子光谱又称线状光谱。物质的原子光谱依其获得的方式不同分为发射光谱、吸收光谱和荧光光谱。 8.根据光谱产生的机理不同,分子光谱又可分为分子吸收光谱和分子发光光谱。分子对辐射能的选择性吸收由基态或较低能级跃迁到较高能级产生的分子光谱叫做分子吸收光谱。目前学过的分子吸收光谱:紫外可见吸收光谱和红外吸收光谱。 第三章 1.紫外-可见吸收光谱是根据溶液中物质的分子或离子对紫外可见光谱区辐射能的吸收来研究物质的组成和结构的方法,也称作紫外和可见吸收光度法。 2.电子跃迁类型: 3.把 4.烯化合物随着共轭体系的增大其吸收峰红移,摩尔吸收系数也会随共轭体系增大而发生显著100%r s s x =

词法分析器实验报告

词法分析器实验报告 一、实验目的及要求 本次实验通过用C语言设计、编制、调试一个词法分析子程序,识别单词,实现一个C语言词法分析器,经过此过程可以加深对编译器解析单词流的过程的了解。 运行环境: 硬件:windows xp 软件:visual c++6.0 二、实验步骤 1.查询资料,了解词法分析器的工作过程与原理。 2.分析题目,整理出基本设计思路。 3.实践编码,将设计思想转换用c语言编码实现,编译运行。 4.测试功能,多次设置包含不同字符,关键字的待解析文件,仔细察看运行结果,检测该分析器的分析结果是否正确。通过最终的测试发现问题,逐渐完善代码中设置的分析对象与关键字表,拓宽分析范围提高分析能力。 三、实验内容 本实验中将c语言单词符号分成了四类:关键字key(特别的将main说明为主函数)、普通标示符、常数和界符。将关键字初始化在一个字符型指针数组*key[]中,将界符分别由程序中的case列出。在词法分析过程中,关键字表和case列出的界符的内容是固定不变的(由程序中的初始化确定),因此,从源文件字符串中识别出现的关键字,界符只能从其中选取。标识符、常数是在分析过程中不断形成的。 对于一个具体源程序而言,在扫描字符串时识别出一个单词,若这个单词的类型是关键字、普通标示符、常数或界符中之一,那么就将此单词以文字说明的形式输出.每次调用词法分析程序,它均能自动继续扫描下去,形成下一个单词,直到整个源程序全部扫描完毕,从而形成相应的单词串。 输出形式例如:void $关键字

流程图、程序流程图:

程序: #include #include #include #include //定义关键字 char *Key[10]={"main","void","int","char","printf","scanf","else","if","return"}; char Word[20],ch; // 存储识别出的单词流 int IsAlpha(char c) { //判断是否为字母 if(((c<='z')&&(c>='a'))||((c<='Z')&&(c>='A'))) return 1; else return 0; } int IsNum(char c){ //判断是否为数字 if(c>='0'&&c<='9') return 1; else return 0; } int IsKey(char *Word){ //识别关键字函数 int m,i; for(i=0;i<9;i++){ if((m=strcmp(Word,Key[i]))==0) { if(i==0) return 2; return 1; } } return 0; } void scanner(FILE *fp){ //扫描函数 char Word[20]={'\0'}; char ch; int i,c; ch=fgetc(fp); //获取字符,指针fp并自动指向下一个字符 if(IsAlpha(ch)){ //判断该字符是否是字母 Word[0]=ch; ch=fgetc(fp);

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

实习二语法分析-自上而下分析 一、实验目的 使用预测分析方法对输入的表达式进行分析,掌握其具体的使用并且学会去分析一个文法。 二、实验内容 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为输入串长度*/

仪器分析总结

1仪器分析概述 1、1分析化学 1、1、1定义 分析化学就是指发展与应用各种方法、仪器与策略,获得有关物质在空间与时间方面组成与性质信息的一门科学,就是化学的一个重要分支。 1、1、2任务 分析化学的主要任务就是鉴定物质的化学组成(元素、离子、官能团、或化合物)、测定物质的有关组分的含量、确定物质的结构(化学结构、晶体结构、空间分布)与存在形态(价态、配位态、结晶态)及其与物质性质之间的关系等,属于定性分析、定量分析与结构分析研究的范畴。 ①确定物质的化学组成——定性分析 ②测量试样中各组份的相对含量——定量分析 ③表征物质的化学结构、形态、能态——结构分析、形态分析、能态分析 ④表征组成、含量、结构、形态、能态的动力学特征——动态分析 1、1、3 分类 根据分析任务、分析对象、测定原理、操作方法与具体要求的不同,分析方法可分为许多种类。 ①定性分析、定量分析与结构分析 ②无机分析与有机分析

③化学分析与仪器分析 ④常量分析、半微量分析与微量分析 ⑤例行分析与仲裁分析 1、1、4 特点 分析化学就是一门信息的科学,现代分析化学学科的发展趋势与特点可归纳为如下几个方面: ①提高分析方法的灵敏度; ②提高分析方法的选择性及解决复杂体系的分离问题; ③扩展物质的时间空间多维信息; ④对微型化及微环境的表征与测定; ⑤对物质形态、状态分析及表征; ⑥对生物活性及生物大分子物质的表征与测定; ⑦对物质非破坏性检测及遥测;

⑧分析自动化及智能化。 1、2 仪器分析 仪器分析就是化学学科得到一个重要分支,以物质的物理与物理化学性质为基础建立起来的一种分析方法。 1、2、1分类 仪器分析分为电化学分析、光化学分析、色谱分析、质谱分析、热分析法与放射化学分析法,详见下表。 1、2、2特点 ①灵敏度高:大多数仪器分析法适用于微量、痕量分析。如原子吸收分光光度法测定某些元素的绝对灵敏度可达10-14g,电子光谱甚至可达10-18g; ②取样量少:化学分析法需用10-1~10-4g,而仪器分析试样常在10-2~10-8g;

spss实验报告最终版本

实验课程专业统计软件应用 上课时间2012 学年 1 学期15 周(2012 年12 月18日—28 日) 学生姓名李艳学号2010211587 班级0331002 所在学院经济管 上课地点经管3 楼指导教师胡大权理学院

实验内容写作 第六章 一实验目的 1、理解方差分析的基本概念 2、学会常用的方差分析方法 二实验内容 实验原理:方差分析的基本原理是认为不同处理组的均值间的差别基本来源有两个:随机误差,如测 量误差造成的差异或个体间的差异,称为组内差异 根据老师的讲解和课本的习题完成思考与练习的5、6、7、8题。 第5题:为了寻求适应某地区的高产油菜品种,今选5个品种进行试验,每一种在4块条件完全相同的试验田上试种,其他施肥等田间管理措施完全一样。表 6.20所示为每一品种下每一块田的亩产量,根 据这些数据分析不同品种油菜的平均产量在显著水平0.05下有无显著性差异。 第一步分析 由于考虑的是控制变量对另一个观测变量的影响,而且是5个品种,所以不宜采用独立样本T检验,应该采用单因素方差分析。 第二步数据的组织 从实验材料中直接导入数据 第三步方差相等的齐性检验 由于方差分析的前提是各水平下的总体服从方差相等的正态分布,而且各组的方差具有齐性,其中正 态分布的要求并不是非常严格,但是对于方差相等的要求还是比较严格的,因此必须对方差相等的前提进 行检验。

第四步多重比较分析 通过上面的步骤,只能判断不同的施肥等田间操作效果是否有显著性差异,如果要想进一步了解究竟那 个品种与其他的有显著性均值差别等细节问题,就需要单击上图中的两两比较按钮。 第五步运行结果及分析 多重比较结果表:从该表可以看出分别对几个不同的品种进行的两两比较。最后我们可以得出结论第4品种是最好的。其他的次之。 第6题:某公司希望检测四种类型类型轮胎A,B,C,D的寿命,如表 6.21所示。其中每种轮胎应用在随选择的6种汽车上,在显著性水平0.05下判断不同类型轮胎的寿命间是否存在显著性差异。 第一步分析 由于考虑的是一个控制变量对另一个控制变量的影响,而且是4种轮胎,所以不宜采用独立样本T 检验,应该采用单因素方差分析。 第二步数据的组织 从实验材料中直接导入数据。 第三步方差相等的齐性检验 由于方差分析的前提是各水平下的总体服从方差相等的正态分布,而且各组的方差具有齐性,其中正态分 布的要求并不是非常严格,但是对于方差相等的要求还是比较严格的,因此必须对方差相等的前提进行检 验。选择菜单“分析”—均值比较—单因素ANOVA。

相关文档
最新文档