当前位置:文档之家› DO-WHILE语句的翻译程序设计(简单优先法,输出四元式)

DO-WHILE语句的翻译程序设计(简单优先法,输出四元式)

DO-WHILE语句的翻译程序设计(简单优先法,输出四元式)
DO-WHILE语句的翻译程序设计(简单优先法,输出四元式)

学号:

课程设计

题目

学院

专业

班级

姓名

指导教师

年月日

课程设计任务书

学生姓名:蔡亮专业班级:软件0505班

指导教师:林泓工作单位:计算机科学与技术学院

初始条件:

理论:学完编译课程,掌握一种计算机高级语言的使用。

实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体

要求)

(1)写出符合给定的语法分析方法的文法及属性文法。

(2)完成题目要求的中间代码四元式的描述。

(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。

(4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。

(5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:

1 系统描述(问题域描述);

2 文法及属性文法的描述;

3 语法分析方法描述及语法分析表设计;

4 给出中间代码形式的描述及中间代码序列的结构设计;

5 简要的分析与概要设计;

6 详细的算法描述(流程图或伪代码);

7 给出软件的测试方法和测试结果;

8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);

9 参考文献(按公开发表的规范书写)。

时间安排:

设计安排一周:周1、周2:完成系统分析及设计。

周3、周4:完成程序调试及测试。

周5:撰写课程设计报告。

设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。

设计报告书收取时间:设计周的次周星期一上午10点。

指导教师签名: 2008年 5月 23日

系主任(或责任教师)签名: 2008年 5月 23日

DO-WHILE语句的翻译程序设计

(简单优先法,输出四元式)

1问题描述

输入一个DO-WHILE的语句,进行词法分析,词法分析器利用超前搜索,状态转换等方法,将源程序转化成为一个一个的单词符号二元式,如果词法分析无误,则进入语法分析部分,使用简单优先法进行文法分析,为每个终极符与非终极符之间定义优先关系,利用优先关系进行移进-规约,如果能规约到文法的开始符,则文法分析成功,输出四元式.

2文法及属性文法的描述

2.1文法描述

G(s): S->do B while E,

B->c:=a+1,

E->a>b

2.2属性文法描述

G(s): S->do B while E, {S.begin:=newlabel;

B.next:=S.begin;

E.true:=newlabel;

E.false:= S.next;

S.code:=gen(S.begin’:’) |B.code |E.code

|gen(E.true’:’) |gen(‘goto’S.begin) ; } B->c:=a+1 { B.code:= ’c:=a+1’ }

E->a>b { E.code=gen(‘if’’a>b’’goto’ E.true) |Gen(‘goto’ E.false) }

E->true {E.code:=gen(‘goto’ E.true) }

E->false {E.code:=gen(‘goto’ E.false) }

3 语法分析方法描述

3.1简单优先法的定义

一个文法G,若它不含ε产生式,也不含任何右部相同的不同产生式,并且它的任何符号对(X,Y),或者没有关系,或者存在下述三种关系:=、<、>之一,则称该文法是一个简单优先文法。

A)X=Y当且仅当G中含有形如P→…XY…的产生式

B)X

C)X>Y当且仅当Y为G的终结符,G中含有形如P→…QR…的产生式,其中Q,R 为非终结符,且Q →…X,Y∈First(R)

D)对任何X,若文法开始符号S→X…,则##。

3.2简单优先法的基本思想

根据优先关系的定义,将简单优先文法中各文法符号之间的这种关系用一个矩阵表示,称作简单优先矩阵。PDA读入一个单词后,比较栈顶符号和该单词的优先级,若栈顶符号优先级低于该单词,继续读入;若栈顶符号优先级高于或等于读入符号,则找句柄进行归约,找不到句柄就继续读入。直到最后栈内只剩下开始符号,输入串读到“#”为止。此时识别正确。可分点描述如下:

1、对句型中相邻的文法符号规定优先关系,以寻找句型中的句柄;

2、规定句柄内各相邻符号之间具有相同的优先级;

3、规定句柄两端符号优先级要比位于句柄之外而又和句柄相邻的符号的优先级高,以先归约句柄;

4、对于文法中所有符号,只要它们可能在某个句型中相邻,就要为它们规定相应的优先关系,若某两个符号永远不可能相邻,则它们之间就无关系.

3.3简单优先矩阵

用于表示文法符号之间的简单优先关系的矩阵。

3.4简单优先法的优缺点

优点:技术简单,当做简单优先矩阵是要求较短。

缺点:适用范围小,分析表尺寸太大。

4 中间代码形式描述

四元式是一种比较普遍采用的中间代码形式。四元式的四个组成成分是:算符op,第一和第二运算对象ARG1和ARG2及运算结果RESULT。运算对象和运算结果有时指用户自己定义的变量,有时指编译程序引进的临时变量。

例如:输入字符串do c=a+1 while a>b则输出四元式

(1) (+,a,1,c)

(2) (>,a,b,t0)

(3) (=,t0,true,1)

(4) (-,-,-,-)

5简要的分析与概要设计

整个工程分为5个文件:

Main.c ----程序的入口点,输入待分析的字符串后先进行词法分析,然后调用两个函数进行语法分析及产生中间代码。

Global.h ----定义了一些全局变量及宏

Parse.h ----- 语法分析器的主要算法

Prece.h ----- 定义和实现了一些关于优先级的操作

Stack.h ----- 定义和实现了一个栈及其操作

而各模块的调度关系如下:

Main.c

Prece.h Global.h Parse.h Stack.h

6详细的算法描述(各部分的主要算法)

6.1 Main的主要算法

void InputString()//输入字符串

{

int len = 0;

printf("表达式文法为: ");

printf(GRAMMAR);

printf("\n Please input any string to parse:\n");

scanf("%s", Buff);//输入字符串

len = strlen(Buff);//取字符串长度

Buff[len] = '#';

Buff[len+1] = 0;

}

void main()//主程序

{

printf(" DO-WHILE循环语句的翻译\n ");

printf("循环语句的格式为:DO <赋值语句> WHILE <表达式>\n ");

printf("翻译的语句:do c=a+1 while a>b\n ");

cifa();//调用词法分析程序,对输入字符串进行词法分析

InputString();//再次输入待分析字符串以便进行语法分析

Parse();//调用语法分析,对输入字符串进行语法分析

getch();

}

void cifa()//词法分析

{

char str;

printf(" ********** 词法分析器**********\n");

if ((fp=fopen("lj.txt","r"))==NULL)//如果文件无法打开

printf("源程序无法打开!\n");

else

{ str =fgetc(fp);

while (str!=EOF)

{ if (isalpha(str)!=0)//判断是否为字符

str=letterprocess(str);//调用字符处理

else

{ if (isdigit(str)!=0)判断是否为数字

str=numberprocess(str);//调用数字处理

else//其它

str=otherprocess(str); //调用其它处理

}

};

printf("词法分析结束!\n");

}

}

6.2Global的主要算法

————关于一些全局变量及宏的定义

typedef enum{ false=0, true } bool;

#define GRAMMAR "G(s): S->do B while E,B->c:=a+1,E=a>b"//定义文法#define BUFFSIZE 100

#define STACKSIZE 100

6.3Parse的主要算法

void error()//规约不成功

{ printf("The input string doesn't match the grammar!");}

void succeed()//规约成功

{ printf("Succeed! The input match the grammar.");}

char Reduce(const char* c) //将终极符或非终极符规约为非终极符

{

if (*c == 'd') { return 'S'; }

else if (*c == 'c' )

{ return 'B'; }

else if (*c == 'a')

{ return 'E'; }

}

bool Parse()//简单优先语法分析

{

char c; //保存栈顶元素

char t; //保存最有可能弹出的终极符

int ip = 0; //指向输入缓冲区的指针

InitStack(); //初始化栈

while (true)

{ TopV alue(&c);

if (c=='S' && Buff[ip]=='#')//如果栈顶为S或#,规约成功

{ succeed();

return true; }

else

{ switch (GetPrecedence(&c, &Buff[ip]))

{//如果优先符是小于或等于则压栈,否则进栈

case LT:

case EQ:

{ Push(&Buff[ip++]);//压栈

PrintStack();

break; }

case GT:

{ Pop(&c);//出栈

do

{ t = c;

Pop(&c); }

while (GetPrecedence(&c, &t) != LT);

Push(&c);

t = Reduce(&t);

Push(&t);

PrintStack();

break; }

default:

{ error();

return false;

}

}

}

}

}

6.3 Prece的主要算法

//定义优先关系

Prece PreTable[18][18] =

{ /** S d o B w h i l e E a = + 1 > b c # **/

/* S */ { NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* d */ { NO, NO, EQ, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* o */ { NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, LT, GT }, /* B */{ NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* w */{ NO, NO, NO, NO, NO, EQ, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* h */ { NO, NO, NO, NO, NO, NO, EQ, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* i */ { NO, NO, NO, NO, NO, NO, NO, EQ, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* l */ { NO, NO, NO, NO, NO, NO, NO, NO, EQ, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* e */ { NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, LT, NO, NO, NO, NO, NO, NO, GT }, /* E */ {NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* a */ { NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, EQ, NO, NO, EQ, NO, GT },

/* = */ { NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, EQ, NO, NO, NO, NO, NO, NO, GT },

/* + */ { NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, EQ, NO, NO, NO, GT },

/* 1 */ { NO, NO, NO, NO, NO, GT, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* > */{ NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, EQ, NO, GT },

/* b */ { NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, GT },

/* c */ { NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, EQ, NO, NO, NO, NO, NO, GT },

/* # */ { LT, LT, LT, LT, LT, LT, LT, LT, LT, LT, LT, LT, LT, LT, LT, LT, LT, EQ },

};

int CharToIndex(const char* c)//定义矩阵

{

switch (*c)

{

case 'S': return 0;

case 'd': return 1;

case 'o': return 2;

case 'B': return 3;

case 'w': return 4;

case 'h': return 5;

case 'i': return 6;

case 'l': return 7;

case 'e': return 8;

case 'E': return 9;

case 'a': return 10;

case '=': return 11;

case '+': return 12;

case '1': return 13;

case '>': return 14;

case 'b': return 15;

case 'c': return 16;

case '#': return 17;

default: return -1;

}

}

Prece GetPrecedence(const char* c1, const char* c2) //取优先关系{

int i, j;

i = CharToIndex(c1);//栈顶元素

j = CharToIndex(c2); //输入符号流第一个元素

if (i!=-1 && j!=-1)

{ return PreTable[i][j]; }

else

{ return ND; //否则没有优先关系}

}

6.3 Stack的主要算法

void InitStack()//初始化符号栈

{ char c = '#';

StackTop = 0;

Push(&c);

}

bool Push(const char* c)//压栈

{

if (StackTop < STACKSIZE)

{ TheStack[StackTop++] = *c;

return true; }

else

{ return false; }

}

bool Pop(char* c)//出栈

{

if (StackTop >= 0)

{ *c = TheStack[--StackTop];

return true; }

else

{ return false; }

}

bool TopV alue(char* c)//取栈顶元素值

{

if (StackTop > 0) /* not null */

{ *c = TheStack[StackTop-1];

return true; }

else

{ return false; }

}

void PrintStack()//打印栈的元素

{ int i;

for (i=0; i

{ printf("%c", TheStack[i]); }

printf("\n");

}

7软件的测试

7.1调试

在visual c++ 6.0 下调试出现一下问题:

编译原理\ljsimple\prece.h(49) : warning C4013: 'CharToIndex' undefined; assuming extern returning int

编译原理\ljsimple\main.c(11) : warning C4005: 'NULL' : macro redefinition

编译原理\ljsimple\parse.h(37) : warning C4715: 'Reduce' : not all control paths return a value

具体的这些问题全都出现在文件调用过程中,修改个别输出方面的问题后成功得以解决。

7.2测试结果

调试成功后运行如下:

8 研制报告

这次编译原理课程设计的题目是用简单优先分析法进行DO-WHILE循环语句的语法分析,并输出四元式.设计的特点是利用定义每个终极符和非终极符之间优先关系,来进行符号的移进与规约,如果栈顶符号优先级低于该单词,继续读入;若栈顶符号优先级高于或等于读入符号,则找句柄进行归约,找不到句柄就继续读入。这样使得程序简化,只需定义一个栈用来存放移进的字符,然后用栈顶指针指向它后与待移进字符比较优先级即可,设计简单.此设计的严重不足是只能进行一个固定句子的词法与语法分析,因为在定义优先关系时已固定了DO,和WHILE的每个字符之间的优先关系,且赋值表达式和条件式也已固定,所以只能进行本程序已约定好的语句.最大的收获是在提出一个难题以后,如果能比较顺手的解决的话,那是一件比较开心的事。只是有些时候越想问题就会越多,也越难解决,那就得慢慢调试,慢慢推导了。相信只要想得出,就能调得出,当然耐心是很重要的,花在上面的时间也是要多一点的。

完成此次课程设计以后,觉得自己在编译原理的学习中存在很多的不足和需要提高的地方.通过对简单优先法翻译程序的编程也使自己在编写编译程序上有了感官的认识,且能力也得到了一定的提高!虽然此程序还存在很多的缺点与不足,但在将来的学习中我会不断的完善此部分知识.独立的完成程序以后也有不少收获,为自己在以后的学习中做了很好的铺垫!

9 参考文献

[1]张素琴、吕映芝、蒋维杜、戴桂兰等.编译原理(第二版).清华大学出版社.2005

年2月

参考书:

[1]何炎祥.编译原理(第二版).武汉:华中科技大学出版社.2005年8月[2]陈火旺等.程序设计语言编译原理(第3版).国防工业出版社.2003年2月[3]胡伦骏.编译原理(第2版).电子工业出版社.2005年2月

[4]陈意云.编译原理与技术(第二版).中国科学技术大学出版社.2002年1月[5]胡元义等.编译原理实践教程.西安电子科技大学出版社.2002年1月

[6]王雷等.编译原理课程设计.机械工业出版社.2005年3月

WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)

课程设计任务书 学生姓名:赵旭林专业班级:计算机0801班 指导教师:陈天煌工作单位:计算机科学与技术学院 题目: WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)初始条件: 理论:学完编译课程,掌握一种计算机高级语言的使用。 实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)写出符合给定的语法分析方法的文法及属性文法。 (2)完成题目要求的中间代码三地址表示的描述。 (3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。 (4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 (5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 1 系统描述(问题域描述); 2 文法及属性文法的描述; 3 语法分析方法描述及语法分析表设计; 4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计; 5 编译系统的概要设计; 6 详细的算法描述(流程图或伪代码); 7 软件的测试方法和测试结果; 8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等); 9 参考文献(按公开发表的规范书写)。 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试及测试。 周5:撰写课程设计报告。 设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。 设计报告书收取时间:设计周的次周星期一上午10点。 指导教师签名: 2010年 11月 13日 系主任(或责任教师)签名: 2010年 11月 13日

初级中学英语句子翻译全套汇编

老板要我查出明天飞机起飞的时间。The boss wants me to find out the plane took off time tomorrow. 首先,我们需要买些食物。 First, we need to buy some food. 所有人都确切的说是。 Everyone be exact. 这件事永远改变了我的生活。 It changed my life forever. 例如,机器人可以为人类作为危险的工作。 For example, the robot can work as a dangerous for humans.

从现在开始你就是我的搭档了。From now on you are my partner. 那个聪明的小孩会从1数到100. The clever child can count from 1 to 100. 人与自然和平相处时必须的。 Man and nature live in peace when necessary. 厨师们正在为晚餐做准备。 The chefs are preparing for dinner. 你能告诉我什么地方下车吗? Can you tell me where to get off? 快点,坐上那辆公交车。 Come on, sit on the bus. 那个电话没有接通。 The phone is switched on.

我们要多花时间和家人聚在一起。We should spend more time together with my family. 你能告诉我如何到达那家旅馆?Can you tell me how to get to the hotel? 每天早晨,许多人清早起床锻炼身体。 Every morning, many people get up early in the morning exercise. 明天记得把我的笔记本归还给我。Remember to return my laptop tomorrow to me. 当你帮助别人的时候,你一定会很快乐。 When you help others, you will be very happy.

FOR循环语句的翻译程序设计

目录 1 系统描述 (2) 1.1目的 (2) 1.2设计内容: (2) 1.3翻译过程 (2) 1.4初始条件: (3) 1.5 开发平台 (3) 2文法及属性文法的描述 (3) 3 语法分析表设计 (4) 3.1 LR分析概述 (4) 3.2 LR(0)分析表 (5) 3.3 LR语法分析过程的设计思想及算法 (7) 3.4 翻译方法 (8) 4 中间代码形式的描述及中间代码序列的结构设计 (8) 5简要的分析与概要设计 (9) 6详细的算法描述 (9) 6.1 main函数 (10) 6.2词法分析 (10) 6.3 语法分析 (12) 7 测试方法和测试结果 (13) 7.1测试过程 (13) 7.2 测试结论 (14) 8 研制报告 (14) 8.1研制过程 (14) 8.2本设计的评价 (15) 8.3个人心得体会 (15) 9 参考文献 (16) 本科生课程设计成绩评定表 (17)

FOR循环语句的翻译程序设计 ——LR方法、输出四元式 1 系统描述 1.1目的 通过设计、编制、调试一个FOR循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,实现词法分析程序对单词序列的词法检查和分析,并且实现对单词序列的语法分析、语义分析以及中间代码生成。 1.2设计内容: 本设计按照要求设计出for语句的简单文法,并使用LR分析法对用户输入的程序进行分析和翻译。 对下列正确的程序输入: for(i=0;i<10;i++) { m=m+i; } 结果程序要对该输入进行词法分析,然后利用LR分析法对词法分析后得到的单词序列进行语法分析,经过语法制导翻译显示出等价的四元式表示的中间代码。 对于错误的程序输入,如: for(i=0;i<10) { m=m+i; } 结果程序要指出程序出错。 1.3翻译过程

DO-WHILE循环语句的翻译程序设计

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: DO-WHILE循环语句的翻译程序设计(LL(1)法、输出三地址表示)初始条件: 理论:学完编译课程,掌握一种计算机高级语言的使用。 实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)写出符合给定的语法分析方法的文法及属性文法。 (2)完成题目要求的中间代码三地址表示的描述。 (3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。 (4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 (5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 1 系统描述(问题域描述); 2 文法及属性文法的描述; 3 语法分析方法描述及语法分析表设计; 4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计; 5 编译系统的概要设计; 6 详细的算法描述(流程图或伪代码); 7 软件的测试方法和测试结果; 8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等); 9 参考文献(按公开发表的规范书写)。 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试及测试。 周5:撰写课程设计报告。 设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。 设计报告书收取时间:设计周的次周星期一上午10点。 指导教师签名: 2011年月日 系主任(或责任教师)签名: 2011年月日

DO-WHILE循环语句的翻译程序设计 (LL(1)法、输出三地址表示) 1. 系统描述 1.1 设计目的 通过设计、编制、调试一个DO-WHILE循环语句的语法及语义分析程序,加深对法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。 1.2 设计内容及步骤 对循环语句: DO〈赋值语句〉WHILE 〈表达式〉 (1)按给定的题目写出符合自身语法分析方法要求的文法和属性文法描述。 (2)按给定的题目给出语法分析方法的思想及分析表设计。 (3)按给定的题目给出中间代码序列的结构设计。 (4)完成相应的词法分析、语法分析和语义分析程序设计。 (5)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 2. 文法及属性文法的描述 2.1 文法描述 K -> do L while S L -> SP P -> ;SP | ε S -> iQE E -> TG G -> +TG | -TG | εT -> FR R -> *FR | /FR | εF -> (E) | i Q -> = | < | > 2.2 属性文法的描述

JavaScript流程控制语句

第5章流程控制语句 JavaScript程序是由若干个语句组成的,每一个语句以分号作为结束符。语句可以很简单,也可以很复杂。其中,改变程序正常流程的语句称为控制语句。流程控制语句是用来控制程序中各语句执行顺序的语句,是程序中基本却又非常关键的部分。流程控制语句可以把单个语句组合成有意义的、能完成一定功能的小逻辑模块。本章内容包括: ?顺序控制语句; ?选择控制语句; ?循环控制语句; ?其他流程控制语句。 通过本章学习,读者应该对几种流程控制语句有很深的理解,并可以利用这几种流程控制语句编写简单的程序。 5.1 顺序控制语句 JavaScript语言中,顺序控制语句是最简单的语句。其有如下特点:所有语句按照一定的顺序执行,每一条语句只执行一遍,不重复执行,也没有语句不执行。JavaScript语言中的顺序控制语句包括表达式语句,函数调用语句,空语句和复合语句等。 5.1.1 表达式语句 表达式后面跟一个分号就构成了一个表达式语句。最常见的表达式语句为赋值语句。赋值语句是在一个赋值表达式后跟一个分号形成的,程序中很多计算都由赋值语句完成。 【示例5-1】演示几个表达式语句。其代码如下所示。 var m=4; //把4赋给变量m var n=”hello world”; //把字符串hello world赋值给n i=m+n; //把变量m和n的和赋值给变量i 实际上,任何表达式都可以加上分号而成为语句。 【示例5-2】变量i自增1。 i++; //变量i的值加1 注意:有些语句写法虽然是合法的,但是由于其没有保留计算结果,因而并没有实际意义。如以下代码: a-b; i++-1;

英语口语巧用 英语翻译常用语句

由于时间紧迫而匆忙行事的习惯用语 今天要讲的习惯用语都是用来描述“由于时间紧迫而匆忙行事”的。第一个是:slapdash。 这是个合成词,由slap和dash两部分组成。Slap最常用的意思是拍击巴掌,这当然是即刻间进行的行动,而dash这个词也常指某种来去匆匆的行动,所以这两个词合在一起必然是说一种匆忙的事儿了。 Slapdash可以用来描绘各种各样的事情,比如房屋建筑、汽车修理或者业务规划、论文写作等。我们来看个例子来体会slapdash这个习惯用法的确切意思吧。 As soon as I opened the front door, the doorknob came off in my hand. And it got worse! The more I walked around and looked, the more I realized what a poor, slapdash job the builders had done. 我一开前门,门把手就掉了下来。接下来的情况甚至更糟。我在房子里四处观看,越看越明白那些建筑工人只是马马虎虎地装修了一下。 这段话里的slapdash是修饰job这个名词的形容词,但是slapdash也可以当名词或者动词用。例如这个验收房子的人可以这样说那些建筑工人:The builders had done the job with slapdash.或者The builders slapdashed through the job. 这两句话的意思都是“建筑工人马虎了事”。 第二个表示匆忙行事的习惯用语: slap together。这个习惯用语跟slapdash不同的地方在于: slapdash带有急匆匆而草率从事的含义,而slap together却绝对没有因快就马虎的意思。 我们看个例子来探究一下slap together这个习惯用语的意思。这段话说的是美国内战期间的一次无人不知的演讲。有一天,忙于战事的林肯总统必须去宾西法尼亚州葛底斯堡镇为葛底斯堡国家公墓的落成典礼献词。这个国家公墓是为那些在葛底斯堡战役中的阵亡将士修建的。当时林肯只有坐火车的那几分钟时间作准备。那天的主要演讲人是一位著名的演说家,林肯要在他之后讲话,于是林肯在一个信封的背面匆匆写下了自己的讲话稿。 例句2: The little speech Lincoln slapped together was no more than three minutes long. But eve n today many Americans know it by heart, and it still echoes in the heart of the nation. 林肯匆匆写成的简单演讲还不到三分钟长,但是至今还有不少美国人能背诵这篇讲话,它仍然能在很多人心中引起共鸣。

for循环语句的翻译

课程设计任务书 学生姓名:辛波专业班级:计算机0707班 指导教师:彭德巍工作单位:计算机科学与技术学院 题目: FOR循环语句的翻译程序设计(递归下降法、输出四元式) 初始条件: 理论:学完编译课程,掌握一种计算机高级语言的使用。 实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)写出符合给定的语法分析方法的文法及属性文法。 (2)完成题目要求的中间代码四元式的描述。 (3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。 (4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 (5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 1 系统描述(问题域描述); 2 文法及属性文法的描述; 3 语法分析方法描述及语法分析表设计; 4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计; 5 编译系统的概要设计; 6 详细的算法描述(流程图或伪代码); 7 软件的测试方法和测试结果; 8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等); 9 参考文献(按公开发表的规范书写)。 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试及测试。 周5:撰写课程设计报告。 设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。 设计报告书收取时间:设计周的次周星期一上午10点。 指导教师签名: 2010年 01月 08日 系主任(或责任教师)签名: 2010年 01月 08日

程序流程控制语句

程序流程控制语句:选择语句 https://www.doczj.com/doc/b611211445.html,网站制作 2011年9月1日 Java语言中的程序流程控制语句有三种:顺序结构、选择结构和循环结构。其中顺序结构最简单,程序依次执行各条语句。Java的每条语句一般以分号(“;”)作为结束标志。所以本章重点讲解选择结构和循环结构。 1、选择语句 在程序设计时,经常需要使用选择结构在程序中完成逻辑判断和选择功能,这就需要使用到选择语句。Java中的选择语句包括if语句、if-else语句和switch语句。选择语句用来控制选择结构,对选择条件进行判断,并根据判断结果选择要执行的程序语句,改变程序执行流程。 2、if选择语句 在实际生活中,经常会需要做一些逻辑判断,并根据逻辑判断结果做出选择。例如,当一个男孩子向一个非常理智的女孩子求婚时,这个女孩子思考的逻辑可能是这样的: 如果你有100万 那么,我就嫁给你!

在这里,女孩子嫁给男孩子这个过程的实施,必须以“你有一百万”为前提。只有逻辑判断“你有一百万”这一前提条件为真时,“那么,我就嫁给你!”这个行为才能得到执行。在生活当中,类似这样的情形是很常见的。 相应地,在Java程序设计语言中,也有相应的条件语句来完成类似的逻辑判断和有选择地执行这样的功能,这就是if语句。if语句的语法格式如下: if(条件表达式) 语句 或者 if(条件表达式){ 一条或多条语句 } if语句执行的过程如下: 1.对if后面括号里的条件表达式进行判断。 2.如果条件表达式的值为true,就执行表达式后面的语 句或后面大括号里的多条语句。 3.如果条件表达式的值为false,则跳过if语句,执行 下一条语句。

基础英语(综合教程)2课后句子翻译

Unit1: 1.那部关于古代战争的电影采用了先进的技术,令观众仿佛身临其境。(illusion)Thanks to modern technology, the film about that ancient battle gives the audience the illusion of being on the battlefield themselves. 2.在那场大火中,整个古城毁于一旦,但是这块石碑却幸运地保存了下来。(devastate)That ancient city was devastated by the fire, but fortunately the stone tablet survived. 3.他们看了那段录像,听了那位妇女的讲述,心里充满了对那位地震孤儿的同情。(fill with)The videotape and the story by the woman filled them with sympathy for the child who had become an orphan in the earthquake. 4.那场大地震中,我们听到过太多太多教师的事迹,他们拒绝离开学生自己逃生,献出了 自己的生命。(leave behind) In that earthquake, we heard many stories of teachers who had refused to leave their students behind and laid down their lives. 5.豫园的建造始于1558年,但由于资金短缺时建时停,1578年才建成。(off and on)The construction of the Yu Yuan Garden began in 1558, but it was not completed until 1578 because building went off and on for lack of money. 6.1980年我遇到她时,她刚从国外读完硕士回来。(meet up with) In 1980, when I met up with her, she had just returned from abroad with a master’s degree. 7.这是我第一次来纽约,但我还是设法找到了那家小公司。(find one’s way to) It was my first visit to New York, but I managed to find my way to the little firm. 8.在电影界要达到顶峰时非常困难的,但是作为一名导演谢晋做到了。(make it) It is hard to make it to the top in the movie industry, but as a director Xie Jin did it. U2: 1.如今许多爱慕虚荣的年轻人,尽管还不富裕,但却迷上了漂亮的小汽车。(vain, be obsessed with) Many vain young people are obsessed with fancy cars despite the fact that they are not rich enough to afford them. 2.当他的婚外恋被妻子发现后,他们的婚姻终于破裂了。(affair, fall apart) Their marriage finally fell apart when his affair with another woman was found out by his wife. 3.那位艺术家为了获得创作的灵感,在农村住了三年,放弃了生活上的许多享受。 (inspiration, deny oneself something) For artistic inspiration, the artist lived in the country for three years, where he denied himself

WHILE循环语句的翻译程序设计(简单优先法、输出四元式)

WHILE循环语句的翻译程序设计(简单优先法、输出四元式) 1 需求说明或问题描述 1.1 问题描述 对C++中while循环语句的理解及分析,通过编译中的词法分析、语法分析、语义分析及中间代码生成等编译过程,用简单优先分析法分析并翻译while语句。 1.2 需求说明 1 写出符合给定的语法分析方法的文法及属性文法 2 完成题目要求的中间代码四元式的描述 3 写出给定的语法分析方法的思想,完成语法分析及语义分析程序设计 4 设计若干用例,上机通过测试 2 文法及语法设计 2.1文法及属性文法: 文法G=(V N ,V T ,P ,S) 其中V N={S , B, E, C, A, B, P, T} V T={w, (, ), { ,}, i, ;} P={ S -> w(B){E} E -> C C -> CA C -> A A -> iPA A -> i; P -> +|-|*|/ B -> iTi B-> i T -> >|<|>=|<=|== } 2.2 语法分析方法描述及语法分析表设计 2.2.1 语法分析方法描述: 简单优先分析法是按照文法符号(终极符和非终极符)的优先关系确定句柄的。 基本思想可设计如下,首先根据已知优先文法构造相应优先关系矩阵,并将

文法的产生式保存,设置符号栈S,步骤如下: (1)将输入符号串a1a2…a n#依次逐个存入符号栈S中,直到遇到栈顶符号a i的优先性>下一个待输入符号a j为止。 (2)栈顶当前符号a i为句柄尾,由此向左在栈中找句柄的头符号a k,即找到a k-1

流程控制结构

流程控制结构 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

(单元教案首页) 单元标题第3章流程控制结构 教学时数:()学时,其中理论()学时、实验()学时、上机()其它()学时,其它是指: 教学目的与要求: 1.理解程序的的三大控制结构。 2.掌握选择结构实现语句的用法编程应用 3.掌握循环结构实现语句的用法及其编程应用。 4.理解并掌握各种跳转语句的使用方法。 主要教学内容: 1.程序的控制结构:顺序、选择、循环。 2.选择结构语句:if语句(两种格式)和switch语句、程序举例。 3.循环结构语句:for语句、while、语句、do-while语句、三种循环语句的互相转化、程序举例。 4.控制结构跳转语句:break语句、continue语句、return语句 教学重点与难点: 重点:if语句、switch语句、for语句、while语句、do-while语句 难点: switch语句、选择结构编程应用、循环结构编程应用、跳转语句的编程应用课后作业: 1.课本P66 综合练习三:第一题~第四题 2.上机实习:实习3:Java流程控制 课后体会:

兰州资源环境职业技术学院教师授课教案

—————————————————————— 第3章流程控制结构 一、本章主要内容: 本章主要讲述Java程序的基本控制结构和控制语句,使得学生能利用这三种结构来解决一些比较复杂的问题。 Java程序的基本控制结构有三种:顺序结构、选择结构、循环结构。 二、具体授课内容: 概述 选择结构 循环结构 跳转语句 三、本章授课思路: 1. 回顾C语言中结构化程序设计方法所所用的程序三大控制结构(顺序结构、选择结构、循环结构)语法知识,以复习回顾的方式引入讲解Java语言的程序控制结构知识(和 C语言用法一致),学生易于理解记忆。 2.具体讲解选择结构(if、switch)和循环结构语法(while、for、do-while)及其编程用法的典型程序编写举例,使学生理解掌握Java语言中控制结构的使用特点及编程技巧。 将两种输入数据的编程方法融入到控制结构用法的编程举例的程序中,使学生对输入数据方法的能够有一定的理解掌握和编程使用,结合在后续第4章面向对象的程序设计的方法的具体学习中再加强理解和掌握。 4.课堂上通过练习和讲解第3章课后习题,加强和巩固学生对所学知识的理解和掌握使用。

基础英语(综合教程)1课后句子翻译

U1: 1.他对这次面试中可能提到的问题做好了准备。(confront) He has well prepared answers to the questions that he might confront with in the interview. 2.他悲惨的遭遇深深打动了我们,使我们几乎哭出声来。(touch) His sad story touched us so deeply that we nearly cry. 3.他们俩手挽着手沿着河边散步,有说有笑。(hand in hand) They walked hand in hand along the river, chatting and laughing. 4.听到这令人激动的消息之后,他眼睛里涌出欢乐的泪水。(well up) Tears of joy welt up in his eyes after hearing this exciting news. 5.上海人容易听懂苏州话,因为上海话和苏州话有许多共同之处。(in common) The people of SH can understand Suzhou hua easily as they have many things in common. 6.亨利和妻子正在考虑能不能在3年内买一幢新房子。(look into) Henry and his wife are looking into the possibility of buying a new house. 7.女儿再三请求到国外去深造,他最终让步了。(give in to) He finally gave in to his daughter repeated request studying abroad. 8.我们在动身去度假之前把所有的贵重物品都锁好了。(lock away) We have locked all the expensive things away before leaving for the holiday. 9.虽然咱们分手了,但我希望咱们依然是好朋友,像以前一样互相关心,互相帮助。(part)Although we have parted from each other, I hope we will remain good friends to care and help each other just like we did in the past. 10.在紧急关头,军长召集全体军官开会,制定新的克敌战略战术。(summon) At that critical moment, the army leader summoned all the officers to work out strategies and tactics to fight with enemies. U2: 1.一个由外交部长率领的政府代表团昨天抵达南非,开始对该国进行为期3天的友好访问。 (head) A government delegation headed by foreign minister arrived in South Africa yesterday,and began a 3-day friendly visit the country. 2.看看这些讽刺社会弊端的漫画实在好笑。(awfully funny) It’s awfully funny to see these comics about irony social drawbacks. 3.计算机是最有用的教学工具之一,所有的功课以及所有的问题和答案都可在屏幕上显示 出来。(show on a screen)

兼语句

兼语句 ●林秀琴 你发现没有,在生活里一个人可以身兼不同的角色,比如你的妈妈,她既是你的妈妈,也是你爸爸的妻子,又是你外婆的女儿,还是你姨的姐妹。再比如你自己,你是你妈妈的孩子,又是你老师的学生,还是你弟弟的哥哥。有意思吧?汉语的句子也有这样的能力。有时候,一个句子中有一个部分,既是主语,又是宾语,它身兼两种角色,具有两个能力,这种句子就叫“兼语句”。比如“朋友请我看电影”这个句子,“朋友”“请”的是“我”,谁“看电影”呢?也是“我”,——“我”是前边主语的宾语,又是后边谓语的主语,就好像你是你妈妈的孩子、你弟弟的哥哥一样。 有点复杂,是不是?没关系,聪明的你,学习以后就明白了。 1、表示使令意义(英文翻译)的兼语句 汉语里有一类词表示让别人做什么,我们说这类词具有使令意义,如“请、让、叫、要求、同意、派、邀请、约”。 (1)肯定式(请加英文) 主语+动词1+兼语+动词2+宾语 朋友请我去看电影。 妈妈让我快写作业。

老师叫我去他的办公室。 老板要求他三点到公司。 (2)否定式(英文) 主语+不/没+动词1+兼语+动词2+宾语 妈妈不同意我去中国。 他没邀请汤姆参加生日晚会。 老板没派他去纽约。 2、第一个动词是“有”的兼语句 (1)肯定式(请加英文) 主语+ 有+ 兼语+ 谓语(动词/形容词) 我有一个朋友去中国留学了。 我有一个同学很幽默。 (2)否定式(英文) 主语+ 没有+ 兼语+ 谓语(动词/形容词) 那个学校没有人会说中文。 我们班没有人去打球。 3、第一个动词是表示喜好意义的兼语句 主语+(不)动词1+兼语+动词/形容词 老师夸我很聪明。 我喜欢他很幽默。 我讨厌他总开玩笑。 我不喜欢他总迟到。

英语初级翻译必备语句

Behaviorists suggest that the child who is raised in an environment where there are many stimuli which develop his or her capacity for appropriate responses will experience greater intellectual development. 行为主义者认为,如果儿童的成长环境里有许多刺激因素,这些刺激因素又有利于其适当反应能力的发展,那么,儿童的智力就会发展到较高水平。 Congress has made laws requiring most pressure groups to give information about how much they spend and how they spend it the amount and sources of funds, membership and names and salaries of their representatives. 国会已经指定法律,要求大部分压力集团呈报他们花费了多少钱,怎样花的,以及款项的总额和来源,尘缘人数,代表的姓名和薪金等情况。 We sincerely hope that your congratulations will be matched by your collective endeavor to seek a just and practical solution to the problem which has bedeviled the United Nations for so many years. 我们诚恳的希望,你们在表示祝贺之后,能做出共同的努力,以寻求一个公正而切实可行的办法来解决这个多年来一直困扰着联合国的问题。 But now it is realized that supplies of some of them are limited, and it is even possible to give a reasonable estimate of their “expectation of life”, the time it will take to exhaust all know sources and reserves of these materials. 可是现在人们意识到,其中有些矿物质的蕴藏量是有限的,人们甚至还可以比较合理的估计出这些矿物质“渴望存在多少年”,也就是说,经过若干年后,这些矿物的全部已知矿源和储量将消耗殆尽。 It is probably easier for teacher than for students to appreciate the reasons why learning English seem to become increasingly difficult once the basic structures and patterns of the language have been understood. 一旦了解英语的基本结构和句型,再往下学似乎就越来越难了,这其中的原因,也许教师比学生更容易理解。 We remember a beauty that faded, a love that waned. But we remember with far greater pain that we did not see that when it flowered, that we failed to respond with love when it was rendered. 我们时常忆起那失去的美,凋零的爱,当美如花绽放时未加留意;当爱神召唤时,未能用爱去回报,这种回忆常使人痛彻不已。 The election system is such that such a large majority ordinarily cannot be attained on a major law unless at least large part of the three major groups——business, agriculture and labor ——support it. 除非某项重大议案获得商业,农业和劳工三大社会集团中至少大部分人的支持,否则这项议案通常也不能获得(国会)中大多数人的支持,这就是所谓的选举制。

WHILE循环语句的翻译程序设计.

WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示) 1 系统描述 按照课程设计的要求,写一个能识别while循环语句的文法,通过一定的变换使它符合递归下降法的要求,然后按照这个文法编写一个程序,该程序能识别输入的语句是否符合while语句的文法,或者能不能通过文法的开始符号推导出该语句。 该程序应该包括词法分析器,能对输入的语句进行词法分析,然后再对结果进行语法分析。词法分析器应能识别关键字,标示 符,常量,操作符等。 该程序的语法分析器能对输入的语法进行分析,判断输入语句能否满足while循环语句的文法。通过递归下降的方法对语句进行分析,看能否通过开始符号推导出来。 该程序的语义分析器就是对分析结果进行输出,要求输出结果是 三地址形式的。 2 文法及属性文法的描述 2.1文法描述 语句 > ::= while (< 条件表达式 > (< 赋值语句 > | 语句 > <条件表达式> ::= (<标识符>|<无符号整数>)<条件运算符> (<标识符>|<无符号整数> <标识符> ::= <字母> (<字母>|<数字> <条件运算符> ::= > | < | = <无符号整数> ::= <数字>(<数字>

<赋值语句> ::= <标识符>=(<标识符> | <数字> <算术运算符> (<标识符> | <数字> <算术运算符> ::= + | - | * | / <赋值语句> ::= <标识符>=<标识符> | <数字> 2.2递归文法 while语句文法: S -> while (B S | i=E B -> E relop E relop -> < | = | > E -> E+E | E-E | E*E | E/E | (E | i | n 在编写程序的时候用到的是递归下降法,而递归下降法对文法的要求是不能包含左递归,对上述的文法进行消除左递归之后,得 到如下的递归文法: S -> while (B S | i=E B -> E relop E relop -> < | = | > E -> (E F | iF | nF F -> +EF | -EF | *EF | /EF | ε 2.3属性文法的描述 产生式属性文法 S -> while (B S1S.begin:=newlabel;

do-while语句翻译程序

DO-WHILE循环语句的翻译程序设计 (LR方法、输出三地址表示) 1.系统描述 1.1设计目的 通过设计、编制、调试一个DO-WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。 1.2设计内容及步骤 对循环语句:DO〈赋值语句〉WHILE 〈表达式〉 按给定的题目写出符合自身语法分析方法要求的文法和属性文法描述。 (1)按给定的题目给出语法分析方法的思想及分析表设计。 (2)按给定的题目给出中间代码序列的结构设计。 (3)完成相应的词法分析、语法分析和语义分析程序设计。 (4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 2文法的描述 本程序所用的文法如下: G[S]: (1)S->do{E;}while(B) {if B.true goto B.true else goto B.false;} (2)B->I1 rop I2 {B.type=bool;B.val=I1.val rop I2.val;} (3)E->I1=I2 op I3 {I1.val=I2.val op I3.val;} (4)I->id {I.val=id.val;} 注意:rop is < or >,op is +,-,*,/, id is any number or identifier 由上可知,非终结符B表示布尔表达式,E表示赋值表达式 3.语法分析方法描述及语法分析表设计 3.1语法分析方法描述 本实验采用LR分析方法对DO-WHILE语句进行语法分析。LR分析法是一种能根据当前分析栈中的符号串(通常以状态表示)和向右顺序查看输入串的K个(K>=0)符号就能惟一的确定分析器的动作是移进还是归约和用哪个产生式归约,因而也就能惟一的确定句柄。LR分析法的归约过程是规范推导的逆过程,所以LR分析过程是一种规范过程。 一个LR分析器由3个部分组成: 总控程序,也可以称为驱动程序。对所有的LR分析器,总控程序是相同的。 分析表或分析函数。不同的方法分析表将不同,同一个方法采用的LR分析器不同时,分析表也不同,分析表表又可以分为动作(ACTION)表和状态转换(GOTO)表两个部分,它们都可以用二维数组表示。 分析栈,包括文法符号栈和相应的状态栈。它们均是先进后出栈。

高中英语基础句子翻译100句

汉译英 1.好朋友就是能和你分享快乐和忧伤的人. 2.这是他第一次用电子邮件与笔友交流. 3.网络使人们即使身处世界的不同角落也完全可能面对面地交流. 4.现在, 每年有超过100万的旅客来广州观光旅游. 5.世界淡水资源十分有限,因此我们必须充分利用. 6.不管你相不相信, 我们已经逐渐地可以用英语流利地表达自己了.

7.实际上学好英语有很多简单的方法, 例如看英文电视或和外国朋友在线聊天. 7.即使这工作要花掉我六个星期的时间,我仍决心要完成这份工作. 8.全体同学都要准时参加明天举行的会议. 9.花了一周时间才把衣物和药品送达灾区. 10.请耐心点。火车十分钟后到. 11.消防员没有多考虑个人的安危,像平常一样将困在大火中的人员援救出来. 12.一些人破门设法从失火的房子里逃了出来.

13.上一次考试考砸了之后,那个男孩向父母许诺今后会努力学习. 14.约翰要给捡到他钱包的出租司机一百元作为酬劳. 15.除非我们净化我们的环境,否则人类可能将无法生存. 16.这是目前为止我所看过的最好的电影中的一部. 17.我家门前的漂亮新车是我邻居的,不是我的. 18.当午餐的铃声敲响的时候, 学生们一个接一个走出教室. 19.经理不在时, 他负责这个商店.

20.他最终向警察承认他也加入了犯罪活动. 21.他训练了很长的一段时间,所以获得比赛的胜利是他应得的. 22.这个母亲正看护着她熟睡的孩子. 23.由于人类的过度猎捕,许多动物都已经灭绝了. 24.开车的时候,你应该注意路标. 25.政府提出了一项新的政策,旨在保护城市里一些重要的历史遗迹. 26.根据气象报告,今天将会是一个晴朗的日子.

FOR循环语句翻译程序设计简单优先法三地址码JAVA

学 号: 27 课内实践报告课程名称编译原理 题目FOR循环语句的翻译程序设计(简单优先法、输出三地址码) 学院计算机科学及技术专业计算机科学及技术班级1201 姓名李潇颖 指导教师林泓

2014年12月9日 课内实践任务书 学生姓名:李潇颖专业班级:计算机1201班 指导教师:林泓工作单位:计算机科学及技术学院 题目: FOR循环语句的翻译程序设计(简单优先法、输出三地址码) 初始条件: 理论:学完编译课程,掌握一种计算机高级语言的使用。 实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课内实践工作量及其技术要求,以及说明书撰写等具体要求) (1)写出符合给定的语法分析方法的文法及属性文法。 (2)完成题目要求的中间代码三地址码的描述。 (3)写出给定的语法分析方法的思想,完成语法分析和语义分

析程序设计。 (4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 (5)设计报告格式按附件要求书写。课内实践报告书正文的内容应包括: 1 系统描述(问题域描述); 2 文法及属性文法的描述; 3 语法分析方法描述及语法分析表设计; 4 按给定的题目给出中间代码形式的描述及中间代码序 列的结构设计; 5 编译系统的概要设计; 6 详细的算法描述(流程图或伪代码); 7 软件的测试方法和测试结果; 8 研制报告(研制过程,本设计的评价、特点、不足、 收获及体会等); 9 参考文献(按公开发表的规范书写)。 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试及测试。 周5:撰写课内实践报告。 设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。

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