文档库 最新最全的文档下载
当前位置:文档库 › 编译原理while语句的翻译

编译原理while语句的翻译

编译原理while语句的翻译
编译原理while语句的翻译

课程设计

题目WHILE循环语句的翻译程序设计(简单

优先法、输出四元式)

学院计算机科学与技术学院

专业计算机科学与技术专业

班级1003班

姓名刘颖

指导教师李玉强

2013 年 1 月11 日

目录

任务书 (2)

1.系统描述 (3)

2.文法及属性文法的描述 (3)

3.语法分析方法的描述及分析表设计 (3)

3.1.语法分析方法的描述 (3)

3.2.优先关系表 (4)

4.1.中间代码形式的描述 (4)

4.2.中间代码序列的结构设计 (4)

5.编译系统的概要设计 (4)

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

6.1.主函数伪代码 (5)

6.2.词法分析总控流程图 (5)

6.3.语法分析 (5)

7.源程序 (6)

7.1.优先关系 (6)

7.2.词法分析 (6)

7.3.语法分析 (10)

7.4.归约函数 (10)

8.软件的测试方法和测试结果 (11)

8.1.输入 (11)

8.2.词法分析结果 (11)

8.3.语法分析结果 (12)

9.研制报告 (12)

10.参考文献 (13)

11.开发工具 (13)

评分表 (14)

课程设计任务书

学生姓名:刘颖专业班级:计算机1003班

指导教师:李玉强工作单位:计算机科学与技术学院

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

初始条件:

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

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

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

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

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

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

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

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

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

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

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

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

5 编译系统的概要设计;

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

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

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

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

时间安排:

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

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

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

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

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

指导教师签名: 2012年 11月 13日

系主任(或责任教师)签名: 2012年 11月 13日

一、系统描述(问题域描述)

理解和分析C++中的while循环语句,应用在《编译原理》课程中学习的词法分析、语法分析、语义分析、中间代码生成及四元式等知识,用简单优先法分析while语句,并用四元式形式输出。词法分析的输入取自含有while循环语句的txt文件,结果存入另一txt文件并作为语法分析的输入。

1.按给定的题目写出符合自身语法分析方法要求的文法和属性文法描述。

2.按给定的题目给出语法分析方法的思想及分析表设计。

3.按给定的题目给出中间代码序列的结构设计。

4.完成相应的词法分析、语法分析和语义分析程序设计。

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

二、文法及属性文法的描述

文法G=(V

N ,V

T

,P ,S)

V

N

={S,C,E,F,}

V

T

={while,do,(,),{,},;,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,w,x,y,z,_,+,-,*,%,/,<,>,=,<=,>=,==,!=,.} P={

S->while C do E=F

C->(F>F)|(F=F)|(F<=F)|(F)

F->E|E+E|E*E|E-E|E/E

E->character|number

character->a|b|...|z|character(a|b|...|z)

number->0|1...|9|number(0|1 (9)

}

三、语法分析方法的描述及分析表设计

3.1语法分析方法的描述

简单优先分析法是按照文法符号(终极符和非终极符)的优先关系确定句柄的。

首先根据已知文法求出相应优先关系,并将文法的产生式保存,设置符号栈S,步骤如下:

(1)将输入符号串a

1a

2

…a

n

#依次逐个存入符号栈S中,直到遇到栈顶符号a

i

的优先性>

下一个待输入符号a

j

为止。

(2)栈顶当前符号a

i 为句柄尾,由此向左在栈中找句柄的头符号a

k

,即找到a

k-1

k

为止。

(3)由句柄a

k ... a

i

在文法的产生式中查找右部为a

k

…a

i

的产生式,若找到则用相应左

部代替句柄,若找不到则为出错,这时可断定输入串不是该文法的句子。

(4)重复上述(1)、(2)、(3)步骤直到规约完输入符号串,栈中只剩文法的开始符号

为止。若不能归约到文法开始符号则认为输入的while语句语法有误,进行报错。

3.2优先关系表

根据产生式确定优先关系,在程序中以二维数组存取,直接初始化即可。

四、中间代码形式描述及中间代码序列的结构设计

4.1中间代码形式的描述

中间代码有两种形式:词法分析的二元组和语法分析过程中的四元式。二元组的两个元素是字符(串)的类型和它本身;四元式的四个组成成分是:算符,第一和第二运算对象及运算结果。运算对象和运算结果有时指用户自己定义的变量,有时指编译程序引进的临时变量。

4.2 中间代码序列的结构设计

词法分析后对字符(串)的类型已判断完毕,依次输出,形式如下:

1.关键字 while

2.数字 10

3.界符;

4.标识符 i

5.运算符 >

语法分析之后,取出其中的运算表达式。对表达式进行分析。其中,先乘除后加减,先运算括号内的。如a=b*c+b*d 的四元式表示如下:

1.(*,b, c, t

1

2.(*, b, d, t

2

)

3.(+, t

1, t

2

, t

3

)

4.(=, t

3

, -, a)

五、编译系统的概要设计

1 通过程序,在in.txt文本中输入while语句。对文本进行扫描,通过词法分析函数对输入的while语句进行词法分析,结果以二元式形式保存在out.txt中。

2 将已算好的优先关系矩阵以二维数组的形式放至程序中。对已进行词法分析的while语句进行语法分析,其中包括进栈函数和归约,当满足归约条件时由进栈函数调用规约函数,其中包含对错误语句的报错处理。将分析过程输出到yufafenxi.txt中

3 通过四元式输出函数将运算表达式表示为四元式的形式,输出到yufafenxi.txt中。

六、详细的算法描述(流程图)

6.1.主函数伪代码

void main()

{

Precedence();//调用优先关系函数求解

Lexical();//调用词法分析程序

Syntax();//调用语法分析程序

}

6.2.词法分析总控程序

6.3.语法分析程序

七、源程序

7.1.优先关系函数

void Precedence()

{

int i,j;

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

{ for(j=0;j<=16;j++)

{ PreTable[i][j]=ER;

PreTable[1][0]=LT;

}

}

for(i=0;i<=8;i++) PreTable[i][8]=PreTable[i][10]=PreTable[i][11]=PreTable[i][14]=LT; PreTable[1][8]=PreTable[1][11]=PreTable[1][14]=ER;

PreTable[6][14]=PreTable[7][14]=PreTable[1][12]=PreTable[0][13]=EQ;

PreTable[0][15]=LT;

PreTable[2][15]=PreTable[3][15]=PreTable[4][15]=PreTable[5][15]=PreTable[8][15]=EQ; for(i=9;i<=11;i++)

{ for(j=1;j<8;j++)

{ PreTable[i][j]=GT;

PreTable[9][5]=PreTable[11][5]=ER;

PreTable[10][5]=PreTable[13][1]=EQ;

PreTable[9][9]=PreTable[10][9]=PreTable[11][9]=GT;

PreTable[9][16]=PreTable[10][16]=PreTable[11][16]=PreTable[12][16]=GT;

PreTable[14][1]=PreTable[14][2]=PreTable[14][3]=PreTable[14][4]=GT;

PreTable[14][6]=PreTable[14][7]=EQ;

PreTable[14][9]=PreTable[14][16]=PreTable[15][1]=PreTable[15][16]=GT;

PreTable[15][2]=PreTable[15][3]=PreTable[15][4]=PreTable[15][9]=EQ;

PreTable[16][0]=PreTable[16][10]=LT;

}

}

}

7.2.词法分析函数

void Lexical()

{

char *pch,str[100],*pstr,*pt;

char ch[200]={'\0'};

int length;

int i=0,u=-1;

while(!infile.eof())//判断文件是否读完?

{

u++;

ch[u]=infile.get();

}

pch=ch;

length=strlen(ch);

pch=ch;

printf("词法分析结果:\n");

outfc<<"词法分析结果: "<

while(pch<=ch+length)

{

pstr=str;

while(*pch==' '||*pch=='('||*pch==')') pch++;

pt=pch;

f(isalpha(*pch))

{ while(isalnum(*pch))

{ *pstr=*pch;

pstr++;

pch++;

}

*pstr='\0';

if(strcmp(str,"while")==0)

{

printf("关键字 while\n");

outfc<<"关键字while"<

Buff[i].p=0;

Buff[i++].adr=NULL;

}

else if(strcmp(str,"do")==0)

{

printf("关键字 do\n");

outfc<<"关键字 do"<

Buff[i].p=1;

Buff[i++].adr=NULL;

}

else

{

printf("标识符 ");

outfc<<"标识符 ";

printf(str);

printf("\n");

outfc<

Buff[i].p=10;

Buff[i++].adr=pt;

}

}

else if(isdigit(*pch))

{ pt=pch;

printf("数字 ");

outfc<<"数字 ";

while(isdigit(*pch))

{ printf("%c",*pch);

outfc<<*pch;

pch++;

}

outfc<

printf(" ");

outfc<<" ";

Buff[i].p=11;

Buff[i++].adr=pt;

}

if(*pch=='=')

{ if(*(pch+1)=='=')

{ printf("等于 ==\n");

outfc<<"等于 =="<

pch++;

Buff[i].p=4;

Buff[i++].adr=NULL;

}

else

{ printf("赋值符 =\n");

outfc<<"赋值符 ="<

Buff[i].p=5;

Buff[i++].adr=NULL;

}

}

else if(*pch=='*')

{ printf("乘号 *\n");

outfc<<"乘号 *"<

pch++;

Buff[i].p=7;

Buff[i++].adr=NULL;

}

else if(*pch=='+')

{ printf("加号 +\n");

outfc<<"加号 +"<

pch++;

Buff[i].p=6;

Buff[i++].adr=NULL;

}

else if(*pch=='-')

{ t=1;

printf("减号 -\n");

outfc<<"减号 -"<

pch++;

Buff[i].p=6;

Buff[i++].adr=NULL;

}

else if(*pch=='/')

{ t=1;

printf("除号 /\n");

outfc<<"除号 /"<

pch++;

Buff[i].p=7;

Buff[i++].adr=NULL;

}

else if(*pch =='<')

{ printf("小于号 <\n");

outfc<<"小于号 <"<

pch++;

Buff[i].p=3;

Buff[i++].adr=NULL;

}

else if(*pch=='>')

{ printf("大于号 >\n");

outfc<<"大于号 >"<

pch++;

Buff[i].p=2;

Buff[i++].adr=NULL;

}

else if(*pch=='\0')

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

pch++;

Buff[i].p=16;

Buff[i++].adr=NULL;

}

else pch++;

}

7.3.语法分析函数

bool Syntax()

{ int ip = 0;

printf("\n\n\n语法分析过程为:\n");

InitStack();

while (true)

{ if (GetValue().p==12 && Buff[ip].p==16&&Top==2)

{ printf("语法分析正确结束!\n"); return true; }

else if (GetValue().p==-1)

{ printf("语法错误!\n"); return false; }

else

{ switch (GetPrecedence(GetValue().p, Buff[ip].p))

{ case LT:

case EQ: Push(Buff[ip].p,Buff[ip].adr); ip++; PrintStack(); break;

case GT: Reduce(); PrintStack(); break;

default: printf("语法错误!\n"); return false;

}

}

}

}

7.4.归约函数

void Reduce()

{ structure outstring[10];

int len;

int c;

len=1;

outstring[len].p=GetValue().p;

outstring[len].adr=Pop().adr;

c=GetValue().p;

while (GetPrecedence(c,outstring[len].p)==EQ)

{ outstring[++len].p=GetValue().p;

outstring[len].adr=Pop().adr;

c=GetValue().p;

if(len==3&&outstring[1].p==14&&outstring[3].p==14) break;

}

if(len==1&&(outstring[1].p==10||outstring[1].p==11))

{ print(outstring[1].adr);

Push(14,outstring[1].adr);

}

else if (len==1&&outstring[1].p==14) Push(15,outstring[1].adr);

else if (len==3&&outstring[1].p==14&&outstring[3].p==14)

{ middle[n++]='#';

middle[n++]=Tn++;

Push(15,&middle[n-2]);

}

else if (len==3&&outstring[1].p==9) Push(14,outstring[1].adr);

else if (len==4&&outstring[1].p==12) Push(12,NULL);

else if (len==3&&outstring[1].p==15&&outstring[3].p==10) Push(12,NULL);

else if (len>=3&&outstring[len].p==15)

{ middle[n++]='#';

middle[n++]=Tn++;

Push(13,&middle[n-2]);

}

else Push(-1,NULL);

}

八、软件的测试方法和测试结果

8.1.程序的输入

程序的输入在in.txt中,while语句为:while(a>b)do d=e/3

8.2.词法分析结果

8.3.语法分析结果

九、研制报告

这次程序设计让我对编译中简单优先分析法有了更加深刻的了解。一个编译程序的工作过

程一般可以划分为五个阶段:词法分析、语法分析、语义分析与中间代码生成、优化、目标代码生成。每个阶段都是从上一个阶段得到结果,对他进行分析,并且根据一些外部环境(例如符号表等)得到最终的输出结果。经过大量思考完成这个课设使我明白了很多,也了解了自己的不足。在设计过程中,产生式、优先关系矩阵及算法的描述方面或多或少的有些欠缺,能够通过简单while循环语句的编译;但是,当语句更加复杂时,比如do后面的语句为复合运算式时无法识别,显示语法错误;只能对简单运算进行分析,这些问题都需要进一步改进。

由于我个人的编程水平不高,导致程序的大量冗余,过于复杂。通过与从网上查找到的程序对比,发现我的程序不够简洁,算法思想仍然有些狭隘,不能更准确更简洁的将我的算法思想写出来。在这些方面,我仍需努力。

编译原理这门学科对于我来说算是比较难懂的了,对于自己在过去一周的课程设计中,我学到了不少的东西,当然是通过和同学交流讨论所学习到的,虽然不是很精通,但是多少还是了解了一点皮毛。虽然这样,本次的课程设计还是让我受益匪浅的,因为它极大的提升了我的编程能力和对程序的阅读理解能力,这样也使我对编译原理中的词法分析和语法分析部分比较深刻的了解和熟悉,通过此次课程设计我学到了很多东西,当然自己还有许多不足的地方需要以后进一步的提高,这对我今后不管是学习还是生活都会很有帮助,当然我也深刻的认识到了写代码必须要有比较过硬的理论基础作为铺垫才能编写出好的程序.如果不熟练的掌握它们,很难写出高水平的代码,这样就不能很好的提高自己和锻炼自己。而这恰恰是我现在所缺乏的一种能力,希望以后很好的提升自己这方面的能力。我对编译原理这门课程的基本思想又有了新的认识以及更加深刻的学习。通过对编译中的词法分析程序、简单优先分析法的加深学习,能够写出程序来实现编译,这是对我非常大的考验和锻炼。而其中,我学到最多的更是对C++程序编写的更深入的了解及学习。我想在我的整个计算机生活中,编程始终是最重要的,而又最需要更进一步学习的!

十、参考文献

《编译原理》(第二版)清华大学出版社,张素琴吕映芝等编著

《C++程序设计》清华大学出版社,闵联营何克右主编

《数据结构》清华大学出版社,严蔚敏吴伟民编著

十一、开发工具

Windows环境下使用Visual C++ 6.0

本科生课程设计成绩评定表班级:计科1003姓名:刘颖学号:0121010340328

及格(60-69分)、60分以下为不及格

指导教师签名:

20 年月日

编译原理概念_名词解释

编译过程的六个阶段:词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成 解释程序:把某种语言的源程序转换成等价的另一种语言程序——目标语言程序,然后再执行目标程序。 解释方式是接受某高级语言的一个语句输入,进行解释并控制计算机执行,马上得到这句的执 行结果,然后再接受下一句。 编译程序:就是指这样一种程序,通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序(机器语言程序或汇编语言程序)。 解释程序和编译程序的根本区别:是否生成目标代码 句子的二义性(这里的二义性是指语法结构上的。):文法G[S]的一个句子如果能找到两种不同的最左推导(或最右推导),或者存在两棵不同的语法树,则称这个句子是二义性的。 文法的二义性:一个文法如果包含二义性的句子,则这个文法是二义文法,否则是无二义文法。 LL(1)的含义:(LL(1)文法是无二义的; LL(1)文法不含左递归) 第1个L:从左到右扫描输入串第2个L:生成的是最左推导 1:向右看1个输入符号便可决定选择哪个产生式 某些非LL(1)文法到LL(1)文法的等价变换: 1. 提取公因子 2. 消除左递归 文法符号的属性:单词的含义,即与文法符号相关的一些信息。如,类型、值、存储地址等。 一个属性文法(attribute grammar)是一个三元组A=(G, V, F) G:上下文无关文法。 V:属性的有穷集。每个属性与文法的一个终结符或非终结符相连。属性与变量一样,可以进行计算和传递。 F:关于属性的断言或谓词(一组属性的计算规则)的有穷集。断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性。 综合属性:若产生式左部的单非终结符A的属性值由右部各非终结符的属性值决定,则A的属性称为综合属继承属性:若产生式右部符号B的属性值是根据左部非终结符的属性值或者右部其它符号的属性值决定的,则B的属性为继承属性。 (1)非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性。 (2) 终结符只有综合属性,没有继承属性,它们由词法程序提供。 在计算时:综合属性沿属性语法树向上传递;继承属性沿属性语法树向下传递。 语法制导翻译:是指在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作。 语法制导翻译实现:对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。 中间代码(中间语言) 1、是复杂性介于源程序语言和机器语言的一种表示形式。 2、一般,快速编译程序直接生成目标代码。 3、为了使编译程序结构在逻辑上更为简单明确,常采用中间代码,这样可以将与机器相关的某些实现细节置于代码生成阶段仔细处理,并且可以在中间代码一级进行优化工作,使得代码优化比较容易实现。 何谓中间代码:源程序的一种内部表示,不依赖目标机的结构,易于代码的机械生成。 为何要转换成中间代码:(1)逻辑结构清楚;利于不同目标机上实现同一种语言。 (2)便于移植,便于修改,便于进行与机器无关的优化。 中间代码的几种形式:逆波兰记号,三元式和树形表示,四元式 符号表的一般形式:一张符号表的的组成包括两项,即名字栏和信息栏。 信息栏包含许多子栏和标志位,用来记录相应名字和种种不同属性,名字栏也称主栏。主栏的内容称为关键字(key word)。 符号表的功能:(1)收集符号属性(2) 上下文语义的合法性检查的依据:检查标识符属性在上下文中的一致性和合法性。(3)作为目标代码生成阶段地址分配的依据

编译原理课程设计

<PL0编译器-PCompiler> 软件需求说明书 作者:刁诗云、麻汉华、潘彦荃、周津、李程完成日期:2009年6月7日 签收人: 签收日期: 修改情况记录:

目录 软件需求说明书 (1) 1 引言 (1) 1.1 编写目的 (1) 1.2 项目背景 (1) 2 项目概述 (2) 2.1 产品描述 (2) 2.2 产品功能 (2) 2.3 用户特点 (2) 3 具体需求 (3) 3.1 EBNF定义的PL/0文法 (3) 3.2 语法图 (4) 3.3 功能需求 (6) 3.4 系统概要设计 (15)

1 引言 1.1 编写目的 为了清楚表达客户提出的需求,便于用户理解和确认项目所包含的具体功能需求、性能需求以及非公能性需求,因此以文件化的形式,把系统整体及其部分的业务流程、系统功能进行了详细的说明。同时,此文也对开发人员起到引导的作用,请认真阅读。 1.2 项目背景 PL/0是由世界著名计算机科学家、PASCAL语言的创始人N.Wirth教授选择提供的。在选择PL/0语言的过程中,Wirth很费了一番脑筋。一方面他希望借助这个语言,能尽可能把程序设计语言和编译技术一些最重要的内容都讲到;但另一方面又不希望内容太多,太杂,而希望尽可能简单一些,以便与有限的课时和课程范围相适应。于是他精心选择提供了这个PL/0语言。事实证明,它非常适合于编译技术的教学,目前已被国内越来越多的编译教材所采用。 PL/0语言的语句类型比较丰富,能适应各种可能的程序结构。最进本的是赋值语句。组合结构语句有语句串、条件语句和循环语句。还有重要的子程序概念,是通过过程说明和过程调用两部分实现的。至于数据类型和数据结构,PL/0则特别简单,只有整数类型一种,没有数据结构,因此只允许有整常数和整数变量的说明以及相应的算术运算表达式。PL/0允许在一个过程范围内说明常数、变量和过程。这些常数、变量和过程只在它们被说明的过程范围内有效。PL/0语言也允许递归调用,既可以间接递归,也可以直接递归。

大学英语(四)造句翻译

beyond the reach of somebody在某人伸手够不着的地方Keep chemicals beyond the reach of children. fall in love with somebody开始爱上某人 I think I’m falling in love with your brother. flash a smile笑容一闪 She flashed a sudden smile at him. lie in 在于 The difficulty lies in providing sufficient evidence. make an attempt to do something努力……, 试图…… The climbers will make another attempt to reach the summit today. end with以……结束 The festival ended with fireworks. like clockwork极有规律性和准确性地,顺利地 The operation went like clockwork. loose end(s)尚待解决或解释的枝节问题 There are some annoying loose ends in the plot. miscarriage of justice审判不公, 误判 This failure contributed to the miscarriage of justice. take on开始具有或呈现(某种品质、形貌等),以……面貌出现These insects can take on the color of their surroundings. without doubt 无疑地,确实地 Without doubt,he is a genius . under arrest 被捕,在押 A drug dealer was under arrest last night. back out不履行,打退堂鼓,食言 I hope I can depend on you not to back out at the last moment. catch on懂得;掌握\流行 He doesn’t take hints easily, but he’ll catch on eventually. fill in替代某人的工作 Sally is off sick. Can you fill in for her for a few days?

编译原理课程设计---C语言编译器的实现

扬州大学编译原理课程设计 学号:091202122 姓名: 专业:计算机科学与技术 课程:编译原理 指导教师:陈宏建

目录 一.程序简介与分析---------------------------------------------------------3 二.程序适用范围-----------------------------------------------------------3 三.词法分析---------------------------------------------------------------3 四.语法分析---------------------------------------------------------------4 五.语义分析和中间代码生成------------------------------------------------10 六.代码生成--------------------------------------------------------------12 七.流程图----------------------------------------------------------------13 八.实现------------------------------------------------------------------14 九.程序运行结果----------------------------------------------------------14 十.总结------------------------------------------------------------------18 十一.附录(源程序)--------------------------------------------------------18

嵌入式Linux学习之规划篇

嵌入式Linux学习之规划篇 嵌入式Linux 课程目标是达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质。采用了目前应用最广泛的软硬件开发平台(Linux和Arm)。 学习步骤如下: 1、Linux 基础 安装Linux操作系统 Linux文件系统(windows的文件共享) Linux的基本命令及使用 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程基础使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器 2、Shell 编程基础 Shell简介 认识后台程序 Bash编程熟悉Linux系统下的编辑环境 熟悉Linux下的各种Shell 熟练进行shell编程熟悉vi基本操作 熟悉Emacs的基本操作 比较不同shell的区别 编写一个测试服务器是否连通的shell脚本程序 编写一个查看进程是否存在的shell脚本程序 编写一个带有循环语句的shell脚本程序 3、Linux 下的 C 编程基础 linux C语言环境概述 Gcc使用方法 Gdb调试技术 Autoconf Automake Makefile 代码优化熟悉Linux系统下的开发环境 熟悉Gcc编译器 熟悉Makefile规则编写Hello,World程序 使用 make命令编译程序 编写带有一个循环的程序 调试一个有问题的程序

4、嵌入式系统开发基础 嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核 嵌入式Linux应用软件开发流程 熟悉嵌入式系统概念以及开发流程 建立嵌入式系统开发环境制作cross_gcc工具链 编译并下载U-boot 编译并下载Linux内核 编译并下载Linux应用程序 嵌入式系统移植 Linux内核代码 平台相关代码分析 ARM平台介绍 平台移植的关键技术 移植Linux内核到 ARM平台了解移植的概念 能够移植Linux内核移植Linux2.6内核到 ARM9开发板【1 配置编译Linux内核 1.1 Linux内核源代码结构 1.2 Linux内核编译选项解析 1.3 Linux内核编译链接 2.0 Linux启动过程源代码分析 3.0 Linux内核移植平台相关代码分析】 5、嵌入式 Linux 下串口通信 串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉文件I/O 编写串口通信程序 编写多串口通信程序 6、嵌入式系统中多进程程序设计 Linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解Linux系统中进程的概念 能够编写多进程程序编写多进程程序 编写一个守护进程程序 sleep系统调用任务管理、同步与通信 Linux任务概述任务调度 管道

屈原列传字词整理

屈原列传字词整理 一、给下列加点的字注音 疾痛惨怛()馋人间之()帝喾()靡不毕见()()遐迩()()濯淖()()皭然()从亲() 商於()丹淅()相随属()枯槁()餔其遭()汶汶()温蠖() 二、通假字 1、犹离忧也 2、其称文小而其指极大 3、人穷则反本 4、屈平既绌 5、厚币委质事楚 6、见:靡不毕见 7、亡走赵,赵不内 8、自疏濯淖污泥之中 9、被发行吟泽畔 10、乃令张仪详去秦 三、一词多义 1、闻: (1)博闻强志,明于治乱,知识,见闻 (2)无何,宰以卓异闻闻名 (3)况草野之无闻者乎名声,名望 (4)顺风而呼,声非加疾也,而闻者彰听到 2、志: (1)推此志也,虽与日月争光可也志向 (2)博闻强志,明于治乱记,记住

(3)其志洁,其行廉志趣 (4)其存君兴国而欲反复之,一篇之中三致志焉愿望 (5)既出,得其船,便扶向路,处处志之做标记 3、疾 (1).君有疾在走里病 (2)疾痛惨怛,未尝不呼父母也疾苦,痛苦(3)屈平疾王听之不聪也痛心,痛恨 (4)寡人有疾,寡人好色缺点,毛病 (5)庞娟恐其贤于己,疾之通“嫉”,妒忌 (6)举疾首而相告曰痛 (7)虽乘奔御风不以疾也快速,敏捷 (8)顺风而呼,声非加疾也,而闻者彰强,猛烈(9)草枯鹰眼疾,雪尽马蹄轻锐利 4、疏: (1)王怒而疏屈平疏远疏远 (2)以金笼进上,细疏其能名作动,用奏章写 (3)窗外疏梅筛月影,依稀掩影形容词,稀疏 (4)《谏太宗十思疏》一种文体 5、致 (1) 致敬亭于幕府送达,送来

(2) 一篇之中三致志焉表达,表示 (3) 假御马者,非利足也,而致千里达到 (4) 家贫,无从致书以观得到,取得 (5) 此人可就见,不可屈致也招致 (6) 以致天下之士,合从缔交,相与为一招纳,招引 (7) 女行无偏斜,何意致不厚致使,使 (8) 衡善机巧,尤志于天文阴阳历算尽,极 (9) 是我于花之未开,先享无穷逸致矣意态,情趣 四、词类活用 1. 入则与王图议国事 2 .出则接遇宾客 3. 因谗之曰 4. 屈平疾王听之不聪也 5. 邪曲之害公也 6. 方正之不容也 7. 明道德之广崇 8. 蝉蜕于浊秽 9. 楚使怒去 10. 秦,虎狼之国,不可信 11. 然皆祖屈原之从容辞令 12. 其后楚日以削 五、古今异义的词 1、颜色憔悴,形容枯槁 2、又因厚币用事者靳尚 3、皆祖屈原之从容辞令 4、其存君兴国而欲反覆之,一篇之中三致志焉 5、又设诡辩于怀王之宠姬郑袖

全新版大学英语2造句翻译

Unit 1 1.I am trying to find my way to success 2.W e need to work on our skills. 3.W e will inform you in due course. 4.I n retrospect, I missed too much 5.I want to make up for what has been lost. 6.I did not in the least understand this principle. 7.o n occasion I feel learning is tired 8.O n the other hand, he is good at basketball 9.I picked up discipline in the university. 10.These facts throw light on the matter. 11.She would have died if the young man hadn't come to his rescue 12.The book was old and soon fell apart 13.From my point of view learning is very useful. 14.Lock up all the doors before you go out 15.I want to go on vacation 1. 背离传统需要很大的勇气。(departure, enormous)It takes enormous amount of courage to make a departure from the tradition.

编译原理和技术期末考试复习题

2.1 考虑文法G[S],其产生式如下: S→(L)|a L→L,S|S (1)试指出此文法的终结符号、非终结符号。 终结符号为:{(,),a,,,} 非终结符号为:{S,L} 开始符号为:S (2)给出下列各句子的分析树: ① (a,a)②(a,(a,a))③ (a,((a,a),(a,a))) (3)构造下列各句子的一个最左推导: ① (a,a) S (L) (L,S) (S,S) (a,S) (a,a) ② (a,(a,a)) S (L) (L,S) (S,S) (a,S) (a,(L) (a,(L,S)) (a,(S,S)) (a,(a,S)) (a,(a,a)) ③ (a,((a,a),(a,a))) S (L) (L,S) (S,S) (a,S) (a,(L)) (a,(L,S)) (a,(S,S)) (a,((L),S)) (a,((L,S),S)) (a,((S,S),S)) (a,((a,S),S)) (a,((a,a),S)) (a,((a,a),(L)))

(a,((a,a),(L,S))) (a,((a,a),(S,S))) (a,((a,a),(a,S))) (a,((a,a),(a,a))) (4)构造下列各句子的一个最右推导: ①(a,a) S (L) (L,S) (L,a) (S,a) (a,a) ②(a,(a,a)) S (L) (L,S) (L,(L)) (L,(L,S)) (L,(L,a)) (L,(S,a)) (L,(a,a)) (S,(a,a)) (a,(a,a) ③(a,((a,a),(a,a)) S (L) (L,S) (L,(L)) (L,(L,S)) (L,(L,(L))) (L,(L,(L,S))) (L,(L,(L,a))) (L,(L,(S,a))) (L,(L,(a,a))) (L,(S,(a,a))) (L,((L),(a,a))) (L,((L,S),(a,a))) (L,((L,a),(a,a))) (L,((S,a),(a,a))) (L,((a,a),(a,a))) (S,((a,a),(a,a))) (a,((a,a),(a,a))) (5)这个文法生成的语言是什么? L(G[S]) = (α1,α2,...,αn)或a 其中αi(1≤i≤n),即L(G[S])是一个以a为原子的纯表,但不包括空表。 2.2 考虑文法G[S] S→aSbS|bSaS|ε (1)试说明此文法是二义性的。可以从对于句子abab有两个不同的最左推导来说明。 S aSbS abS abaSbS ababS abab S aSbS abSaSbS abaSbS ababS abab 所以此文法是二义性的。 (2)对于句子abab构造两个不同的最右推导。 S aSbS aSbaSbS aSbaSb aSbab abab S aSbS aSb abSaSb abSab abab (3)对于句子abab构造两棵不同的分析树。 (一) (二) (4)此文法所产生的语言是什么? 此文法产生的语言是:所有a的个数与b的个数相等的由a和b组成的字符串。 2.4 已知文法G[S]的产生式如下:S → (L)|a L → L,S|S 属于L(G[S])的句子是 A ,(a,a)是L(G[S])的句子,这个句子的最左推导是 B ,最右推导是 C ,分析树是 D ,句柄是 E 。 A:① a ② a,a ③ (L) ④ (L,a) B,C:① S (L) (L,S) (L,a) (S,a) (a,a) ② S (L) (L,S) (S,S) (S,a) (a,a)

编译原理及实现课后习题答案(1)

2.1 设字母表A={a},符号串x=aaa,写出下列符号串及其长度:x0,xx,x5以及A+和A*. x0=(aaa)0=ε| x0|=0 xx=aaaaaa |xx|=6 x5=aaaaaaaaaaaaaaa | x5|=15 A+ =A1∪A2∪…. ∪A n∪…={a,aa,aaa,aaaa,aaaaa…} A* = A0 ∪A1 ∪A2∪…. ∪ A n ∪…={ε,a,aa,aaa,aaaa,aaaaa…} 2.2 令∑={a,b,c},又令x=abc,y=b,z=aab,写出如下符号串及它们的长度:xy,xyz,(xy)3 xy=abcb |xy|=4 xyz=abcbaab |xyz|=7 (xy)3=(abcb)3 =abcbabcbabcb | (xy)3 |=12 2.3设有文法G[S]:S∷=SS*|SS+|a,写出符号串aa+a*规范推导,并构造语 法树。 S => SS* => Sa* => SS+a* => Sa+a* => aa+a*

2.4 已知文法G[Z]:Z∷=U0∣V1 、U∷=Z1∣1 、V∷=Z0∣0 ,请写出全部由此文法描述的只含有四个符号的句子。 Z=>U0=>Z10=>U010=>1010 Z=>U0=>Z10=>V110=>0110 Z=>V1=>Z01=>U001=>1001 Z=>V1=>Z01=>V101=>0101 2.5 已知文法G[S]:S∷=AB A∷=aA︱εB∷=bBc︱bc , 写出该文法描述的语言。 A∷=aA︱ε描述的语言: {a n|n>=0} B∷=bBc︱bc描述的语言:{b n c n|n>=1} L(G[S])={a n b m c m|n>=0,m>=1} 2.6 已知文法E∷=T∣E+T∣E-T 、T∷=F∣T*F∣T/F 、F∷=(E)∣i,写出该文法的开始符号、终结符号集合V T、非终结符号集合V N。 开始符号:E V t={+, - , * , / ,(, ), i} V n={E , F , T} 2.7 对2.6题的文法,写出句型T+T*F+i的短语、简单短语以及句柄。 短语:T+T*F+i T+T*F Array i i T T*F 简单短语:i T*F T 句柄:T

编译原理大作业

《编译原理》实验报告 课程编译原理 实验名称编译原理综合实验 专业 班级 姓名 学号 完成日期2013/6/5

目录 实验一 (2) 实验目的和内容 (2) PL/0语言描述 (2) 内部码对照表 (3) 实验过程及方法 (4) 实验结果 (4) 总结 (5) 实验二 (5) 实验目的 (5) 实验内容及要求 (6) 实验算法 (7) 实验结果 (7) 总结 (8) 实验三 (8) 实验目的 (8) 实验内容 (9) 实现算法 (9) 实验结果 (9) 总结 (12) 实验一 实验目的和内容 1.实验目的:通过完成词法分析程序,了解词法分析的过程。 2.实验内容:用C/C++实现对Pascal的子集程序设计语言的词法识别程序。 3.实验要求:将该语言的源程序,也就是相应字符流转换成内码,并根据需要是否对于标识符填写相应的符号表供编译程序的以后各阶段使用。 PL/0语言描述 PL/0程序设计语言是一个较简单的语言,它以赋值语句为基础,包括顺序、条件和循环三种控制结构。PL/0有子程序(即函数)概念。PL/0中唯一的数据类型是整型,可以用来说明该类型的常量和变量。当然PL/0也具有通常的算术运算和关系运算。

具体的PL/0语法描述如下(采用扩充的BNF表示)。 <程序>→<程序首部> <分程序> {<分程序>}. <程序首部>→PROGRAM标识符; <分程序>→<过程首部> [<常量说明部分>] [<变量说明部分>] <复合语句> <常量说明部分>→CONST <常量定义> {,<常量定义> } ; <常量定义>→标识符= 无符号整数 <变量说明部分>→V AR <变量定义> {;<变量定义>}; <变量定义>→标识符{,标识符}:<类型> <类型>→INTEGER <过程首部>→PROCEDURE标识符;| PROCEDURE标识符(标识符:<类型>); <复合语句>→BEGIN<语句>{;<语句>}END <语句>→<赋值语句>|<条件语句>|<当型循环语句>|<过程调用语句> |<读语句>|<写语句>|<复合语句>|ε <赋值语句>→标识符:=<表达式> <条件语句>→IF<条件>THEN<语句> <条件语句> → if<布尔表达式> then <语句>|if<布尔表达式> then <语句> else <语句> <布尔表达式> → <条件> | !<布尔表达式>| <布尔表达式> && <布尔表达式> <当型循环语句>→WHILE<条件>DO<语句> <过程调用语句>→CALL 标识符| CALL 标识符(<表达式>) <读语句>→READ(标识符{,标识符} ) <写语句>→WRITE(<表达式>{,<表达式>}) <条件>→<表达式><关系运算符><表达式> | ODD<表达式> <表达式>→<项>{<加型运算符><项>} <项>→<因子>{<乘型运算符><因子>} <因子>→标识符| 无符号整数| (<表达式>) <加型运算符>→+|- <乘型运算符>→* | / <关系运算符>→=|<>|<|<=|>|>= 内部码对照表 表1-1 内部码对照表 内码单词内码单词内码单词内码单词 1 PROGRAM 2 CONST 3 V AR 4 INTEGER 5 Call 6 PROCEDURE 7 IF 8 THEN

屈原列传知识梳理答案

《屈原列传》文言知识梳理 一、注音 谗谄(chǎn)靡(mǐ)不毕见 濯淖(nào)滋垢(gòu) 渣滓(zǐ)皭(jiào)然 汶汶(mén)稚(zhì)子 枯槁(gǎo)餔(bū)其糟而啜其醨(lí) 温蠖(huò)娴(xián)于辞令 属(zhǔ)草稿汨(mì)罗 上称帝喾(kù)楚将屈匄(gài) 二、通假字: 1、犹离.忧也通“罹”遭遇 2、人穷则反.本通“返” 3、其称文小而其指.极大通“旨”旨趣 4、自疏濯.淖污泥之中通“浊”污浊 5靡不毕见.通“现”显现 6、屈平既绌.通“黜”罢黜 7、厚币委质.事楚通“贽”见面礼 8、皭然泥.而不滓者也同“涅”染黑 9、被.发行吟泽畔通“披”披散 三、重点实词解释 1、明于治乱,娴.于辞令熟练、熟悉 2、王甚任.之信任 3上官大夫与之同位次

4、争宠而心害.其能忌妒 5、怀王使屈原造.为宪令制定6屈平属.草稿未定写作 7、上官大夫见而欲夺.之改变,更改 8、平伐.其功自夸、炫耀 9、屈平疾.王听之不聪.也恨、痛心明 10、“离骚”者,犹离.忧也通“罹”遭遇 11、人穷.则反本处境困难 12、故劳苦倦极.,未尝不呼天也疲困 13、疾痛惨怛 ..,未尝不呼父母也内心悲痛 14、《国风》好色而不淫.过分而失当 15、靡.不毕见.无见,同“现” 16、其文约.,其辞微.简约含蓄精深 17、举类迩 ..而见义远事物近 18、其志洁,故其称.物芳称许 19、不获世之滋.垢污浊 20、皭.然泥.而不滓者也洁净 泥,同“涅”染黑 21、乃令张仪佯装 ..去秦假装 呈献质,同“贽”见面礼 22、又因.厚币用事者 ...臣靳尚凭借当权者 23、一篇之中,三致.志焉。表达 24、人君无.愚智贤不肖无论 25、然亡国破家相随属.连,跟着

(完整版)编译原理及实现课后习题答案

编译原理及实现课后习题解答 2.1设字母表A={a},符号串x=aaa,写出下列符号串及其长度:x0,xx,x5 以及A+和A*. x0=(aaa)0=ε| x0|=0 xx=aaaaaa |xx|=6 x5=aaaaaaaaaaaaaaa | x5|=15 A+ =A1∪A2∪ …. ∪A n∪…={a,aa,aaa,aaaa,aaaaa…} A* = A0 ∪A1 ∪A2 ∪…. ∪A n ∪…={ε,a,aa,aaa,aaaa,aaaaa…} 2.2令∑={a,b,c},又令x=abc,y=b,z=aab,写出如下符号串及它们的长度:xy,xyz,(xy)3 xy=abcb |xy|=4 xyz=abcbaab |xyz|=7 (xy)3=(abcb)3 =abcbabcbabcb | (xy)3 |=12 2.3设有文法G[S]:S∷=SS*|SS+|a,写出符号串aa+a*规范推导,并构造语 法树。 S => SS* => Sa* => SS+a* => Sa+a* => aa+a*

S S S * S S + a a a 2.4 已知文法G[Z]:Z∷=U0∣V1 、U∷=Z1∣1 、V∷=Z0∣0 ,请写出全部由此文法描述的只含有四个符号的句子。 Z=>U0=>Z10=>U010=>1010 Z=>U0=>Z10=>V110=>0110 Z=>V1=>Z01=>U001=>1001 Z=>V1=>Z01=>V101=>0101 2.5已知文法G[S]:S∷=AB A∷=aA︱εB∷=bBc︱bc , 写出该文法描述的语言。 A∷=aA︱ε描述的语言: {a n|n>=0} B∷=bBc︱bc 描述的语言:{b n c n|n>=1} L(G[S])={a n b m c m|n>=0,m>=1} 2.6已知文法E∷=T∣E+T∣E-T 、T∷=F∣T*F∣T/F 、F∷=(E)∣i,写出该文法的开始符号、终结符号集合V T、非终结符号集合V N。 开始符号:E V t={+, - , * , / ,(, ), i} V n={E , F , T}

【北航保研辅导班】北航软件学院推免保研条件保研材料保研流程保研夏令营

【北航保研辅导班】北航软件学院推免保研条件保研材料保研流程保 研夏令营 2018年保研夏令营已陆续拉开帷幕,为了方便考生及时全面的了解985/211等名校保研信息,启道保研小编为大家整理了2018年名校各院系保研汇总信息,以供考生参考。一、北航软件学院保研资格条件(启道北航保研辅导班) 1.热爱祖国,拥护中国共产党的领导,具有高尚的爱国主义情操和集体主义精神,社会主义信念坚定,社会责任感强。 2.具有推荐免试资格的高校优秀应届本科毕业生,本科前三学年综合成绩在学院年级排名前25%。 3.有学术论文发表、获得专利、学科竞赛、科技活动等获奖者综合成绩排名可以适当放宽。 4.研究兴趣浓厚,有较强的专业基础、创新意识和创新能力。 5.诚实守信,品行端正,无任何考试作弊、学术不端以及其他违法违纪处分记录。 6.身体健康状况符合《北京航空航天大学招收学历研究生体检工作标准》的体检要求。 二、北航软件学院保研政策(启道北航保研辅导班) 一、招收项目: 本年度推荐免试研究生接受以下项目的申请: 1、085212专业硕士 2、083500学术型 二、申请材料: 1.《北京航空航天大学接收推荐免试攻读2018年研究生申请表》原件一份(须本人签字)。 2.有效居民身份证的复印件一份(正反面需复印在A4纸张的同一页面上)。 3.政审表纸质版一份,具体填写要求见其说明。 4.“思想政治与道德品格”情况的书面小结一份。 5.对申请有参考价值的本人自述(限500字以内)一份。 6.加盖所在学校教务处公章的本人本科阶段成绩单原件一份。 7.提交加盖所在学院(或者学校)公章的本人排名证明原件一份。

8.若本人发表过学术论文或出版物,提交复印件一份。 9.若本人在学期间,有学科竞赛、科技活动等各种获奖证明,提交复印件一份。 10.近一个月内由二级甲等以上(含二级甲等)医疗机构或北航校医院出具的体格检查表一份,体格检查表上的体检内容不得少于附件样表所列项目,并且注意须随体格检查表附各种检查的化验单。。 三、申请材料审核及复试资格确认 每一位申请推免的学生须提供完整有效的申请材料,材料不完整者取消推免资格。 申请者请到北航研究生招生信息网https://www.wendangku.net/doc/c71478581.html,/查阅相关说明及要求,下载申请表,按照软件学院要求的截止日期将全部申请材料(统一用A4纸)寄(或送)达软件学院的研究生教务办公室。软件学院接收材料的截止时间为2017年9月22日(以收到日期为准,如需快递,建议采用顺风快递)。 申请者需及时登录教育部的“推免服务系统”(https://www.wendangku.net/doc/c71478581.html,/tm),完成注册、填写个人基本信息、上传照片、网上支付、填写志愿等步骤,网报志愿须与纸质材料填写志愿一致。 四、复试形式 复试共分为四个环节,采取差额面试,考生的面试总时间不少于20分钟。各个环节的面试内容如下: 第一环节:思想政治与道德品格(100分) 个人陈述思想政治与道德品格的情况并接受面试提问和答题。 第二环节:英语(100分) 面试采用口语交流形式,考查英语能力。 第三环节:专业基础(150分) 主要考查软件工程、操作系统、编译原理、计算机网络、数据库基本概念的掌握程度。 第四环节:专业实践与综合能力(150分) 主要考查软件工程的专业实践能力和专业综合能力(考生可介绍课程大作业、专业实习与实践、科技创新创意创业实践、毕业设计等)。 第一、二、三、四环节为并行环节,考生总体上按照复试时间及名单的顺序,根据各个环节的面试情况,在助管老师的协调下,进入各个环节的面试; 整个面试过程全程录音、录像。

编译原理知识点汇总

编译原理的复习提纲 1.编译原理=形式语言+编译技术 2.汇编程序: 把汇编语言程序翻译成等价的机器语言程序 3.编译程序: 把高级语言程序翻译成等价的低级语言程序 4.解释执行方式: 解释程序,逐个语句地模拟执行 翻译执行方式: 翻译程序,把程序设计语言程序翻译成等价的目标程序 5.计算机程序的编译过程类似,一般分为五个阶段: 词法分析、语法分析、语义分析及中间代码生成、代码优化、目标代码生成 词法分析的任务: 扫描源程序的字符串,识别出的最小的语法单位(标识符或无正负号数等) 语法分析是: 在词法分析的基础上的,语法分析不考虑语义。语法分析读入词法分析程序识别出的符号,根据给定的语法规则,识别出各个语法结构。 语义分析的任务是检查程序语义的正确性,解释程序结构的含义,语义分析包括检查变量是否有定义,变量在使用前是否具有值,数值是否溢出等。

语法分析完成之后,编译程序通常就依据语言的语义规则,利用语法制导技术把源程序翻译成某种中间代码。所谓中间代码是一种定义明确、便于处理、独立于计算机硬件的记号系统,可以认为是一种抽象机的程序 代码优化的主要任务是对前一阶段产生的中间代码进行等价变换,以便产生速度快、空间小的目标代码 编译的最后一个阶段是目标代码生成,其主要任务是把中间代码翻译成特定的机器指令或汇编程序 编译程序结构包括五个基本功能模块和两个辅助模块 6.编译划分成前端和后端。 编译前端的工作包括词法分析、语法分析、语义分析。编译前端只依赖于源程序,独立于目标计算机。前端进行分析 编译后端的工作主要是目标代码的生成和优化后端进行综合。独立于源程序,完全依赖于目标机器和中间代码。 把编译程序分为前端和后端的优点是: 可以优化配置不同的编译程序组合,实现编译重用,保持语言与机器的独立性。 7.汇编器把汇编语言代码翻译成一个特定的机器指令序列 第二章 1.符号,字母表,符号串,符号串的长度计算P18,子符号串的含义,符号串的简单运算XY,Xn, 2.符号串集合的概念,符号串集合的乘积运算,方幂运算,闭包与正闭包的概念P19,P20A0 ={ε} 3.重写规则,简称规则。非xx(V

编译原理发展史

编译原理历史与发展 姓名:费张烨学号:09923206 指导老师:朱文华 基于形式语言理论中的有关概念来讨论编译实现问题。即 编译原理=形式语言理论+编译技术 编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。 编译器是将一种语言翻译为另一种语言的计算机程序。编译器将源程序(source language)编写的程序作为输入,而产生用目标语言(target language )编写的等价程序。通常地,源程序为高级语言(high-level language ),如C或C + + ,而目标语言则是目标机器的目标代码(object code,有时也称作机器代码(machine code )),也就是写在计算机机器指令中的用于运行的代码。这一过程可以表示为: 源程序→编译器→目标程序 编译技术的历史 在20世纪40年代,由于冯·诺伊曼在存储-程序计算机方面的先锋作用,编写一串代码或程序已成必要,这样计算机就可以执行所需的计算。开始时,这些程序都是用机器语言(machine language )编写的。机器语言就是表示机器实

际操作的数字代码,例如:C7 06 0000 0002 表示在IBM PC 上使用的Intel 8x86处理器将数字2移至地址0 0 0 0 (16进制)的指令。

《史记选读》重点句子翻译

《史记》选读重点句子翻译 《太史公自序》 (1)孔子为鲁司寇,诸侯害之,大夫壅之。 译文:孔子担任鲁国司寇,诸侯嫉恨他,卿大夫阻抑他。 (2)察其所以,皆失其本已。 译文:考察他们所以会这样的原因,都是丢掉了立国立身的根本(礼义)。 (3)夫礼禁未然之前,法施已然之后;法之所为用者易见,而礼之所为禁者难知。 译文:礼是在坏事发生之前加以防范,法是在坏事发生之后予以惩处;法施行的作用容易看到,而礼禁绝的作用却难以察觉。 (4)存亡国,继绝世,补敝起废,王道之大者也。 译文:恢复已经灭亡的国家,延续已经断绝了的世系,补救偏颇之事,振兴废弛之业,这是王道的精髓。 (5)此人皆意有所郁结,不得通其道也,故述往事,思来者。 译文:这些人都是心中聚集了愤懑,不能实现自己的主张,因而追述往事,寄希望于后来人。 《夏本纪》 (1)行视鲧之治水无状,乃殛鲧于羽山以死。 译文:(舜)在巡行中发现鲧治水实在不像话,就把鲧流放到羽山,后来鲧就死在那里。(2)天下皆以舜之诛为是。 译文:天下的人都认为舜对鲧的处置是正确的。(要点:以、诛、是) (3)女其往视尔事矣。 译文:你还是赶快去办你的公事吧!(要点:女、其、尔事) (4)于是帝锡禹玄圭,以告成功于天下。 译文:于是帝舜赐给伯禹一具玄圭,用它向天下宣告大功告成。 (5) 禹伤先人父功之不成受诛,乃劳身焦思,居外十三年,过家门不敢入。 译文:禹为先父伯鲧因治水无功而受严惩深感痛心,因此劳身苦思,在外十三年, 经过自己的家门也不敢进入。 《鲁周公世家》 (1)王其无害,旦新受命三王,维长终是图。 译文:您不会有灾祸的。我刚接受三位先王之命,让您只须考虑周室天下的长远之计。(2)我之所以弗辟而摄行政者,恐天下畔周,无以告我先王太王、王季、文王。 译文:我之所以不避嫌疑代理国政,是怕天下人背叛周室,没法向我们的先王太王、王季、文王交代。 (3)为人父母,为业至长久,子孙骄奢忘之,以亡其家,为人子可不慎乎! 译文:做父母者,经历长久时期创业成功,其子孙骄奢淫逸忘记了祖先的困苦,毁败了家业,做儿子的能不谨慎吗? 《高祖本纪》 1、召诸县父老豪桀曰:“父老苦秦苛法久矣,诽谤者族,偶语者弃市。 译文:沛公召集秦地各县的父老和有才德名望的人,对他们说:“父老们受秦朝苛虐法律的苦很久了,(秦朝统治时)非议朝政得失的要灭族,相聚谈话的处以死刑。” 2、且朕自沛公以诛暴逆,遂有天下,其以沛为朕汤沐邑,复其民,世世无有所与。 译文:而且我开始是以沛公的身份起兵讨伐暴逆,终于取得天下,我把沛县作为我的汤沐邑,免除沛县百姓的赋税徭役,世世代代不必纳税服役。 3、始大人常以臣无赖,不能治产业,不如仲力。今某之业所就孰与仲多? 译文:当初,父亲大人常常认为我没有出息,不会经营产业,比不上二哥刘仲勤快努力。(可

U3造句+翻译

In unison Consist of Keep sb. in suspense Hand down At any rate Narrow down Come over Jut over Know better than Over and over Text B Rely on Apart from Run errands And the like Keep…at bay Keep…in the dark Be aware of Be up to

1、科学家们找到火星上有水的证据了吗?(proof) 2、计划委员会已经将建核电厂的可能地点缩小到了两个沿海城 镇。(location, narrow down) 3、山姆不仅失去了工作,而且还失去了双腿,他只好告社会救济 度过余生。(welfare) 4、由十二个人组成的陪审团(jury)一致表决认为玛丽有罪(guilty) (consist of, in unison) 5、听到有人质疑他的才能,肖恩觉得受了奇耻大辱。(talent, humiliate) 1) Have scientists found proof of water on Mars? 2) The planning committee has narrowed down the possible locations for the nuclear power plant to two coastal towns. 3) Sam not only lost his job but also both legs; he had to live on welfare for the rest of his life. 4) A jury consisting of 12 members voted in unison that Mary was guilty. 5) Sean felt humiliated to hear his talent being questioned. 6、

相关文档
相关文档 最新文档