文档库 最新最全的文档下载
当前位置:文档库 › 《编译原理》实验指导书1524

《编译原理》实验指导书1524

《编译原理》实验指导书1524
《编译原理》实验指导书1524

《编译原理》实验指导书

适用专业:计算机科学与技术

网络工程

软件工程

物联网工程

编写者:编译原理课程组

修订时间:2015年9月

一、课程的教学目标

本课程融验证性实验与创新设计实验于一体,使学生把构造程序语言编译系统的基本原理和技术应用于实践,掌握设计和构造程序语言编译系统的工作框架和开发实现过程,增强学生开发较大型系统软件的能力。

通过对一个常用高级程序设计语言的简单语言子集编译系统中词法分析、语法分析、语义处理模块的设计、开发,掌握实际编译系统的核心结构、工作流程及其实现技术,获得分析、设计、实现编译程序等方面的实际操作能力,增强设计、编写和调试程序的能力。

通过开源编译器分析、编译过程可视化等扩展实验,促进学生增强复杂系统分析、设计和实现能力,鼓励学生创新意识和能力。

二、实验内容

本课程的实验内容分为三个实验项目,词法分析程序设计与实现、语法分析程序设计与实现、语义处理程序设计与实现,总的实验学时为30课时,各项实验学时分配表如表1。

表1:各项实验学时分配表

实验部分要求每个同学完成,扩展实验部分供实践能力较强的学生选做。

三、实验要求

1、每次实验前学生应详细阅读实验指导书,做好实验的设计和准备工作。

2、独立完成实验,程序书写符合程序书写规范,积极配合实验进度检查和演示。

3、按要求完成实验报告。不接受不完整的实验报告或者说明与程序、运行结果不符合的作业。

4、实验报告电子版实验报告和源程序在最后一次机时后的一周内上交。每人上交一个压缩文件,其命名格式为“学号_姓名.rar”(“组长学号_姓名.rar”),内含实验报告和一个命名为“源程序”的文件夹,其中包括一个说明文件和源程序,说明文件描述程序运行环境和使用方法,源程序应是经过调试、测试成功的程序,并应有相应的注释、运行环境和使用方法简介。

四、实验报告

每个人针对所完成的实验内容撰写实验报告,实验报告主要包括三方面内容:

1、实验设计:实验采用的实现方法和依据,如描述语言的文法及其机内表示,词法分析的单词分类码表、状态转换图或状态矩阵等,语法分析中用到的分析表或优先矩阵等,语法制导翻译中文法的拆分和语义动作的设计编写等;具体的设计结果,应包括整体设计思想和实现算法,程序结构的描述,

各部分主要功能的说明,以及所用数据结构的介绍等。

2、程序代码:实验实现的核心代码源程序清单,要求符合常规的程序书写风格,有详细的注释。

3、实验结果分析:自行编写若干源程序作为测试用例,对所生成的编译程序进行测试(编译程序的输入与输出以文件的形式给出);运行结果分析(至少包括一个正确和一个错误单词或语句的运行结果);以及改进设想等。五、考核评价方法

成绩采用五级分制,根据实验完成情况、实验报告、实验过程表现、成果演示情况等方面综合评定。进行扩展实验,按照完成情况加分。

实验一词法分析程序设计与实现

一、实验目的

通过编写和调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将字符流形式的源程序转化为一个由各类单词序列的词法分析方法。

二、基本实验内容与要求

假定一种高级程序设计语言中的单词主要包括五个关键字begin、end、if、then、else;标识符;无符号常数;六种关系运算符;一个赋值符和四个算术运算符,试构造能识别这些单词的词法分析程序(各类单词的分类码参见表1)。

输入:由符合和不符合所规定的单词类别结构的各类单词组成的源程序文件。

输出:把所识别出的每一单词均按形如(CLASS,V ALUE)的二元式形式输出,并将结果放到某个文件中。对于标识符和无符号常数,CLASS字段为相应的类别码的助记符;V ALUE字段则是该标识符、常数的具体值;对于关键字和运算符,采用一词一类的编码形式,仅需在二元式的CLASS字段上放置相应单词的类别码的助记符,V ALUE字段则为“空”。

要求:

1、上机前完成词法分析程序的程序流图,并选择好相应的数据结构。

2、用于测试扫描器的实例源文件中至少应包含两行以上的源代码。

3、对于输入的测试用例的源程序文件,词法正确的单词分析结果在输出文件中以二元式形式输出,错误的字符串给出错误提示信息。

例如,若输入文件中的内容为:“if myid>=1.5E?2+100 then x:=y”,则输出文件中的内容应为:

(IF,)

(ID,’myid’)

(GE,)

(UCON,0.015)

(PL,)

(UCON,100)

(THEN,)

(ID,’x’)

(IS,)

(ID,’y’)

三、实现方法

1、一般实现方法说明

词法分析是编译程序的第一个处理阶段,可以通过两种途径来构造词法分析程序。其一是根据对语言中各类单词的某种描述或定义(如BNF),用手工的方式(例如可用C语言)构造词法分析程序。一般地,可以根据文法或状态转换图构造相应的状态矩阵,该状态矩阵连同控制程序一起便组成了编译器的词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。构造词法分析程序的另外一种途径是所谓的词法分析程序的自动生成,即首先用正规式对语言中的各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程序所应进行的语义处理工作,然后由一个所谓词法分析程序的构造程序对上述信息进行加工。如美国BELL实验室研制的LEX就是一个被广泛使用的词法分析程序的自动生成工具。总的来说,开发一种新语言时,由于它的单词符号在不停地修改,采用LEX等工具生成的词法分析程序比较易于修改和维护。一旦一种语言确定了,则采用手工编写词法分析程序效率更高。本实验建议使用手工编写的方法。

在一个程序设计语言中,一般都含有若干类单词符号,为此可首先为每类单词建立一张状态转换图,然后将这些状态转换图合并成一张统一的状态图,即得到了一个有限自动机,再进行必要的确定化和状态数最小化处理,最后添加当进行状态转移时所需执行的语义动作,就可以据此构造词法分析程序了。

1、单词分类

为了使词法分析程序结构比较清晰,且尽量避免某些枝节问题的纠缠,我们假定要编译的语言中,全部关键字都是保留字,程序员不得将它们作为源程序中的标识符;在源程序的输入文本中,关键字、标识符、无符号常数之间,若未出现关系和算术运算符以及赋值符,则至少须用一个空白字符加以分隔。作了这些限制以后,就可以把关键字和标识符的识别统一进行处理。即每当开始识别一个单词时,若扫视到的第一个字符为字母,则把后续输入的字母或数字字符依次进行拼接,直至扫视到非字母、数字字符为止,以期获得一个尽可能长的字母数字字符串,然后以此字符串查所谓保留字表(此保留字表要事先造好),若查到此字符串,则取出相应的类别码;反之,则表明该字符串应为一标识符。

表1 语言中的各类单词符号及其分类码表

采用上述策略后,针对表1中的部分单词可以参考图1和程序1,用C 语言编写出符合以上几项要求的一个扫描器程序。

2、词法分析器的设计

图1 识别表I所列语言中的部分单词的DFA及相关的语义过程图1中所出现的语义变量及语义函数的含义和功能说明如下:

函数GETCHAR:每调用一次,就把扫描指示器当前所指示的源程序字符送入字符变量ch,然后把扫描指示器前推一个字符位置。

字符数组TOKEN:用来依次存放一个单词词文中的各个字符。

函数CAT:每调用一次,就把当前ch中的字符拼接于TOKEN中所存字符串的右边。

函数LOOKUP:每调用一次,就以TOKEN中的字符串查保留字表,若查到,

就将相应关键字的类别码赋给整型变量c;否则将c置为零。

函数RETRACT:每调用一次,就把扫描指示器回退一个字符位置(即退回多读的那个字符)。

函数OUT:一般仅在进入终态时调用此函数,调用的形式为OUT(c,VAL)。其中,实参c为相应单词的类别码助记符;实参VAL为TOKEN(即词文)或为空串。函数OUT的功能是,在送出一个单词的内部表示之后,返回到调用该词法分析程序的那个程序。

3、词法分析程序的实现

程序1 根据图1编写的扫描器

# include

# include

# include

# define ID 6

# define INT 7

# define LT 8

# define LE 9

# define EQ 10

# define NE 11

# define GT 12

# define GE 13

char TOKEN[20];

extern int lookup (char*);

extern void out (int, char*);

extern report_error (void);

void scanner_example (FILE *fp)

{

char ch; int i, c;

ch=fgetc (fp);

if (isalpha (ch)) /*it must be a identifer!*/

{

TOKEN[0]=ch; ch=fgetc (fp); i=1;

while (isalnum (ch))

{

TOKEN[i]=ch; i++;

ch=fgetc (fp);

}

TOKEN[i]= ′\0′

fseek(fp,-1,1); /* retract*/

c=lookup (TOKEN);

if (c==0) out (ID,TOKEN); else out (c," ");

}

else

if(isdigit(ch))

{

TOKEN[0]=ch; ch=fgetc(fp); i=1;

while(isdigit(ch))

{

TOKEN[i]=ch; i++;

ch=fgetc(fp);

}

TOKEN[i]= ′\0′;

fseek(fp,-1,1);

out(INT,TOKEN);

}

else

switch(ch)

{

case ′<′: ch=fgetc(fp);

if(ch==′=′)out(LE," ");

else if(ch==′>′) out (NE," ");

else

{

fseek (fp,-1,1);

out (LT," ");

}

break;

case ′=′: out(EQ, " "); break;

case ′>′: ch=fgetc(fp);

if(ch==′=′)out(GE," ");

else

{

fseek(fp,-1,1);

out(GT," ");

}

break;

default: report_error( ); break;

}

return;

}

程序1中所用的若干函数以及主程序有待于具体编写,并需事先建立好保留字表,以备查询。例如:

/* 建立保留字表*/

#define MAX_KEY_NUMBER 20 /*关键字的数量*/

#define KEY_WORD_END “waiting for your expanding”/*关键字结束标记*/

char *KeyWordTable[MAX_KEY_NUMBER]={“begin”,“end”, “if”, “then”, “else”, KEY_WORD_END}; /* 查保留字表,判断是否为关键字*/

int lookup (char *token)

{

int n=0;

while (strcmp(KeyWordTable[n], KEY_WORD_END)) /*strcmp比较两串是否相同,若相同返回0*/ {

if (!strcmp(KeyWordTable[n], token)) /*比较token所指向的关键字和保留字表中哪个关键字相符*/ {

return n+1; /*根据单词分类码表I,设置正确的关键字类别码,并返回此类别码的值*/

break;

}

n++;

}

return 0; /*单词不是关键字,而是标识符*/

}

4、无符号常数的识别

注意按照本实验题目的具体要求,需要将图1和程序1中整常数的识别扩展为无符号常数,以满足题目的要求。关于无符号数的文法可参见图2,表2和程序2。

描述无符号数的右线性文法G1[<无符号数>]如下:

〈无符号数〉→d〈余留无符号数〉

〈无符号数〉→·〈小数部分〉

〈无符号数〉→ d

〈余留无符号数〉→d〈余留无符号数〉

〈余留无符号数〉→·〈十进小数〉

〈余留无符号数〉→E〈指数部分〉

〈余留无符号数〉→ d

〈余留无符号数〉→·

〈十进小数〉→E〈指数部分〉

〈十进小数〉→d〈十进小数〉

〈十进小数〉→ d

〈小数部分〉→d〈十进小数〉

〈小数部分〉→ d

〈指数部分〉→d〈余留整指数〉

〈指数部分〉→+〈整指数〉

〈指数部分〉→-〈整指数〉

〈指数部分〉→ d

〈整指数〉→d〈余留整指数〉

〈整指数〉→ d

〈余留整指数〉→d〈余留整指数〉

〈余留整指数〉→d

图2所示为上述文法的状态转换图,其中编号0、1、2、…、6分别代表非终结符号<无符号数>、<余留无符号数>、<十进小数>、<小数部分>、<指数部分>、<整指数>及<余留整指数>。

图2 文法G1[<无符号数>]的状态转换图

无符号数识别中的语义处理方法见嵌入了语义动作的状态矩阵表2,其功能是在扫描源程序字符串的过程中,把识别出的字符串形式的无符号数的值,

逐步转换为相应的二进制整数(ICON)或二进制浮点数(FCON)的内部形式。(注:考虑能否采用C语言的库函数实现此语义处理工作;是否可将无符号常数这一类单词进一步细分成整型常数和浮点型常数两类单词。)根据表2I所示的加入了语义过程说明的识别无符号数的状态矩阵,编写词法分析程序,部分实现代码如程序二所示。

表2 包含语义处理过程的识别无符号数的状态矩阵

程序2 单词分类码为UCON的无符号数的识别程序

1 #include

2 #include

3 #include

4

5 #define DIGIT 1

6 #define POINT 2

7 #define OTHER 3

8 #define POWER 4

9 #define PLUS 5

10 #define MINUS 6

11 #define UCON 7 //Suppose the class number of unsigned constant is 7

12 #define ClassOther 200

13 #define EndState -1

14 int w,n,p,e,d;

15 int Class; //Used to indicate class of the word

16 int ICON;

17 float FCON;

18 static int CurrentState; //Used to present current state, the initial value:0

19

20 int GetChar (void);

21 int EXCUTE (int,int);

22 int LEX (void);

23 int HandleOtherWord (void)

24 {return ClassOther;

25 }

26 int HandleError (void)

27 {printf ("Error!\n"); return 0;}

28

29 int GetChar (void)

30 {

31 int c;

32 c=getchar ( );

33 if(isdigit(c)) {d=c-′0′;return DIGIT;}

34 if (c==′.′) r eturn POINT;

35 if (c==′E′||c==′e′) return POWER;

36 if (c==′+′) return PLUS;

37 if (c==′-′) return MINUS;

38 return OTHER;

39 }

40 int EXCUTE (int state, int symbol)

41 {

42 switch (state)

43 {

44 case 0:switch (symbol)

45 {

46 case DIGIT: n=0;p=0;e=1;w=d;CurrentState=1;Class=UCON;break;

47 case POINT: w=0;n=0;p=0;e=1;CurrentState=3;Class=UCON;break;

48 default: HandleOtherWord( );Class=ClassOther;

49 CurrentState=EndState;

50 }

51 break;

52 case 1:switch (symbol)

53 {

54 case DIGIT: w=w*10+d;break; //CurrentState=1

55 case POINT: CurrentState=2;break;

56 case POWER: CurrentState=4;break;

57 default: ICON=w;CurrentState=EndState;

58 }

59 break;

60 case 2:switch (symbol)

61 {

62 case DIGIT: n++;w=w*10+d;break;

63 case POWER: CurrentState=4;break;

64 default: FCON=w*pow(10,e*p-n);CurrentState=EndState;

65 }

66 break;

67 case 3:switch (symbol)

68 {

69 case DIGIT: n++;w=w*10+d;CurrentState=2;break;

70 default: HandleError( );CurrentState=EndState;

71 }

72 break;

73 case 4:switch (symbol)

74 {

75 case DIGIT: p=p*10+d;CurrentState=6;break;

76 case MINUS: e=-1;CurrentState=5;break;

77 case PLUS: CurrentState=5;break;

78 default: HandleError( );CurrentState=EndState;

79 }

80 break;

81 case 5:switch (symbol)

82 {

83 case DIGIT: p=p*10+d;CurrentState=6;break;

84 default: HandleError( );CurrentState=EndState;

85 }

86 break;

87 case 6:switch (symbol)

88 {

89 case: DIGIT:p=p*10+d;break;

90 default: FCON=w*pow(10,e*p-n);CurrentState=EndState;

91 }

92 break;

93 }

94 return CurrentState;

95 }

96 int LEX (void)

97 {

98 int ch;

99 CurrentState=0;

100 while (CurrentState!=EndState)

101 {

102 ch=GetChar( );

103 EXCUTE (CurrentState,ch);

104 }

105 return Class;

106 }

四、扩展实验

1、对基本实验内容进行扩充,在词法分析过程中建立变量名表,以备后续的

编译过程查询;扩充关键字的数目、增加逻辑运算符等单词类别、将常数再细分成字符串常量、整型常量和实型常量等;添加词法分析中单词出错的位置和错误类型,以及删除注释部分等。

2、对基本实验内容进行扩充,增加状态转换图显示、词法分析过程的显示等

可视化展现功能。

3、研读GCC,CLANG等开源编译器的词法分析部分,分析其程序结构、实现

方法、识别的单词分类等。

4、其它自选题目。注意自选扩展实验须经过实验指导教师同意并备案。

实验二语法分析程序设计与实现

一、实验目的

任选一种有代表性的语法分析方法,如算符优先法、递归下降法、LL(1)、SLR(1)、LR(1)等,通过设计、编制、调试实现一个典型的语法分析程序,对实验一所得扫描器提供的单词序列进行语法检查和结构分析,实现并进一步掌握常用的语法分析方法。二、基本实验内容与要求

选择对各种常见高级程序设计语言都较为通用的语法结构——算术表达式的一个简化子集——作为分析对象,根据如下描述其语法结构的BNF定义G2[<算术表达式>],任选一种学过的语法分析方法,针对运算对象为无符号常数和变量的四则运算,设计并实现一个语法分析程序。

G2[<算术表达式>]:

<算术表达式> → <项> | <算术表达式>+<项> | <算术表达式>-<项>

<项> → <因式> | <项>*<因式> | <项>/<因式>

<因式> → <运算对象> | (<算术表达式>)

若将语法范畴<算术表达式>、<项>、<因式>和<运算对象>分别用E、T、F和i代表,则G2可写成:

G2[E]:E → T | E+T | E-T T → F | T*F | T/F F → i | (E)

输入:由实验一输出的单词串,例如:UCON,PL,UCON,MU,ID ······

输出:若输入源程序中的符号串是给定文法的句子,则输出“RIGHT”,并且给出每一步分析过程;若不是句子,即输入串有错误,则输出“ERROR”,并且显示分析至此所得的中间结果,如分析栈、符号栈中的信息等,以及必要的出错说明信息。

要求:

1、确定语法分析程序的流程图,同时考虑相应的数据结构,编写一个语法分析源程序。

2、将词法、语法分析合在一起构成一个完整的程序,并调试成功。

3、供测试的例子应包括符合语法规则的语句,及分析程序能判别的若干错例。对于所输入的字符串,不论对错,都应有明确的信息输出。

三、实现方法

1、一般实现方法说明

为了在对源程序的一遍扫描过程中,同时完成词法和语法分析任务,应注意首先修改实验一中的词法分析程序,将它编写为子程序的形式,以便供语法分析程序调用。另外,应加强错误检查,对输入符号串中的词法、语法错误,给出必要的说明信息,尽可能多地、确切地指出错误的位置、原因和性质。例如,在词法分析阶段,对当前正在处理的字符ch,可进一步定义一些与该字符相关的信息row和col,即定义:

char ch; /*The current character*/

int row; /*The line number position of the current character*/

int col; /*The column number position of the current character*/

分别表示该字符所在的行和列,这些内容在出错处理时用来提供和源程序位置相关的信息。

2、采用具有递归功能的高级语言编制递归下降法的语法分析程序

运算对象i可以进一步定义为变量、常数等,例如,此处将i定义为:i→<变量> <变量>→<标识符> <标识符>→<字母> <字母>→A|B|C|…|X|Y|Z

利用扩充的BNF消除G2[E]中E和T的直接左递归后,采用递归下降法分析上述算术表达式的框图见图3。其中ZC过程为总控程序,被设计成可以分析无穷多个算术表达式,主要完成:①通知外界键入算术表达式。②控制E过程分析算术表达式。③根据分析结果之正误,分别输出不同的信息。E、T和F三个过程分别对应<算术表达式>、<项>和<因式>三个产生式的处理。它们都利用到一个公共过程ADVANCE。ADVANCE过程负责从输入字符串ST中取出下一个字符,并存入SYM中等待分析;然后再剔除ST中的首字符,这可通过挪动字符串指针的办法来实现(而实际上是通过调用词法分析程序来实现ADVANCE功能的)。变量TZ之值标志分析的结果,表明表达式是否有错。

图3 递归下降法分析算术表达式的框图

(a) ZC 过程 (b) E 过程 (c) T 过程 (d) F 过程 (e) ADV ANCE 过程

3、基于预测分析法的语法分析程序

参考教材P121例 4.3,首先编写无二义性的简单算术表达式的文法(4.1),并通过消除左递归对其进行改写得到文法(4.1)’。然后求出如表4-1所示的各个FIRST集和FOLLOW集。再检查是不是LL(1)文法,并按照LL(1)文法构造如表4-2所示的预测分析表。最后根据预测分析器的工作流程,实现预测分析器的控制程序。

4、算符优先分析法的语法分析程序

如程序3所示。其中使用了分析栈stack,用来在分析过程中存放当前句型的某一前缀,一旦句型的最左素短语在栈顶形成,便立即进行归约。

程序3 算符优先分析算法

#define RIGHT 1

#define ERROR 0

#define MAXINPUT 300

#define MAXSTACK 100

#define STARTSYMBOL ′S′

int stack[MAXSTACK],a[MAXINPUT]; /* a[ ] is input line */

int IsHigherThan (int, int); /* priority detection */

int IsLowerThan (int, int); /* priority detection */

int IsEqualTo (int, int); /* priority detection */

int Reduce (int begin, int end, int len);

int IsVt (int); /* determine if stack symbol is in Vt */

int parser (void)

{

int i, k, r, NewVn; /* NewVn holds left side of a production */

i=0; k=0; /* i, k is index of a[ ] and stack[ ] separately */

stack[0]= ′#′;

do

{

int j;

r=a[i++];

if (IsVt(stack[k])) j=k; else j=k-1;

while (IsHigherThan(stack[j],r))

{

int q;

do {

q=stack[j];

if (IsVt(stack[j-1])) j--; else j-=2;

} while(!IsLowerThan(stack[j],q);

NewVn=Reduce(stack[j+1],stack[k],k-j);

k=j+1; /* reduce the leftmost prime phrase */

stack[k]=NewVn; /* it is stack[j+1] stack[j+2] … stack[k] */

} /*end of while*/

if (IsLowerThan(stack[j],r)) || IsEqualTo(stack[j],r))

stack[++k]=r;

else return ERROR;

} while (r!=′#′);

return RIGHT;

}

程序3给出的仅是采用算符优先分析方法的示意性识别算法,还有许多工作要做。如:首先要确定一种合适的数据结构,以便构造所给文法G2[<算术表达式>]的机内表示。然后,构造该文法的算符优先关系矩阵,在此可以根据算术表达式中各算符的优先级和结合性,直接手工构造算符优先关系。最后,编写程序三中所用到的各个函数,完成整个算符优先语法分析器的开发。

5、SLR(1)分析器的开发

首先,对于分析对象,即算术表达式的文法G2[E],引入一个新的开始符号E’,得到G2[E]的拓广文法G2’[E’]:

0. E’→E 1. E→E+T 2. E→E-T 3. E→T 4. T→T*F 5. T→T/F 6. T→F 7. F→(E) 8. F→i

求出文法中各个非终结符号的FOLLOW集如下:

Follow(E)={#,),+,-}

Follow(T)={#,),+,-,*,/}

Follow(F)={#,),+,-,*,/}

然后,根据文法G2’[E’]构造识别其全部活前缀的DFA,以便据此构造

SLR(1)分析表,参见表3。( 1, )2, + 3, - 4, * 5, / 6, i 7,

表3 G2’[E’]的SLR(1)分析表

最后,编程实现SLR(1)分析表的驱动程序,即开发LR分析器的总控程序,完成对算术表达式的识别。

四、扩展实验

1、对所给算术表达式的文法G2,完成两种以上不同的语法分析程序的设计与实现。

2、在G2的基础上,适当增加功能,如进一步选择高级语言中的赋值语句、复合语句、流程控制语句等其它类型的语法结构作为分析对象。

3、对基本实验内容进行扩充,增加语法分析过程的可视化展现功能。

4、研读GCC,CLANG等开源编译器的语法分析部分,分析其程序结构、实现方法、识别的语法结构等。

5、其它自选题目。注意自选扩展实验须经过实验指导教师同意并备案。

测试技术实验指导书及实验报告2006级用汇总

矿压测试技术实验指导书 学号: 班级: 姓名: 安徽理工大学 能源与安全学院采矿工程实验室

实验一常用矿山压力仪器原理及使用方法 第一部分观测岩层移动的部分仪器 ☆深基点钻孔多点位移计 一、结构简介 深基点钻孔多点位移计是监测巷道在掘进和受采动影响的整个服务期间,围岩内部变形随时间变化情况的一种仪器。 深基点钻孔多点位移包括孔内固定装置、孔中连接钢丝绳、孔口测读装置组成。每套位移计内有5~6个测点。其结构及其安装如图1所示。 二、安装方法 1.在巷道两帮及顶板各钻出φ32的钻孔。 2.将带有连接钢丝绳的孔内固定装置,由远及近分别用安装圆管将其推至所要求的深度。(每个钻孔布置5~6个测点,分别为;6m、5m、4m、3m、2m、lm或12m、10m、8m、6m、4m、2m)。 3.将孔口测读装置,用水泥药圈或木条固定在孔口。 4。拉紧每个测点的钢丝绳,将孔口测读装置上的测尺推至l00mm左右的位置后,由螺丝将钢丝绳与测尺固定在一起。 三、测试方法 安装后先读出每个测点的初读数,以后每次读得的数值与初读数之差,即为测点的位移值。当读数将到零刻度时,松开螺丝,使测尺再回到l00mm左右的位置,重新读出初读数。 ☆顶板离层指示仪 一、结构简介: 顶板离层指示仪是监测顶板锚杆范围内及锚固范围外离层值大小的一种监测仪器,在顶板钻孔中布置两个测点,一个在围岩深部稳定处,一个在锚杆端部围岩中。离层值就是围岩中两测点之间以及锚杆端部围岩与巷道顶板表面间的相对位移值。顶板离层指示仪由孔内固定装置、测量钢丝绳及孔口显示装置组成如图1所示。

二、安装方法: 1.在巷道顶板钻出φ32的钻孔,孔深由要求而定。 2.将带有长钢丝绳的孔内固定装置用安装杆推到所要求的位置;抽出安装杆后再将带有短钢丝绳的孔内固定装置推到所要求的位置。 3.将孔口显示装置用木条固定在孔口(在显示装置与钻孔间要留有钢丝绳运动的间隙)。 4.将钢丝绳拉紧后,用螺丝将其分别与孔口显示装置中的圆管相连接,且使其显示读数超过零刻度线。 三、测读方法: 孔口测读装置上所显示的颜色,反映出顶板离层的范围及所处状态,显示数值表示顶板的离层量。☆DY—82型顶板动态仪 一、用途 DY-82型顶板动态仪是一种机械式高灵敏位移计。用于监测顶底板移近量、移近速度,进行采场“初次来压”和“周期来压”的预报,探测超前支撑压力高 峰位置,监测顶板活动及其它相对位移的测量。 二、技术特征 (1)灵敏度(mm) 0.01 (2)精度(%) 粗读±1,微读±2.5 (3)量程(mm) 0~200 (4)使用高度(mm) 1000~3000 三、原理、结构 其结构和安装见图。仪器的核心部件是齿条6、指针8 以及与指针相连的齿轮、微读数刻线盘9、齿条下端带有读 数横刻线的游标和粗读数刻度管11。 当动态仪安装在顶底板之间时,依靠压力弹簧7产生的 弹力而站立。安好后记下读数(初读数)并由手表读出时间。 粗读数由游标10的横刻线在刻度管11上的位置读出,每小 格2毫米,每大格(标有“1”、“22'’等)为10毫米,微读数 由指针8在刻线盘9的位置读出,每小格为0.01毫米(共200 小格,对应2毫米)。粗读数加微读数即为此时刻的读数。当 顶底板移近时,通过压杆3压缩压力弹簧7,推动齿条6下 移,带动齿轮,齿轮带动指针8顺时针方向旋转,顶底板每 移近0.01毫米,指针转过1小格;同时齿条下端游标随齿条 下移,读数增大。后次读数减去前次读数,即为这段时间内的顶底板移近量。除以经过的时间,即得

编译原理实验指导

编译原理实验指导 实验安排: 上机实践按小组完成实验任务。每小组三人,分别完成TEST语言的词法分析、语法分析、语义分析和中间代码生成三个题目,语法分析部分可任意选择一种语法分析方法。先各自调试运行,然后每小组将程序连接在一起调试,构成一个相对完整的编译器。 实验报告: 上机结束后提交实验报告,报告内容: 1.小组成员; 2.个人完成的任务; 3.分析及设计的过程; 4.程序的连接; 5.设计中遇到的问题及解决方案; 6.总结。

实验一词法分析 一、实验目的 通过设计编制调试TEST语言的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。 二、实验预习提示 1.词法分析器的功能和输出格式 词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示 成以下的二元式(单词种别码,单词符号的属性值)。 2.TEST语言的词法规则 |ID|ID |NUM →a|b|…|z|A|B|…|Z →1|2|…|9|0 →+|-|*|/|=|(|)|{|}|:|,|;|<|>|! →>=|<=|!=|== →/* →*/ 三、实验过程和指导 1.阅读课本有关章节,明确语言的语法,画出状态图和词法分析算法流程图。 2.编制好程序。 3.准备好多组测试数据。 4.程序要求 程序输入/输出示例:

细胞生物学实验指导(植物版)

细胞生物学实验 实验一不同显微镜的使用及细胞一般形态结构的观测[实验目的] 通过本实验,使学生巩固普通光学显微镜的使用,学习相差显微镜、暗视野显微镜和荧光显微镜的使用方法,学习显微测量及显微摄影的操作方法,增强对细胞的形态和真实大小的感性认识。 通过本实验操作,要求学生掌握细胞形态结构的基本观测方法与技术,为进一步的细胞生物学研究打好基础。 [实验原理] 应用显微镜的成像原理(详见翟中和等主编《细胞生物学》,第三章第一节),同时借助显微镜的镜台测微尺和目镜测微尺,两尺配合使用,进行测量和运算,观察细胞形态,得出细胞的大小。 该实验完成需时6学时。 [实验材料、试剂和仪器] 一、仪器 普通光学显微镜、相差显微镜、暗视野显微镜、荧光显微镜、显微拍摄系统、37℃温箱、镜台测微尺、目镜测微尺等。 二、材料 洋葱根尖切片标本,念珠藻永久装片,兔肝细胞标本,夹竹桃花丝毛细胞,人口腔上皮细胞等。 三、试剂 生理盐水,10μg/mL罗丹明123染液(溶于甲醇,避光于4℃保存) [实验步骤] 一、暗视野显微镜观察夹竹桃花丝毛细胞 1、取一张清洁的载玻片,滴上一滴生理盐水。用镊子轻轻夹下一根夹竹桃花丝,置生理盐水中,盖上盖玻片,略微压片,用滤纸条吸去盖玻片四周多余的水分。 2、将上述装片置于显微镜载物台上,在10×物镜下找到夹竹桃花丝毛细胞清晰的图像。 3、换上暗视野聚光器,调节至最佳位置,通过聚光器上的调中螺旋调节聚光器的中心位置,得到最好的暗视野图像效果。 4、观察夹竹桃花丝毛细胞内部的显微结构和细胞质环流现象,并拍照。 5、换用高倍物镜观察时,要换用与高倍镜相匹配的暗视野聚光器,重复以上调节步骤。 二、相差显微镜观察夹竹桃花丝毛细胞 1、取一张清洁的载玻片,滴上一滴生理盐水。用镊子轻轻夹下一根夹竹桃花丝,置生

分析实验室用水检测作业指导书

1.目的 为了规范实验室用水,保证分析测定结果的准确可靠,确保实验数据的科学性和公证性,特制订此管理规定。 2.适用范围 本规定适用于检测中心分析实验用水的管理。 3. 责任 3.1 试剂管理员负责实验室用水的制备、检查分析、参与检验和贮存管理。 3.2 技术员在使用纯水的过程中应保证器皿或容器等的清洁,避免水的污染。 4. 内容 4.1 实验室用水的要求 4.1.1 外观:实验室用水目视观察应为无色透明的液体; 4.1.2 实验室用水分类、用途和检验标准: 表1 实验室用水的技术指标与检验频率

4.2 实验室超纯水的制备及检验检测(参照GB/T6682“一级水”检测) 4.2.1 按照超纯水机的说明书要求制备超纯水; 4.2.2电导率检验:Arium 611超纯水机具有电阻率的“在线”监测功能,并按校准周期要求进行校准。4.2.3吸光度检验:将水样分别注入1cm和2cm的石英比色皿中,在紫外分光光度计上,于254nm处,以1cm比色皿中水为参比,测定2cm比色皿中水的吸光度。 4.2.4可溶性硅检验:量取520mL超纯水,注入铂皿中,在防尘条件下,用亚沸蒸发至约20mL,停止加热,冷却至室温,加 1.0mL钼酸铵溶液(50g/L),摇匀,放置5min后,加 1.0mL草酸溶液(50g/L),摇匀,放置1min后,加1.0mL对甲氨基酚硫酸盐溶液(2g/L),摇匀。移入比色管中,稀释至25mL,摇匀,于60℃水浴中保温10min。溶液所呈蓝色不得深于标准比色溶液。 标准比色溶液的制备是取0.50mL二氧化硅标准溶液(10mg/L),用水样稀释至20mL后,与同体积试液同时同样处理。 4.3实验室纯化水的检验检测(按《中国药典》二部“纯化水”项下检测)

混凝土结构实验指导书及实验报告(学生用)

土木工程学院 《混凝土结构设计基本原理》实验指导书 及实验报告 适用专业:土木工程周淼 编 班级::学 号: 理工大学 2018 年9 月

实验一钢筋混凝土梁受弯性能试验 一、实验目的 1.了解适筋梁的受力过程和破坏特征; 2.验证钢筋混凝土受弯构件正截面强度理论和计算公式; 3.掌握钢筋混凝土受弯构件的实验方法及荷载、应变、挠度、裂缝宽度等数据的测试技术 和有关仪器的使用方法; 4.培养学生对钢筋混凝土基本构件的初步实验分析能力。 二、基本原理当梁中纵向受力钢筋的配筋率适中时,梁正截面受弯破坏过程表现为典型的三个阶段:第一阶段——弹性阶段(I阶段):当荷载较小时,混凝土梁如同两种弹性材料组成的组合梁,梁截面的应力呈线性分布,卸载后几乎无残余变形。当梁受拉区混凝土的最大拉应力达到混凝土的抗拉强度,且最大的混凝土拉应变超过混凝土的极限受拉应变时,在纯弯段某一薄弱截面出现首条垂直裂缝。梁开裂标志着第一阶段的结束。此时,梁纯弯段截面承担的弯矩M cr称为开裂弯矩。第二阶段——带裂缝工作阶段(II阶段):梁开裂后,裂缝处混凝土退出工作,钢筋应力急增,且通过粘结力向未开裂的混凝土传递拉应力,使得梁中继续出现拉裂缝。压区混凝土中压应力也由线性分布转化为非线性分布。当受拉钢筋屈服时标志着第二阶段的结束。此时梁纯弯段截面承担的弯矩M y称为屈服弯矩。第三阶段——破坏阶段(III阶段):钢筋屈服后,在很小的荷载增量下,梁会产生很大的变形。裂缝的高度和宽度进一步发展,中和轴不断上移,压区混凝土应力分布曲线渐趋丰满。当受压区混凝土的最大压应变达到混凝土的极限压应变时,压区混凝土压碎,梁正截面受弯破坏。此时,梁承担的弯矩M u 称为极限弯矩。适筋梁的破坏始于纵筋屈服,终于混凝土压碎。整个过程要经历相当大的变形,破坏前有明显的预兆。这种破坏称为适筋破坏,属于延性破坏。 三、试验装置

编译原理实验报告实验一编写词法分析程序

编译原理实验报告实验名称:实验一编写词法分析程序 实验类型:验证型实验 指导教师:何中胜 专业班级:13软件四 姓名:丁越 学号: 电子邮箱: 实验地点:秋白楼B720 实验成绩: 日期:2016年3 月18 日

一、实验目的 通过设计、调试词法分析程序,实现从源程序中分出各种单词的方法;熟悉词法分析 程序所用的工具自动机,进一步理解自动机理论。掌握文法转换成自动机的技术及有穷自动机实现的方法。确定词法分析器的输出形式及标识符与关键字的区分方法。加深对课堂教学的理解;提高词法分析方法的实践能力。通过本实验,应达到以下目标: 1、掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。 2、掌握词法分析的实现方法。 3、上机调试编出的词法分析程序。 二、实验过程 以编写PASCAL子集的词法分析程序为例 1.理论部分 (1)主程序设计考虑 主程序的说明部分为各种表格和变量安排空间。 数组 k为关键字表,每个数组元素存放一个关键字。采用定长的方式,较短的关键字 后面补空格。 P数组存放分界符。为了简单起见,分界符、算术运算符和关系运算符都放在 p表中 (编程时,还应建立算术运算符表和关系运算符表,并且各有类号),合并成一类。 id和ci数组分别存放标识符和常数。 instring数组为输入源程序的单词缓存。 outtoken记录为输出内部表示缓存。 还有一些为造表填表设置的变量。 主程序开始后,先以人工方式输入关键字,造 k表;再输入分界符等造p表。 主程序的工作部分设计成便于调试的循环结构。每个循环处理一个单词;接收键盘上 送来的一个单词;调用词法分析过程;输出每个单词的内部码。 ⑵词法分析过程考虑 将词法分析程序设计成独立一遍扫描源程序的结构。其流程图见图1-1。 图1-1 该过程取名为 lexical,它根据输入单词的第一个字符(有时还需读第二个字符),判断单词类,产生类号:以字符 k表示关键字;i表示标识符;c表示常数;p表示分界符;s表示运算符(编程时类号分别为 1,2,3,4,5)。 对于标识符和常数,需分别与标识符表和常数表中已登记的元素相比较,如表中已有 该元素,则记录其在表中的位置,如未出现过,将标识符按顺序填入数组id中,将常数 变为二进制形式存入数组中 ci中,并记录其在表中的位置。 lexical过程中嵌有两个小过程:一个名为getchar,其功能为从instring中按顺序取出一个字符,并将其指针pint加1;另一个名为error,当出现错误时,调用这个过程, 输出错误编号。 2.实践部分

细胞生物学实验指导(精)

细胞生物学实验指导 细胞生物学的发展总是依赖于技术和实验手段的进步,所以学习细胞生物学的技术和方法至关重要。 实验一普通显微镜及其使用(装片观察) 一、目的要求: 1、掌握显微镜的构造、油浸系的原理、使用方法、保护要点。 2、参观了解其他各类显微镜。 二、材料:普通光学显微镜及其他显微镜、细菌标本片、香柏油、二甲苯、擦镜纸。 三、方法和步骤: 1、介绍普通光学显微镜的构造 机械部分:镜座、镜臂、镜筒、转换器、载物台、调焦螺旋。 光学部分:接目镜、物镜、反光镜、聚光器。 2、油镜的原理及使用方法 原理:油镜头的晶片细小,进入镜中的光线亦少,光线经聚光器,通过载玻片进油镜时,由于空气介质和玻璃介质的折射率不一样,光线因折射而损失,使视野更暗。在载玻片和油镜之间加上和玻璃折光系数相同的香柏油,光线直接进入镜头,不发生折射,视野明亮,便于观察。 3、如何维护显微镜:机械部分的维护,光学部分的维护。 4、注意事项: (1)观察油镜载片时,先在载片上有菌影的地方滴1-2滴香柏油,然后放载物台中央,眼侧面看,慢慢降低油镜浸入香柏油中,镜头几乎接触标本。再用左眼在接目镜观察,同时慢慢旋动粗螺旋提起镜筒至能模糊看到物象时,再转动微调螺旋,直至看清晰为止。注意镜头离开油,就不能看清,重新按刚才的步骤进行。 (2)油镜使用过后,立即用擦镜纸擦拭镜头,如油渍已干,则可用香柏油粘二甲苯擦拭镜

头,再用干净擦镜纸擦去二甲苯。 5、观察几种细菌标本片。 6、示教看相差显微镜和荧光显微镜。 四、作业及思考题: 1、油镜的原理是什么? 2、光线强弱如何调节?与哪些部件有关? 实验二、细胞膜的渗透性 实验目的 了解细胞膜的渗透性及各类物质进入细胞的速度。 实验原理 将红细胞放入数种等渗溶液中,由于红细胞对各种溶质的透性不同,有的溶质可以渗入,有的不能渗入,渗入的溶质能够提高红细胞的渗透压,所以促使水分进入细胞,引起溶血,由于溶质透入速度互不相同,因此溶血时间也不相同。 实验用品 一、器材 50ml烧杯, 试管(1~10cm), 10ml移液管, 试管架。 二、材料 羊血。 三、试剂0.17mol/L氯化钠,0.17mol/L氯化胺,0.17mol/L醋酸胺,0.17mol/L硝酸钠,0.12mol/草酸胺,0.12mol/硫酸钠,0.32mol/葡萄糖,0.32mol/甘油,0.32mol/乙醇,0.32mol/丙酮。 实验方法 一、羊血细胞悬液 取50ml小烧杯一个,加1份羊血和10份0.17mol/L氯化钠,形成一种不透 明的红色液体,此即稀释的羊血。

预拌混凝土实验室作业指导书

预拌混凝土实验室作业指导 书

(此文档为Word 格式,下载后可以任意编辑修改!) 预拌混凝土实验室作业指导书 工程名称: 编制单位: 编制人: 审核人: 批准人: 编制日期:年月日 1

一、水泥试验操作细则 ( 一) 相关标准 GB175-2007 《通用硅酸盐水泥》; GB/T 176-2008 《水泥化学分析方法》; GB/T 17671-1999 《水泥胶砂强度检验方法》; GB/T 1345-2005 《水泥细度检验方法(80um筛筛分析) 》; GB/T 1346-2011 《水泥标准稠度用水量、凝结时间、安定性检验方法》; GB/T 12573-2008 《水泥取样方法》; JC/T 738-2004 《水泥强度快速检验方法》; GB/T 8074-2008 《水泥比表面积测定方法勃氏法》 ( 二) 取样方法 1、对同一水泥厂生产的同期出厂的同品种、同强度等级的水泥, 以一次进厂 ( 场) 的同一出厂编号的水泥为一批。但一批的总量不得超过500t. 随机地从不少于 3 个车罐中各取等量水泥, 经搅拌均匀后 , 再从中取不少于12kg 水泥作为检验试样 . 把试样均匀分成两等份, 一份由实验室按标准进行试验, 一份密封贮存 , 以备复验用. 2、对以进厂( 场) 的每批水泥 , 视在厂(场) 存放情况,应重新采集试样复验其 强度和安定性 . 存放期超过三个月的水泥, 使用前必须进行复验, 并按复验结果仲裁 . ( 三) 必试项目 1、水泥胶砂强度试验 2

(1)、材料 a. 当水泥从取样至试验要保持24h 以上时,应把它贮存在基本气密的容器 里,容器应与水泥不发生反应。 b. 标准砂应符合GB/T17671《水泥胶砂强度检验方法ISO 法》的质量要求。 c. 仲裁试验或其它重要试验用蒸馏水,其它试验可用饮用水。 (2)温、湿度 a. 水泥试体成型试验温度为20±2℃,相对湿度大于50%。水泥试样、标准 砂、拌和水及试摸的温度与室温相同。 b. 养护箱温度为20±1℃,相对湿度大于90%。养护水的温度为20±1℃ (3)、试体成型 a. 成型前将试摸擦净,四周的模板与底座的接触面上应涂一些黄干油,紧 密装配,防止漏浆,内壁均匀刷一薄层机油。 b. 水泥与标准砂的重量比1:3。水灰比为0.5 。 c. 每成型三条试体需称量的材料及用量见下表: 材料用量 水泥(g)450± 2 标准砂(g)1350± 5 拌合水(g)225± 1 a. 胶砂搅拌时先把水加入锅里,再加入水泥,把锅放在固定架上,上升至固定 位置,然后立即开动机器,低速搅拌30s 后,在第二个30s 开始的同时均匀地将砂子加入。当各级砂是分装时,从最粗粒级开始,依次将所需的每级砂 量加完。把机器转至高速再拌30s。停拌90s,在第一个15s 内用胶皮刮具将叶片和锅壁上的胶砂刮入中间,再高速搅拌60s。各个搅拌阶段,时间误 3

土工实验指导书及实验报告

土工实验指导书及实验报告编写毕守一 安徽水利水电职业技术学院 二OO九年五月

目录 实验一试样制备 实验二含水率试验 实验三密度试验 实验四液限和塑限试验 实验五颗粒分析试验 实验六固结试验 实验七直接剪切试验 实验八击实试验 土工试验复习题

实验一试样制备 一、概述 试样的制备是获得正确的试验成果的前提,为保证试验成果的可靠性以及试验数据的可比性,应具备一个统一的试样制备方法和程序。 试样的制备可分为原状土的试样制备和扰动土的试样制备。对于原状土的试样制备主要包括土样的开启、描述、切取等程序;而扰动土的制备程序则主要包括风干、碾散、过筛、分样和贮存等预备程序以及击实等制备程序,这些程序步骤的正确与否,都会直接影响到试验成果的可靠性,因此,试样的制备是土工试验工作的首要质量要素。 二、仪器设备 试样制备所需的主要仪器设备,包括: (1)孔径0.5mm、2mm和5mm的细筛; (2)孔径0.075mm的洗筛; (3)称量10kg、最小分度值5g的台秤; (4)称量5000g、最小分度值1g和称量200g、最小分度值0.01g的天平;

(5)不锈钢环刀(内径61.8mm、高20mm;内径79.8mm、高20mm或内径61.8mm、高40mm); (6)击样器:包括活塞、导筒和环刀; (7)其他:切土刀、钢丝锯、碎土工具、烘箱、保湿器、喷水设备、凡士林等。 三、试样制备 (一)原状土试样的制备步骤 1、将土样筒按标明的上下方向放置,剥去蜡封和胶带,开启土样筒取土样。 2、检查土样结构,若土样已扰动,则不应作为制备力学性质试验的试样。 3、根据试验要求确定环刀尺寸,并在环刀内壁涂一薄层凡士林,然后刃口向下放在土样上,将环刀垂直下压,同时用切土刀沿环刀外侧切削土样,边压边削直至土样高出环刀,制样时不得扰动土样。 4、采用钢丝锯或切土刀平整环刀两端土样,然后擦净环刀外壁,称环刀和土的总质量。 5、切削试样时,应对土样的层次、气味、颜色、夹杂物、裂缝和均匀性进行描述。 6、从切削的余土中取代表性试样,供测定含水率以及颗粒分析、界限含水率等试验之用。

细胞生物学实验指导

细胞生物学实验指导

细胞生物学实验指导目录 一.显微镜的使用 实验一、几种光学显微镜的使用 实验二、参观电子显微镜及生物超薄切片标本制备 二.细胞形态结构 实验三、细胞大小的形态观察——测微尺的使用 实验四、细胞活体染色技术 实验五、植物细胞骨架光学显微观察 实验六、胞间连丝观察 三.细胞化学 实验七、鉴定RNA的细胞化学方法——Branchet反应 实验八、DNA显色的观察——Feulgen反应 实验九、固绿染色法鉴定细胞内酸性蛋白与碱性蛋白 实验十、多糖及过氧化酶的显示 实验十一、核仁组成区的银染显示与观察 四.细胞生理 实验十二、细胞膜的通透性 实验十三、细胞电泳 五.细胞和组织培养技术 实验十四、植物原生质体的分离和融合 实验十五、植物细胞的培养与观察 实验十六、动物细胞融合 实验十七、动物细胞的培养与观察 六.细胞化学成分的分离 实验十八、细胞器的分离、纯化——细胞分级分离 实验十九、荧光的细胞化学测定 实验二十、细胞活力的鉴别 实验一几种光学显微镜的使用

一、实验目的 了解几种光学显微镜的结构、工作原理、主要用途和使用方法;掌握使用普通显微镜提高分辨力的方法。 二、实验原理 (一)基本原理 一般实验室经常使用的光学显微镜都是由物镜、目镜、聚光器和光阑组成,普通显微镜它们的放大原理及光路图如下: AB物体.A1B l第一次成像,A2B2第二次成像,O l目镜.O2物镜, F1为O l的前焦点,F2为O2的前焦点 各种光学显微镜的光学放大原理基本相同,各种特殊用途的光镜不过只是在光源、物镜、聚光器等方面作了改动,或在其它方面增设了某些特殊的设备。 (二)几种光学显微镜 l、普通光学显微镜: 普通光学显微镜也叫复式显微镜,是最常见,最简单的显微镜。它适于观察一般固定的,有色的透明度较高的标本。其最大分辨力一般为0.2微米,从构造上可分光学、机械和电子三大系统。 2、暗视野显微镜: 暗视野显微镜是以丁达尔现象(Tyndall phenomenon)(即光的微粒散射现象)为基础设计的,它使用了特殊的聚光器进行斜射照明,因光源中心束不直入物镜,所以视野黑暗,而被检细胞器因斜射照明发生衍射和反射,所以发亮可见。暗视野显微镜可用增加光照方法增加物体与背景的反差,因而可观察到0.2—0.004微米直径的微小粒子,但它分不清被检物的细微构造,它常用于观察物体的存在与运动。而暗视野显微镜与普通光学显微镜的区别,主要在于聚光器的不同,致使照明方法有别。确切地说,称暗视野显微镜为暗视野照明更为贴切。它是照明光线仅照亮被检样品而不进入物镜。使视野背景暗黑,样品明亮的照明方法。 3、相差显微镜: 相差是指同一光线经过折射率不同的介质其相位发生变化并产生的差异。相位是指在某一时间上,光的波动所达到的位置。

实验室设备作业指导书

实验室设备作业指导书 拉伸试验作业指导书 1、试验目的 测定金属材料、冶金产品和石油管材的各种拉伸性能指标。 2、试验标准 GB/T 228-2002金属拉伸试验方法。 3、试验程序和步骤 3.1 检查试样的表面质量,有裂纹等缺陷的试样不得进行拉伸试验。 2012年2月1日发布2012 年3月1日实施

3.2 检查试样表面尺寸,不符合要求的试样不得进行拉伸试验,特殊情况除外;同 时记录试样的宽度、 厚度和直径,并计算试样原始面积,至少保留4位有效数字。 3.3 用小标记、细划线等标记原始标距,但不得用引起过早断裂的缺口做标记。 3.4 根据试样的尺寸和钢级选择适当的载荷范围。 3.5 根据试样的形状选择适宜的夹具。 3.6 按工作台升降按钮,以调整试样尺寸的试验空间。 3.7 将试样一端夹于钳口。 3.8 开动油泵,并闭回油阀,开启送油阀,使工作台上升约10mm然后关闭送油阀。 3.9 调整指针对正零位。 3.10把工作台降至适当高度,将试样另一端夹在下钳口中。 3.11进入试验窗口,输入相关参数。 3.12 首先夹持试样上夹持部位,调整试样使其中心线和试验机中心线一致,然后再夹持 下夹持部分,试样夹持部分最少要为夹块长度的3/4。 3.13 装引伸计时应使引伸计夹持部分位于试样标距内。 3.14开始试验,软件自动切换到试验界面。 3.15按试样要求的加荷速度,缓缓开启送油阀,进行加荷试验。 3.16依程序提供的提示窗口,卸去引伸计后,继续拉伸直至试样断裂。并关闭送油阀,并停 止油泵工作 在试验结果栏中,程序将自动计算出的结果显示其中,保存并打印试验数据。 3.17 先卸掉下部分残样,再卸下上部分残样;然后把试样断口接在一起,根据打印的标 点测量相应的L K值,测量时尽可能使断裂位置位于测量中心,当断于标距外三分之二 位置时应按标准要求进行补偿,测量保留到小数点后一位。 3.19 妥善保管残余样品。 3.20 计算并填写运转记录、记录开机、关机时间、试验时温度和试验情况等。

CAD上机实验指导书及实验报告

北京邮电大学世纪学院 实验、实习、课程设计报告撰写格式与要求 (试行) 一、实验报告格式要求 1、有实验教学手册,按手册要求填写,若无则采用统一实验报告封面。 2、报告一律用钢笔书写或打印,打印要求用A4纸;页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 3、统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。 4、实验报告中的实验原始记录,须经实验指导教师签字或登记。 二、实习报告、课程设计报告格式要求 1、采用统一的封面。 2、根据教学大纲的要求手写或打印,手写一律用钢笔书写,统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。打印要求用A4纸;页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 三、报告内容要求 1、实验报告内容包括:实验目的、实验原理、实验仪器设备、实验操作过程、原始数据、实验结果分析、实验心得等方面内容。 2、实习报告内容包括:实习题目、实习任务与要求、实习具体实施情况(附上图表、原始数据等)、实习个人总结等内容。 3、课程设计报告或说明书内容包括:课程设计任务与要求、总体方案、方案设计与分析、所需仪器设备与元器件、设计实现与调试、收获体会、参考资料等方面内容。 北京邮电大学世纪学院 教务处 2009-8

实验报告 课程名称计算机绘图(CAD) 实验项目AutoCAD二维绘图实验 专业班级 姓名学号 指导教师实验成绩 2016年11月日

《编译原理》实验指导书

《编译原理》实验指导书 实验目的和内容 编译原理实验的目的是使学生将编译理论运用到实际当中,实现一个简单语言集的词法、语法和语义分析程序,验证实际编译系统的实现方法,并加深对编译技术的认识。 实验内容共需实现编译器的词法、语法和语义分析程序三个组成部分。要求学生必须完成每个实验的基本题目要求,有余力的同学可尝试实验的扩展要求部分。 实验报告 要求每人针对所完成的实验内容上交一份实验报告,其中主要包括三方面内容:1、实验设计:实验采用的实现方法和依据(如描述语言的文法及其机内表示,词分析 的单词分类码表、状态转换图或状态矩阵等,语法分析中用到的分析表或优先矩阵等,语法制导翻译中文法的拆分和语义动作的设计编写等);具体的设计结果(应包括整体设计思想和实现算法,程序结构的描述,各部分主要功能的说明,法以及所用数据结构的介绍等)。 2、程序代码:实验实现的源程序清单,要求符合一般的程序书写风格,有详细的注释。 3、实验结果分析:自行编写若干源程序作为测试用例,对所生成的编译程序进行测试 (编译程序的输入与输出以文件的形式给出);运行结果分析(至少包括一个正确和一个错误单词或语句的运行结果);以及改进设想等。 注意事项 1、电子版实验报告和源程序在最后一次机时后的一周内上交。(每个同学上交一个压 缩文件,其命名格式为“学号_姓名.rar”,内含实验报告和一个命名为“源程序” 的文件夹。注意提交的源程序应是经过调试、测试成功的较为通用的程序,并应有相应的注释、运行环境和使用方法简介。) 2、不接受不完整的实验报告和没有说明注释的源程序,或者说明与程序、运行结果不 符合的作业。 特别鼓励:扩展题目 1、为亲身经历一个小型编译器的开发全过程,触摸一下与实际编译器开发相关的工作, 大家可以自由组成3人左右的小组,推举组长,模拟一个团队分工协作开发大型软件的实战环境,融入软件工程的思想规范和一般理论方法,初步体验从系统分析设计、编码测试到交付维护的一个完整编译器软件的开发过程。要求组长为每个小组成员分配主要负责的任务,完成相应的分析设计员、程序员和测试员等角色的工作,并以小组为单位提交一份实验报告和源程序,在报告封面上写明每个同学主要完成和负责的部分。 2、以组为单位完成的实验内容至少必须整合词法、语法和语义三个部分的实验,对于 选定的适当规模的文法(如C语言的一个大小适宜的子集),进行系统的总体设计、功能分析、编码测试等工作。完成一个从对源程序的词法分析开始,到中间代码生成的完整的编译器前端的开发,使所涉及到的编译系统的各个组成模块有机地衔接在一起,提交一份完整的实验报告和源程序,并将以下几个方面描述清楚:

细胞生物学实验指导书09年

实验一普通光学显微镜的构造和使用 一、目的要求 1了解显微镜的基本构造和使用方法 2 掌握油镜的原理和使用方法 二、显微镜的基本结构及油镜的工作原理 1.显微镜的基本构造 光学部分:接目镜、接物镜、照明装置(聚光镜、虹彩光圈、反光镜等)。 机械部分:镜座、镜臂、镜筒、物镜转换器、载物台、载物台转移器、粗调节器、细调节器等部件。 2.显微镜的放大倍数和分辨率 放大倍数=接物镜放大倍数×接目镜放大倍数 显微镜的分辨率:表示显微镜辨析物体(两端)两点之间距离的能力3.油镜的使用原理 当光线由反光镜通过玻片与镜头之间的空气时,由于空气与玻片的密度不同,使光线受到曲折,发生散射,降低了视野的照明度。若中间的介质是一层油(其折射率与玻片的相近),则几乎不发生折射,增加了视野的进光量,从而使物象更加清晰。 三、器材 1.永久切片 2. 溶液或试剂:香柏油、二甲苯。 3. 仪器或其他用具:显微镜、擦镜纸等。 四、操作步骤 1.观察前的准备 (1)显微镜的安置,检查零件是否齐全,镜头是否清洁。 (2)调节光源 2.显微镜观察

(1)低倍镜观察 (2)高倍镜观察 (3)油镜观察:高倍镜下找到清晰的物象后,提升聚光镜,在标本中央滴一滴香柏油,使油镜镜头浸入香柏油中,细调至看清物象为止。3.显微镜用毕后的处理 观察完毕,上升镜筒,用擦镜纸和二甲苯清洗镜头,后将镜体全部复原。 五、思考题 1.用油镜观察时应注意哪些问题?在载玻片和镜头之间滴加什么油?起什么作用? 2.为什么在使用高倍镜及油镜时应特别注意避免粗调节器的误操作? 实验二胞间连丝的观察 一、实验目的 观察植物细胞的胞间连丝,加深对胞间连丝功能的认识. 二、实验原理 植物细胞的细胞壁上有许多原生质的细丝,称胞间连丝。相邻细胞的胞间连丝相互联接,在细胞间的物质运输与信息传递中起桥粱作用,并使细胞的各种生理活动协调一致,使植物体成为统一的有机体。用合适的植物细胞为材料,经简单处理,即能方便地看到胞间连丝。 三、实验材料 红辣椒表皮细胞临时装片、柿胚乳细胞间胞间连丝切片 四、实验步骤

预拌混凝土实验室作业指导书

预拌混凝土实验室作业指导书 工程名称: 编制单位: 编制人: 审核人: 批准人: 编制日期:年月日 1

一、水泥试验操作细则 ( 一) 相关标准 GB175-2007 《通用硅酸盐水泥》; GB/T 176-2008 《水泥化学分析方法》; GB/T 17671-1999 《水泥胶砂强度检验方法》; GB/T 1345-2005 《水泥细度检验方法(80um筛筛分析) 》; GB/T 1346-2011 《水泥标准稠度用水量、凝结时间、安定性检验方法》; GB/T 12573-2008 《水泥取样方法》; JC/T 738-2004 《水泥强度快速检验方法》; GB/T 8074-2008 《水泥比表面积测定方法勃氏法》 ( 二) 取样方法 1、对同一水泥厂生产的同期出厂的同品种、同强度等级的水泥, 以一次进厂 ( 场) 的同一出厂编号的水泥为一批。但一批的总量不得超过500t. 随机地从不少于 3 个车罐中各取等量水泥, 经搅拌均匀后 , 再从中取不少于12kg 水泥作为检验试样 . 把试样均匀分成两等份, 一份由实验室按标准进行试 验, 一份密封贮存, 以备复验用. 2、对以进厂( 场) 的每批水泥, 视在厂(场) 存放情况, 应重新采集试样复验其 强度和安定性 . 存放期超过三个月的水泥, 使用前必须进行复验, 并按复验结果仲裁. ( 三) 必试项目 1、水泥胶砂强度试验

(1)、材料 a. 当水泥从取样至试验要保持24h 以上时,应把它贮存在基本气密的容器 里,容器应与水泥不发生反应。 b. 标准砂应符合GB/T17671《水泥胶砂强度检验方法ISO 法》的质量要求。 c. 仲裁试验或其它重要试验用蒸馏水,其它试验可用饮用水。 (2)温、湿度 a. 水泥试体成型试验温度为20± 2℃,相对湿度大于50%。水泥试样、标准 砂、拌和水及试摸的温度与室温相同。 b. 养护箱温度为20± 1℃,相对湿度大于90%。养护水的温度为20± 1℃ (3)、试体成型 a. 成型前将试摸擦净,四周的模板与底座的接触面上应涂一些黄干油,紧 密装配,防止漏浆,内壁均匀刷一薄层机油。 b. 水泥与标准砂的重量比1:3。水灰比为。 c. 每成型三条试体需称量的材料及用量见下表: 材料用量 水泥(g)450± 2 标准砂(g)1350± 5 拌合水(g)225± 1 a. 胶砂搅拌时先把水加入锅里,再加入水泥,把锅放在固定架上,上升至固定 位置,然后立即开动机器,低速搅拌30s 后,在第二个30s 开始的同时均匀地将砂子加入。当各级砂是分装时,从最粗粒级开始,依次将所需的每级砂 量加完。把机器转至高速再拌30s。停拌 90s,在第一个15s 内用胶皮刮具将叶片和锅壁上的胶砂刮入中间,再高速搅拌60s。各个搅拌阶段,时间误

《流体力学》课程实验(上机)指导书及实验报告格式

《流体力学》课程实验指导书袁守利编 汽车工程学院 2005年9月

前言 1.实验总体目标、任务与要求 1)学生在学习了《流体力学》基本理论的基础上,通过伯努利方程实验、动量方程实 验,实现对基本理论的验证。 2)通过实验,使学生对水柱(水银柱)、U型压差计、毕托管、孔板流量计、文丘里流量计等流体力学常用的测压、测流量装置的结构、原理和使用有基本认识。 2.适用专业 热能与动力工程 3.先修课程 《流体力学》相关章节。 4.实验项目与学时分配 5. 实验改革与特色 根据实验内容和现有实验条件,在实验过程中,采取学生自己动手和教师演示相结合的方法,力求达到较好的实验效果。

实验一伯努利方程实验 1.观察流体流经实验管段时的能量转化关系,了解特定截面上的总水头、测压管水头、压强水头、速度水头和位置水头间的关系,从而加深对伯努利方程的理解和认识。 2.掌握各种水头的测试方法和压强的测试方法。 3.掌握流量、流速的测量方法,了解毕托管测速的原理。 二、实验条件 伯努利方程实验仪 三、实验原理 1.实验装置: 图一伯努利方程实验台 1.水箱及潜水泵 2.上水管 3.电源 4.溢流管 5.整流栅 6.溢流板 7.定压水箱 8.实验 细管9. 实验粗管10.测压管11.调节阀12.接水箱13.量杯14回水管15.实验桌 2.工作原理 定压水箱7靠溢流来维持其恒定的水位,在水箱下部装接水平放置的实验细管8,水经实验细管以恒定流流出,并通过调节阀11调节其出水流量。通过布置在实验管四个截面上的四组测压孔及测压管,可以测量到相应截面上的各种水头的大小,从而可以分析管路中恒定流动的各种能量形式、大小及相互转化关系。各个测量截面上的一组测压管都相当于一组毕托管,所以也可以用来测管中某点的流速。 电测流量装置由回水箱、计量水箱和电测流量装置(由浮子、光栅计量尺和光电子

编译原理实验指导书2010

《编译原理》课程实验指导书 课程编号: 课程名称:编译原理/Compiler Principles 实验总学时数: 8 适用专业:计算机科学与技术、软件工程 承担实验室:计算机学院计算机科学系中心实验室、计算机技术系中心实验室 一、实验教学的目的与要求 上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,实习题中的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的2次上机实验都属于一种设计类型的实验,每个实验的训练重点在于基本的编译技术和方法,而不强调面面俱到;实验的目的是旨在使学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容;培养学生编制算法的能力和编程解决实际问题的动手能力。 要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法设计和程序代码的编写;上机时应随带有关的编译原理教材或参考书;要学会程序调试与纠错。 每次实验后要交实验报告,实验报告的内容应包括: (1)实验题目、班级、学号、姓名、完成日期; (2)简要的需求分析与概要设计; (3)详细的算法描述; (4)源程序清单; (5)给出软件的测试方法和测试结果; (6)实验的评价、收获与体会。 开发工具: (1)DOS环境下使用Turbo C; (2)Windows环境下使用Visual C++ 。 考核: 实验成绩占编译原理课程结业成绩的10%。 三、单项实验的内容和要求: 要求每个实验保证每个学生一台微机。 实验一(4学时):单词的词法分析程序设计。 (一)目的与要求 1.目的 通过设计、编制、调试一个具体的词法分析程序,加深对词法分析原理的理解,并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。

实验室作业指导书

第一部分水样采集、贮存和运输操作实施细则 一.水样的分类 (一)综合水样把从不同采样点同时采集的各个瞬时水样混合起来所得到的样品称为“综合水样”。 (二)瞬时水样对于组成较稳定的水体或水体的组成在相当长的时间和相当大的空间范围变化不大,采瞬时样品具有很好的代表性。 (三)混合水样是指在同一采样点上于不同时间所采集的瞬时样的混合样。 (四)平均污水样对于排放污水的企业而言,生产的周期性影响着排污的规律性,在排放流量不稳定的情况下,可将一个排污口不同时间的污水样,依照流量的大小按比例混合。 (五)其它水样例如为监测洪水期或退水期的水质变化,调整水污案事故的影响等都须采集相应的水样,采集这类水样时,须根据污染物进入水系的位置和扩散方向布点并采样,一般采集瞬时水样。 二.地表水和地下水样的采集 (一)水样的类型 (1)表层水 在河流、湖泊可以直接汲水的场合,可用适当的容器如水桶采样,要注意不能混入漂浮于水面上的物质。 (2)一定深度的水 在湖泊、水库等采集一定深度的水时,可用直立式或有机玻璃采水器。(3)泉水、井水 (3)对于自喷的泉水,可在涌口处直接采样,采集不自喷的泉水时,将停滞在抽水管的水汲出,新水更替之后,再进行采样。从井水采集水样,必须在充分抽汲后进行,以保证水样能代表地下水水源。 (4)自来水或抽水设备中的水 采集这些水样时,应先放水数分钟,使积留在水管中的杂质及陈旧水排出,然后再取样。 采集水样前,应先用水样洗涤采样器容器、盛样瓶及塞子2-3次(油类除外)。 (二)采样前的准备 a.确定采样负责人 主要负责制定采样计划并组织实施。 b .制定采样计划 采样负责人在制定计划前要充分了解该项监测任务的目的和要求;应对要采样的监测断面周围情况了解清楚;并熟悉采样方法、水样容器的洗涤、样品的保存技术。在有现场测定项目和任务时,还应了解有关现场测定技术。 采样计划应包括:确定的采样垂线和采样点位、测定项目和数量、采样质量保证措施, 采样时间和路线、采样人员和分工、采样器材和交通工具以及需要进行的现场测定项目和安全保证等。 c.采样器材与现场测定仪器的准备 采样器材主要是采样器和水样容器。关于水样保存及容器洗涤方法见表1-1。本表所 列洗涤方法,系指对已用容器的一般洗涤方法。如新启用容器,则应事先作更充分的清洗,

电磁场实验指导书及实验报告

CENTRAL SOUTH UNIVERSITY 题目利用Matlab模拟点电荷电场的分布姓名xxxx 学号xxxxxxxxxx 班级电气xxxx班 任课老师xxxx 实验日期2010-10

电磁场理论 实验一 ——利用Matlab 模拟点电荷电场的分布 一.实验目的: 1.熟悉单个点电荷及一对点电荷的电场分布情况; 2.学会使用Matlab 进行数值计算,并绘出相应的图形; 二.实验原理: 根据库伦定律:在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸力,它们之间的力F 满足: R R Q Q k F ? 212 = (式1) 由电场强度E 的定义可知: R R kQ E ? 2 = (式2) 对于点电荷,根据场论基础中的定义,有势场E 的势函数为 R kQ U = (式3) 而 U E -?= (式4) 在Matlab 中,由以上公式算出各点的电势U ,电场强度E 后,可以用Matlab 自带的库函数绘出相应电荷的电场分布情况。 三.实验内容: 1. 单个点电荷 点电荷的平面电力线和等势线 真空中点电荷的场强大小是E=kq /r^2 ,其中k 为静电力恒量, q 为电量, r 为点电荷到场点P(x,y)的距离。电场呈球对称分布, 取电量q> 0, 电力线是以电荷为起点的射线簇。以无穷远处为零势点, 点电荷的电势为U=kq /r,当U 取

常数时, 此式就是等势面方程.等势面是以电荷为中心以r 为半径的球面。 平面电力线的画法 在平面上, 电力线是等角分布的射线簇, 用MATLAB 画射线簇很简单。取射线的半径为( 都取国际制单位) r0=, 不同的角度用向量表示( 单位为弧度) th=linspace(0,2*pi,13)。射线簇的终点的直角坐标为: [x,y]=pol2cart(th,r0)。插入x 的起始坐标x=[x; *x].同样插入y 的起始坐标, y=[y; *y], x 和y 都是二维数组, 每一列是一条射线的起始和终止坐标。用二维画线命令plot(x,y)就画出所有电力线。 平面等势线的画法 在过电荷的截面上, 等势线就是以电荷为中心的圆簇, 用MATLAB 画等势 线更加简单。静电力常量为k=9e9, 电量可取为q=1e- 9; 最大的等势线的半径应该比射线的半径小一点 r0=。其电势为u0=k8q /r0。如果从外到里取7 条等势线, 最里面的等势线的电势是最外面的3 倍, 那么各条线的电势用向量表示为: u=linspace(1,3,7)*u0。从- r0 到r0 取偶数个点, 例如100 个点, 使最中心点的坐标绕过0, 各点的坐标可用向量表示: x=linspace(- r0,r0,100), 在直角坐标系中可形成网格坐标: [X,Y]=meshgrid(x)。各点到原点的距离为: r=sqrt(X.^2+Y.^2), 在乘方时, 乘方号前面要加点, 表示对变量中的元素进行乘方计算。各点的电势为U=k8q. /r, 在进行除法运算时, 除号前面也要加点, 同样表示对变量中的元素进行除法运算。用等高线命令即可画出等势线 contour(X,Y,U,u), 在画等势线后一般会把电力线擦除, 在画等势线之前插入如下命令hold on 就行了。平面电力线和等势线如图1, 其中插入了标题等等。越靠近点电荷的中心, 电势越高, 电场强度越大, 电力线和等势线也越密。

相关文档