《数据库系统原理》实验报告

《数据库系统原理》实验报告
《数据库系统原理》实验报告

《数据库系统原理》实验

实验1 表和表数据的操作

一、实验目的

掌握在SQL Server 2000环境下,利用SQL语言创建和管理表的方法。

二、实验要求

1、学会利用SQL语句建立自定义数据类型;

2、掌握使用SQL语句建立数据表的方法;

3、掌握数据表的修改及删除方法(界面方式及语句方式);

4、掌握T-SQL中的INSERT、UPDATE及DELETE语句的使用方法;

三、实验内容

1、创建数据库

利用“查询分析器”创建“stuscore”数据库。

CREATE DATABASE stuscore

2、创建数据表

(1)用“查询分析器”建立stuscore数据库中的学生表(Student)、班级表(Class)、课程表(Course)及成绩表(Grade),结构如下:

create table student

(sno char(8) primary key,

sname varchar(10),

sex char(2),

clsno char(6),

stuaddr varchar(20),

birthday char(20),

height DEC(4,2),

foreign key(clsno) references class(clsno)

);

create table class

(clsno char(6) primary key, clsname varchar(16), dorector varchar(10), specialty varchar(30)

);

create table course

(cno char(4) primary key, cname varchar(16),

pcno char(4),

credit tinyint

);

create table grade

(sno char(8),

cno char(4),

scorce int,

primary key(sno,cno)

);

2)使用T-SQL语句修改表结构

可以使用Alter语句增加、删除或修改字段信息。

(1)将表Student增加一列Department(系别)Char(2),不能为空。

alter table student add department char(2);

(2)修改学生表中的学生姓名字段的长度为20:

alter table student alter column sname char(20);

3、表数据的操作

插入数据之后使用命令:Select * from Student; 检查插入数据的正确性

插入数据之后使用命令:Select * from Class; 检查插入数据的正确性

(4)向表(Grade )中插入数据

插入数据之后使用命令:Select * from Grade; 检查插入数据的正确性

实验3 关系、索引、视图和触发器

一、实验目的

1、掌握关系图的创建方法。

2、掌握创建索引、查看索引和删除索引的操作和方法。

3、掌握创建、查询、更新、修改和删除视图的操作和方法。

二、实验要求

1、掌握在SQL Server 2000环境下,利用查询分析器创建关系图,理解关系数据库中表间关系的参照引用完整性;

2、掌握在SQL Server 2000环境下,利用查询分析器创建、查看和管理视图;

3、掌握在SQL Server 2000环境下,利用查询分析器创建、查看和管理索引。

三、实验内容

索引、视图和触发器的创建、查询、修改和删除

(1)为学生情况(student)表创建一个视图V_xsqk,以显示学生的学号、姓名、性别和出生年月等基本信息。

Create view V_xsqk

As

Select sno,sname,sex,birthday

From student

(2)创建一个视图V_XSCJ,以显示“0001”号课程的学生成绩信息,如学号、姓名、课程名称、成绩和学分等。

create view V_XSCJ(sno,sname,CName,Scorce,Credit)

as

select grade.sno,sname,CName,Scorce,Credit

from student,Course,Grade

Where student.sno=grade.sno and https://www.360docs.net/doc/0315973644.html,o=https://www.360docs.net/doc/0315973644.html,o and https://www.360docs.net/doc/0315973644.html,O='0001';

(3)分别利用视图V_xsqk和V_XSCJ作查询和更新操作。

(4)创建触发器trigger_t3,实现当修改学生情况表(student)中的某个学生的学号时,对应学生成绩表(grade)中的学号也作修改。

Create trigger trigger_t3 on student for update

As

Update grade set grade.sno= inserted.sno from grade,deleted,inserted

where grade.sno=(select sno from deleted)

go

(5)在Class表ClsName列上建立一个非聚集索引

Create nonclustered index clsn on Class(ClsName)(6)在student表的SName列上建立一个唯一性索引Create unique index stuname on student (SName)

实验4 简单的连接查询

一、实验目的

1、掌握T-SQL中运算符和表达式的使用。

2、通过对Select的使用,掌握Select语句的结构及其应用。

3、掌握T-SQL中几个常用流程控制语句的使用。

4、掌握系统内置函数的概念及其应用。

二、实验要求

掌握在SQL Server 2000环境下,利用企业管理器和查询分析器进行SQL数据查询。学习使用Select语句进行数据库的检索,掌握在Select语句中使用where子句、order by子句、group by子句以及between、like关键字。

学习T-SQL语言的几个常用语句、系统内置函数和用户自定义函数的使用方法。

三、实验内容

1、使用SQL查询分析器,对学生成绩管理(stuscore)数据库完成如下查询:

(1)在学生成绩库中查询出生年月在“1976.12.21”至“1979.4.8”之间的男生情况,并以出生年月按降序排列。

(2)统计“数学”专业的人数。

(3)统计每个学生每个学期的最低分、最高分及平均分。

(4)查询至少被3个学生选修的课程的课程号

(5)查询每个学生的平均成绩,要求查询结果中有学号和平均成绩两列。

(6)查询CS01或MT04班级姓李的学生的信息。

(7)求选修数学课程且成绩为90 分以上的学生学号、姓名及成绩。

(8)将王军所选修的相关课程都增加5分

(1)

select *

from Student

where sex='男' and

Birthday between '1976.12.21' and '1979.4.8'

Order by Birthday desc;

(2)

select count(*)

from student,class

where student.clsno=class.clsno and class.specialty='数学';

(3)

select sno,max(Scorce), min(Scorce),avg(scorce)

from grade

group by sno

(4)

select cno

select cno

From grade

group by cno

having count(*)>=3;

(5)

select sno,avg(Scorce)

from grade

group by sno

(6)

select *

from Student

where sname like '李%' and clsno in('CS01','MT04');

(7)

Select student.sno,sname,scorce

From student,class,grade

Where student.clsno=class.clsno and class.specialty='数学'

and student.sno=grade.sno and grade.scorce>'90';

(8)

update grade

Set Scorce=Scorce+5

Where exists (select * from student

where grade.sno=student.sno and sName='王军' );

实验5、高级查询实验

一、实验目的

使学生进一步掌握SQL Server 查询分析器的使用方法,加深Transact-SQL 语言的嵌套查询语句的理解。

二、实验内容

在SQL Server 查询分析器中使用IN 、比较符、ANY 或ALL 和EXISTS 操作符进行嵌套查询操作。

三、实验步骤

用Transact-SQL语句表示,在学生选课库中实现其数据嵌套查询操作:

(l)求选修了数学课程的学生学号和姓名。

(2)求其他系中年龄小于计算机系年龄的学生。

(3)求没有选修0003 课程的学生姓名。

(1)

select student.sno,sname

From student,grade,course

Where student.sno=grade.sno and https://www.360docs.net/doc/0315973644.html,o=https://www.360docs.net/doc/0315973644.html,o and course.pcno='0001';

(2)

Select *

From student

Where birthday > all

(select birthday from student where clsno='cs01') and clsno <> 'cs01';

(3)

Select sname

From student

Where not exists

(select * from grade,course,student

Where grade.sno=student.sno and https://www.360docs.net/doc/0315973644.html,o=https://www.360docs.net/doc/0315973644.html,o and course.pcno='0003') ;

数据库系统原理课后答案 第九章

9.1 名词解释 (1)OODBS:是指面向对象数据库系统,它既具数据库管理的基本功能,又能支持面向对象的数据模型。 (2)ORDBS:基于对象关系数据模型的DBS称为对象关系数据库系统(ORDBS)。 (3)平面关系模型:传统的关系模型称为“平面关系模型”,它要求关系模式具有第一范式(1NF)性质,关系具有规范化的结构。也就是规定属性值是不可分解的,即不允许属性值具有复合结构(元组或关系)。 (4)嵌套关系模型:是从平面关系模型发展而成的。它允许关系的属性值又可以是一个关系,而且可以出现多次嵌套。嵌套关系突破了1NF的定义框架,是“非1NF关系”。 (5)复合对象模型:在嵌套关系模型上进一步放宽要求。在关系定义上,集合与元组不再有交替出现的严格限制,此时的关系中,属性类型可以是基本数据类型、结构类型(元组类型)或集体类型(即关系类型)。 (6)数据的泛化/细化:是对概念之间联系进行抽象的一种方法。当在较低层上的抽象表达了 与之联系的较高层上抽象的特殊情况时,就称较高层上抽象是较低层上抽象的"泛化",而较低层上抽象是较高层上抽象的"细化"。 (7)对象关系模型:在传统关系数据基础上,提供元组、数组、集合等更为丰富的数据类型及处理新数据类型操作的能力而形成的数据模型。(注:传统关系模型只支持字符、数值、字串,布尔值等等基本数据类型及其处理功能) (8)类型级继承性:当继承性发生在类型级时,子类型继承了超类型的属性。也就是说,超类型所具有的属性,在子类上也具有。 (9)表级继承性:继承性也可发生在表级,(就是元组集合上发生继承),子表继承超表全部属性,超表中每个元组最多可以与子表中一个元组对应,而子表中的每个元组在超表中恰有一个元组对应,并在继承的属性值上具有相同的值。 (10)引用类型:数据类型可以嵌套定义,在嵌套引用时,不是引用对象本身,而是个用对象标识符(即指针),这种指针被称为引用类型。 (11)对象:客观世界中的实体经过抽象称为问题空间中的对象,它是对一组信息及其操作的描述。 (12)类:是具有相同的变量名和类型、相同的消息和使用方法的对象的集合。 (13)单重继承性:一个子类继承某一个超类的结构和特性,称为单重继承性。 (14)多重继承性:一个子类继承多个超类的结构和特性,称为多重继承性。 (15)对象标识:在面向对象语言中,对象标识是一个指针一级的概念,在对象创建的瞬间,由系统赋给每个对象一个“标识”,即系统内的一个唯一的指针,在对象生存期内,这个标识不可改变。 (16)对象包含:不同类的对象之间存在的包含关系称为对象包含。包含是一种“一部分”(is part of)的联系。 (17)类继承层次图:表示类继承关系的图,由超类名、子类名和一组线条自上而下有序的表示。(18)类包含层次图:表示对象包含关系的图,由一些具有包含关系的对象和线条自上而下表示(下方的对象为其连线所指上方对象的一部分)。 (19)持久数据:是指创建这些数据的程序运行终止后数据依然存在于系统之中。数据库中的关系就是持久数据。 (20)持久对象:程序运行结束后,被保留下来的对象称为持久对象。 (21)持久指针:持久指针可看作是数据库中指向对象的指针。持久化指针不像内存中的指针,它在程序执行后及数据重组后仍保持有效。 (22)持久化C++系统: 基于C++的持久化扩充的OODBS。

数据库系统原理及应用教程第四版课后答案

第一章 1、(1)数据:数据用于载荷信息的物理符号。 (2)数据的特征;○1数据有“型”与“值”之分;○2数据受数据类型与取值范围的约束;○3数据有定性表示与定量之分;○4数据应具有载体与多种表现形式。 3、(1)数据管理的功能: ○1组织与保存数据功能,即将收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期的被保存; ○2数据维护功能,即根据需要随时进行插入新数据,修改原数据与删除失效数据的操作; ○3数据查询与数据统计功能,即快速的得到需要的正确数据,满足各种使用要求;○4数据的安全与完整性控制功能,即能保护数据的安全与完整性。 (2)数据管理的目标:收集完整的信息,将信息用数据表示,按数据结构合理科学的组织并保存数据;为各种使用快速地提供需要的数据,并保护数据的安全与完整性。 4、(1)数据库:就是数据管理的新方法与技术,她就是一个按数据结构来存储与管理数据的计算机软件系统。 (2)数据库中的数据具有的特点:○1数据库中的数据具有整体性,即数据库中的数据要保持自身完整的数据结构;○2数据库中的数据具有数据共享性,不同的用户可以按各自的用法使用数据库中的数据,多个用户可以同时共享数据库中的数据资源。 5、(1)数据库管理系统:它就是专门用于管理数据库的计算机管理软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询与统计等操作功能,并完成对数据完整性、安全性进行操作的功能。 (2)数据库管理系统主要功能:就是数据存储、数据操作与数据控制功能。其数据存储与数据操作就是:数据库的定义功能,指未说明库中的数据情况而进行的建立数据库结构的操作;数据库建立功能,指大批数据录入到数据库的操作,它使得库中含有需要保护的数据记录;数据库维护功能,指对数据的插入、删除与修改操纵,其操作做能满足库中信息变化或更新的需求;数据库查询与统计功能,指通过对数据库的访问,为实际应用提供需要的数据。数据库管理系统的数据控制功能为:数据安全性控制功能,即为了保证数据库的数据安全可靠,防止不合法的使用造成数据库泄露与破坏,也就就是避免数据被人偷瞧、篡改或破坏;数据库完整性控制功能,指为了保证数据库中的数据的正确、有效与相容,防止不合语意的错误数据被输入或输出。 14、(1)数据库系统的软件由几部分组成?数据库系统的软件中包括操作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件与用户数据库。 (2)作用:①操作系统或汉字操作系统:操作系统就是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文操作系统的支持,以提供汉字的输入、输出方法与汉字信息的处理方法。②数据库管理系统与主语言系统:数据库管理系统就是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言系统就是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。③应用开发工具软件:应用开发工具就是DBMS系统为应用开发人员与最终用户提供的高效率、多功能的应用生成器、第四代计算机语言等各种软件工具.如报表生成器、表单生成器、查询与视图设计器等,它们为数据库系统的开发与使用提供了良好的环境与帮助。④应用系统及数据库:数据库应用系统包括为特定的应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们就是一个有机整体。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理与处理操作。(3)关系:

数据库系统原理(含答案)

数据库系统原理自测题(2) 一、单项选择题 1.数据库物理存储方式的描述称为【B】A.外模式B.内模式 C.概念模式D.逻辑模式 2.在下面给出的内容中,不属于DBA职责的是【A】A.定义概念模式B.修改模式结构 C.编写应用程序D.编写完整行规则 3.用户涉及的逻辑结构用描述【C】A.模式B.存储模式 C.概念模型D.逻辑模式 4.数据库在磁盘上的基本组织形式是【B】A.DB B.文件 C.二维表 D.系统目录 5.在DBS中,最接近于物理存储设备一级的结构,称为【D】A.外模式B.概念模式C.用户模式D.内模式 6.从模块结构考察,DBMS由两大部分组成:【B】A.查询处理器和文件管理器B.查询处理器和存储管理器 C.数据库编译器和存储管理器D.数据库编译器和缓冲区管理器 7.设W=R?S,且W、R、S的属性个数分别为w、r和s,那么三者之间应满 足【A】 A.w≤r+s B.w<r+s C.w≥r+s D.w>r+s 8.数据库系统的体系结构是数据库系统的总体框架,一般来说数据库系统应具有三级模式体系结构,它们是【A】A.外模式、逻辑模式和内模式B.内模式、用户模式和外模式 C.内模式、子模式和概念模式D.子模式、模式和概念模式 9.ER图是表示概念模型的有效工具之一,在ER图中的菱形框表示【A】A.联系B.实体 C.实体的属性D.联系的属性 10.数据库管理系统中数据操纵语言DML所事项的操作一般包括【A】A.查询、插入、修改、删除B.排序、授权、删除 C.建立、插入、修改、排序D.建立、授权、修改 11.设有关系R(A,B,C)和关系S(B,C,D),那么与R?S等价的关系代数表达式是【C】

04735--数据库系统原理

数据库系统原理 课程代码:04735 一、单选题 1、( C )是描述事物的符号记录,是数据库中存储的基本对象。描述事物的符号可以是数字,也可以是文字、图形、图像、声音、语言等。数据有多种表现形式,它们都可以经过数字化后存入计算机。 A、视图 B、表 C、数据 D、数据库 2、数据库的简称( B ) A、DA B、DB C、BD D、DD 3、( D )是指长期储存在计算机内的、有组织的、可共享的数据集合,以及数据之间的逻辑关系的集合。 A、视图 B、数据 C、表 D、数据库 4、数据库管理系统简称( D ) A、DDA B、DB C、DBA D、DBMS 5、( A )是位于用户与操作系统之间的一层数据管理软件。 A、数据库管理系统 B、数据库 C、数据库系统 D、数据库管理员 6、( A )是自由软件,因此不属于厂商产品,所以归属于应用中间件软 件。 A、MSSQL B、MySQL C、oracle D、linux 7、数据库系统简称( B ) A、DBA B、DB C、DBS D、DBMS 8、从事数据库管理工作的人员称为数据库管理员,简称为( A ) A、DB B、DBA C、DBMS D、DSA 9、( A )是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。 A、数据处理 B、数据管理 C、数据组织 D、数据维护 10、( A )是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。 A、数据管理 B、数据处理 C、数据加工 D、数据收集 11、数据库的核心任务是( D ) A、数据收集 B、数据整理 C、数据组织 D、数据管理

《数据库系统原理及应用》习题集及参考答案要点

《数据库系统原理及应用》习题集及参考答案 一、简答题 1、什么是数据库管理系统? 一种负责数据库的建立、操作、管理和维护的软件系统。 2、数据库系统有哪几种模式?分别用来描述什么? (1)外模式 是用户的数据视图,用来描述数据的局部逻辑结构,是模式的子集。 (2)模式 是所有用户的公共数据视图,用来描述数据库中全体数据的全局逻辑结构和特征。(3)内模式 又称存储模式,描述数据的物理结构及存储方式 3、什么是事务?事务有哪些特征? 答:所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。 事务的特征:原子性、一致性、隔离性、持续性。 4、POWER BUILDER中事务对象有何作用? 答:PowerBuider的事务对象是应用程序与数据库之间进行通信的桥梁,在应用程序初启时,系统自动创一个为SQLCA(SQL Communication Area, SQL通讯区)的全局事务对象,该对象在应用程序的任何地方都可以访问 应用程序与数据库的所有通信都需要通过事务对象来完成,除了直接使用系统的缺省事务对SQLCA外,开发人员也可以创建自己的事务对象。 5、SQL SERVER中INSERTED表和DELETED表有何用? 答:触发器中用到两种特殊的表:删除表和插入表触发器中使用名为“deleted"和“inserted"来参照这些表;删除表存储受DELTE和UPDATE语句影响的行的副本当执行DELETE或UPDA TE语句时,行从触发器表中删除并传递到删除表中。删除表和触发器表通常没有共有的行。 插入表存储受INSERT和UPDA TE语句影响的行的副本当执行一NSERT或UPDA T语句时,新行同时增加到插入表和触发器表中。插入表中的行是触发器表中新行的副本可使用删除表和插入表中的行来参照相关表中的行, 或测试被删除或插入行中的值。 6、数据库系统由哪几部分构成? 答:数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 7、什么是候选码?什么是主码?主码只能有一个属性吗? 答:能唯一标识实体的属性或属性组称为超码,其任意真子集都不能成为超码的最小超码称为候选码;

编译原理实验报告

编译原理实验报告 班级 姓名: 学号: 自我评定:

实验一词法分析程序实现 一、实验目的与要求 通过编写和调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将字符形式的源程序流转化为一个由各类单词符号组成的流的词法分析方法。 二、实验内容 根据教学要求并结合学生自己的兴趣和具体情况,从具有代表性的高级程序设计语言的各类典型单词中,选取一个适当大小的子集。例如,可以完成无符号常数这一类典型单词的识别后,再完成一个尽可能兼顾到各种常数、关键字、标识符和各种运算符的扫描器的设计和实现。 输入:由符合或不符合所规定的单词类别结构的各类单词组成的源程序。 输出:把单词的字符形式的表示翻译成编译器的内部表示,即确定单词串的输出形式。例如,所输出的每一单词均按形如(CLASS,VALUE)的二元式编码。对于变量和常数,CLASS字段为相应的类别码;VALUE字段则是该标识符、常数的具体值或在其符号表中登记项的序号(要求在变量名表登记项中存放该标识符的字符串;常数表登记项中则存放该常数的二进制形式)。对于关键字和运算符,采用一词一类的编码形式;由于采用一词一类的编码方式,所以仅需在二元式的CLASS字段上放置相应的单词的类别码,VALUE字段则为“空”。另外,为便于查看由词法分析程序所输出的单词串,要求在CLASS字段上放置单词类别的助记符。 三、实现方法与环境 词法分析是编译程序的第一个处理阶段,可以通过两种途径来构造词法分析程序。其一是根据对语言中各类单词的某种描述或定义(如BNF),用手工的方式(例如可用C语言)构造词法分析程序。一般地,可以根据文法或状态转换图构造相应的状态矩阵,该状态矩阵同控制程序便组成了编译器的词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。构造词法分析程序的另外一种途径是所谓的词法分析程序的自动生成,即首先用正规式对语言中的各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程序所应进行的语义处理工作,然后由一个所谓词法分析程序的构造程序对上述信息进行加工。如美国BELL实验室研制的LEX就是一个被广泛使用的词法分析程序的自动生成工具。 总的来说,开发一种新语言时,由于它的单词符号在不停地修改,采用LEX等工具生成的词法分析程序比较易于修改和维护。一旦一种语言确定了,则采用手工编写词法分析程序效率更高。 四、实验设计 1)题目1:试用手工编码方式构造识别以下给定单词的某一语言的词法分析程序。 语言中具有的单词包括五个有代表性的关键字begin、end、if、then、else;标识符;整型常数;六种关系运算符;一个赋值符和四个算术运算符。参考实现方法简述如下。 单词的分类:构造上述语言中的各类单词符号及其分类码表。 表I 语言中的各类单词符号及其分类码表 单词符号类别编码类别码的助记符单词值

微机原理实验报告

汇编语言程序设计实验 一、实验内容 1.学习并掌握IDE86集成开发环境的使用,包括编辑、编译、链接、 调试与运行等步骤。 2.参考书例4-8,P165 (第3版161页)以单步形式观察程序的 执行过程。 3.修改该程序,求出10个数中的最大值和最小值。以单步形式观 察,如何求出最大值、最小值。 4.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态。 二、实验目的 1.学习并掌握IDE86集成开发环境的使用 2.熟悉汇编语言的基本算法,并实际操作 3.学会利用IDE86进行debug的步骤 三、实验方法 1.求出10个数中的最大值和最小值 (1)设计思路:利用冒泡法,先对数据段的10个数字的前2个比 较,把二者中大的交换放后面。在对第二个和第三个数比较,把 二者中较大的交换放后面,依此类推直到第十个数字。这样第十 位数就是10个数里面最大的。然后选出剩下9个数字里面最大 的,还是从头开始这么做,直到第九个数字。以此类推直到第一 个数字。

(2)流程图 2.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态

(1)设计思路:结果存放在sum里面,加数是i(初始为1),进行 100次循环,sum=sum+I,每次循环对i加1. (2)流程图: 四、 1.求出10个数中的最大值和最小值

DSEG SEGMENT NUM DB -1,-4,0,1,-2,5,-6,10,4,0 ;待比较数字 DSEG ENDS CODE SEGMENT ASSUME DS:DSEG,CS:CODE START:MOV AX,DSEG MOV DS,AX LEA SI,NUM MOV DX,SI MOV CL,9 ;大循环计数寄存器初始化 NEXT1:MOV BL,CL ;大循环开始,小循环计数器初始化MOV SI,DX NEXT2:MOV AL,[SI+1] CMP [SI],AL ;比较 JGGONE ;如果后面大于前面跳到小循环末尾CHANGE:MOV AH,[SI] ;交换 MOV [SI+1],AH MOV [SI],AL JMP GONE GONE:add SI,1 DEC BL JNZ NEXT2

数据库系统原理第一章习题

第1章绪论 一、选择题 1、数据库系统的核心和基础是()。 A. 物理模型 B. 概念模型 C. 数据模型 D. 逻辑模型 2、实现将现实世界抽象为信息世界的是()。 A. 物理模型 B. 概念模型 C. 关系模型 D. 逻辑模型 3、数据管理技术经历了若干阶段,其中人工管理阶段和文件管理阶段相比文件系统的一个显著优势是()。 A. 数据可以长期保存 B. 数据共享性很强 C. 数据独立性很好 D. 数据整体结构化 4、能够保证数据库系统中的数据具有较高的逻辑独立性的是()。 A. 外模式/模式映像 B. 模式 C. 模式/内模式映像 D. 外模式 5、DBMS是一类系统软件,它是建立在下列哪种系统之上的?() A. 应用系统 B. 编译系统 C. 操作系统 D. 硬件系统 6、下列说法中,正确的是()。 A. 数据库的概念模型与具体的DBMS有关 B. 三级模式中描述全体数据的逻辑结构和特征的是外模式 C. 数据库管理员负责设计和编写应用系统的程序模块 D. 从逻辑模型到物理模型的转换一般是由DBMS完成的 7、长期存储在计算机内,有组织的、可共享的大量数据的集合是()。 A. 数据 B. 数据库 C. 数据库管理系统 D. 数据库系统 8、在数据管理技术发展过程中,需要应用程序管理数据的是()。 A. 人工管理阶段 B. 人工管理阶段和文件系统阶段 C. 文件系统阶段和数据库系统阶段 D. 数据库系统阶段 二、判断题 1、通常情况下,外模式是模式的子集。() 2、数据库管理系统是指在计算机系统中引入数据库后的系统,一般由DB、DBS、应用系统和DBA组成。()

3、在数据模型的组成要素中,数据结构是刻画一个数据模型性质最重要的方面,人们通常按照数据结构的类型来命名数据模型。() 4、数据库系统的三级模式是对数据进行抽象的3个级别,把数据的具体组织留给DBMS管理。() 三、填空题 1、数据库系统的三级模式结构是指数据库系统是由____________、____________和_____________三级构成。 2、两个实体型之间的联系可以分为三种:一对一联系、______________和_____________。 3、数据库的三级模式结构中,描述局部数据的逻辑结构和特征的是______________。 4、数据模型的组成要素中描述系统的静态特性和动态特性的分别是________________和__________________。 5、最经常使用的概念模型是________________。

(完整word版)数据库系统原理及应用教程第四版课后答案

第一章 1、(1)数据:数据用于载荷信息的物理符号。 (2)数据的特征;○1数据有“型”和“值”之分;○2数据受数据类型和取值范围的约束;○3数据有定性表示和定量之分;○4数据应具有载体和多种表现形式。 3、(1)数据管理的功能:○1组织和保存数据功能,即将收集到的数据合理地分类组织,将其存储在物理载体上,使数据能够长期的被保存;○2数据维护功能,即根据需要随时进行插入新数据,修改原数据和删除失效数据的操作;○3数据查询和数据统计功能,即快速的得到需要的正确数据,满足各种使用要求;○4数据的安全和完整性控制功能,即能保护数据的安全和完整性。 (2)数据管理的目标:收集完整的信息,将信息用数据表示,按数据结构合理科学的组织并保存数据;为各种使用快速地提供需要的数据,并保护数据的安全和完整性。 4、(1)数据库:是数据管理的新方法和技术,他是一个按数据结构来存储和管理数据的计算机软件系统。 (2)数据库中的数据具有的特点:○1数据库中的数据具有整体性,即数据库中的数据要保持自身完整的数据结构;○2数据库中的数据具有数据共享性,不同的用户可以按各自的用法使用数据库中的数据,多个用户可以同时共享数据库中的数据资源。 5、(1)数据库管理系统:它是专门用于管理数据库的计算机管理软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能,并完成对数据完整性、安全性进行操作的功能。 (2)数据库管理系统主要功能:是数据存储、数据操作和数据控制功能。其数据存储和数据操作是:数据库的定义功能,指未说明库中的数据情况而进行的建立数据库结构的操作;数据库建立功能,指大批数据录入到数据库的操作,它使得库中含有需要保护的数据记录;数据库维护功能,指对数据的插入、删除和修改操纵,其操作做能满足库中信息变化或更新的需求;数据库查询和统计功能,指通过对数据库的访问,为实际应用提供需要的数据。数据库管理系统的数据控制功能为:数据安全性控制功能,即为了保证数据库的数据安全可靠,防止不合法的使用造成数据库泄露和破坏,也就是避免数据被人偷看、篡改或破坏;数据库完整性控制功能,指为了保证数据库中的数据的正确、有效和相容,防止不合语意的错误数据被输入或输出。 14、(1)数据库系统的软件由几部分组成?数据库系统的软件中包括操作系统(OS)、数据库管理系统(DBMS)、主语言系统、应用程序软件和用户数据库。 (2)作用:①操作系统或汉字操作系统:操作系统是所有计算机软件的基础,在数据库系统中它起着支持DBMS及主语言系统工作的作用。如果管理的信息中有汉字,则需要中文操作系统的支持,以提供汉字的输入、输出方法和汉字信息的处理方法。②数据库管理系统和主语言系统:数据库管理系统是为定义、建立、维护、使用及控制数据库而提供的有关数据管理的系统软件。主语言系统是为应用程序提供的诸如程序控制、数据输入输出、功能函数、图形处理、计算方法等数据处理功能的系统软件。③应用开发工具软件:应用开发工具是DBMS系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代计算机语言等各种软件工具.如报表生成器、表单生成器、查询和视图设计器等,它们为数据库系统的开发和使用提供了良好的环境和帮助。④应用系统及数据库:数据库应用系统包括为特定的应用环境建立的数据库、开发的各类应用程序及编写的文档资料,它们是一个有机整体。通过运行数据库应用系统,可以实现对数据库中数据的维护、查询、管理和处理操作。(3)关系:

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

04735《数据库系统原理》复习题答案(汇编)

数据库系统原理(课程代码04735) 一、单项选择题(本大题共24小题)在每小题列出的四个备选项中只有一个是最符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.DBS具有较高的数据独立性,是因为DBS采用了【 B 】A.嵌入式语言B.三级模式结构 C.DD D.六个层次的存储介质 2.在层次、网状模型中,起导航数据作用的是【A 】A.指针B.关键码 C.DD D.索引 3.设关系R(A,B,C)和关系S(B,C,D), 那么与R?S等价的关系代数表达式是【B 】A.σ2=4(R?S)B.σ2=4(R×S) C.σ2=1(R?S)D.σ2=1(R×S) 4.设关系R和S的结构相同,分别有m和n个元组,那么R-S操作的结果中元组个数为【 C 】A.为m-n B.为m C.小于等于m D.小于等于(m-n) 5. 设有两个事务T1、T2,A、B的初始值分别为10和5,其并发操作如图1所示,下面评价正确的是【C 】A.该调度(schedule)不存在并发问题B.该调度是可串行化的(serializable)。 C.该调度存在冲突(conflict)操作D.该调度不存在冲突操作 T1 T2 read(A) read(B) sum=A+B read(A) A=A*2 write(A) read(A) read(B) sum=A+B write(A+B) 图1 事务并发操作图 6.设有关系R(A,B,C)的值如下:

A B C 5 6 5 6 7 5 6 8 6 下列叙述正确的是【 B 】A.函数依赖C→A在上述关系中成立B.函数依赖AB→C在上述关系中成立C.函数依赖A→C在上述关系中成立D.函数依赖C→AB在上述关系中成立7.设关系模式R(A,B,C,D),F是R上成立的FD集,F={ A→C,BC→D },那么ρ={ ABD,AC }相对于F 【 B 】 A.是无损联接分解,也是保持FD的分解 B.是无损联接分解,但不保持FD的分解 C.不是无损联接分解,但保持FD的分解 D.既不是无损联接分解,也不保持FD的分解 8.概念设计的结果得到的是概念模式。概念模式是【 D 】A.与DBMS有关的B.与硬件有关的 C.独立于DBMS的D.独立于DBMS和硬件的 9.在有关“弱实体”的叙述中,不正确的是【 C 】A.弱实体的存在以父实体的存在为前提 B.弱实体依赖于父实体的存在 C.父实体与弱实体的联系可以是1:1、1:N或M:N D.父实体与弱实体的联系只能是1:1或1:N 10.有15个实体类型,并且它们之间存在着15个不同的二元联系,其中5个是1:1联系类型,5个是1:N联系类型,5个M:N联系类型,那么根据转换规则,这个ER 结构转换成的关系模式有【 B 】 A.15个B.20个C.25个D.30个 11.关系运算中花费时间可能最长的运算是【C 】A.投影B.选择C.笛卡尔积D.除 12.关系规范化中的插入操作异常是指【D 】A.不该删除的数据被删除B.不该插入的数据被插入 C.应该删除的数据未被删除D.应该插入的数据未被插入 13.数据库在磁盘上的基本组织形式是【B 】A.DB B.文件 C.二维表 D.系统目录 14.在DBS中,最接近于物理存储设备一级的结构,称为【 D 】A.外模式B.概念模式C.用户模式D.内模式 15.从模块结构考察,DBMS由两大部分组成:【 B 】A.查询处理器和文件管理器B.查询处理器和存储管理器 C.数据库编译器和存储管理器D.数据库编译器和缓冲区管理器

编译原理实验报告总结

学年第学期《编译原理》实验报告 学院(系):计算机科学与工程学院 班级:11303070A 学号:11303070*** 姓名:无名氏 指导教师:保密式 时间:2016 年7 月

目录 1.实验目的 (1) 2.实验内容及要求 (1) 3.实验方案设计 (1) 3.1 编译系统原理介绍 (1) 3.1.1 编译程序介绍 (2) 3.1.2 对所写编译程序的源语言的描述 (2) 3.2 词法分析程序的设计 (3) 3.3 语法分析程序设计 (4) 3.4 语义分析和中间代码生成程序的设计 (4) 4. 结果及测试分析 (4) 4.1软件运行环境及限制 (4) 4.2测试数据说明 (5) 4.3运行结果及功能说明 (5) 5.总结及心得体会 (7)

1.实验目的 根据Sample语言或者自定义的某种语言,设计该语言的编译前端。包括词法分析,语法分析、语义分析及中间代码生成部分。 2.实验内容及要求 (1)词法分析器 输入源程序,输出对应的token表,符号表和词法错误信息。按规则拼单词,并转换成二元形式;滤掉空白符,跳过注释、换行符及一些无用的符号;进行行列计数,用于指出出错的行列号,并复制出错部分;列表打印源程序;发现并定位词法错误; (2)语法分析器 输入token串,通过语法分析,寻找其中的语法错误。要求能实现Sample 语言或自定义语言中几种最常见的、基本的语法单位的分析:算术表达式、布尔表达式、赋值语句、if语句、for语句、while语句、do while语句等。 (3)语义分析和中间代码生成 输入token串,进行语义分析,修改符号表,寻找其中的语义错误,并生 成中间代码。要求能实现Sample语言或自定义语言中几种最常见的、基本的语法单位的分析:算术表达式、布尔表达式、赋值语句、if语句、for语句、while 语句、do while语句等。 实验要求:功能相对完善,有输入、输出描述,有测试数据,并介绍不足。3.实验方案设计 3.1 编译系统原理介绍 编译器逐行扫描高级语言程序源程序,编译的过程如下: (1).词法分析 识别关键字、字面量、标识符(变量名、数据名)、运算符、注释行(给人看的,一般不处理)、特殊符号(续行、语句结束、数组)等六类符号,分别归类等待处理。 (2).语法分析 一个语句看作一串记号(Token)流,由语法分析器进行处理。按照语言的文法检查判定是否是合乎语法的句子。如果是合法句子就以内部格式保存,否则报错。直至检查完整个程序。 (3).语义分析 语义分析器对各句子的语法做检查:运算符两边类型是否相兼容;该做哪些类型转换(例如,实数向整数赋值要"取整");控制转移是否到不该去的地方;是

微机原理与单片机实验报告

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 2012 年 6 月 9 日

目录 实验1 EMU8086模拟器的使用 (3) 实验2 数据传送指令的使用 (5) 实验3 多位十六进制加法运算实验 (9) 实验5 循环程序实验 (11) 实验6 由1 到100 求和实验 (13) 实验7 求表中正数_负数_0 的个数实验 (14) 实验8 数据排列实验(冒泡排序) (16) 实验9 系统功能调用(大小写转换) (18) 实验10 阶乘(递归运算) (20) 实验11 ProteusIO工程文件的建立 (21) 实验12 IO口读写实验(245、373) (22) 实验13 8255 接口实验 (24) 实验14 声光报警 (25) 实验总结 (28)

实验1 EMU8086模拟器的使用 一实验要求 利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的: 熟悉EMU8086实验环境 三EMU8086环境: 1 模拟器编辑窗口 2 模拟器调试窗口

四实验内容 实验内容1:新建文件。 运行emu8086 1. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码: MOV AX, 1020H MOV BX, 2030H MOV AX, BX ADD AX, BX MOV [BX], AX MOV [2032H], AX HLT 2. 编译:单击“编译”按钮,对程序段进行编译; 3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。 4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。 5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。 6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。 7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为400毫秒,单击“全速”按钮,运行程序, 8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容 9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序

数据库系统原理名词解释

名词解释 1.数据独立性:是指应用程序和数据库的数据结构之间相互独立, 不受影响。 2.物理数据独立性:就是对内模式的修改尽量不影响逻辑模式,当 然对外模式和应用程序的影响更小。 3.逻辑数据独立性: 4.DBMS;是指数据库系统中对数据进行管理的软件系统,它是数据 库的核心组成部分。 5.关键码;能唯一标识实体的属性或属性集;能唯一标识文件中每个 记录的字段或字段集。 6.概念模型:表达用户需求观点的数据全局逻辑结构的模式型 7.逻辑模型:表达计算机实现观点的DB全局逻辑结构的模型。 8.外部模型:表达用户使用观点的DB局部逻辑结构的模型。 9.内部模型:表的DB物理结构的模型。 10.外模式:是用户与数据系统的接口,使用户用到的那部分数据的 描述。 11.内模式:是数据库在物理方面的描述,定义所有内部记录类型, 索引和文件的组织方式,以及数据控制方面的细节。 12.逻辑模式:是数据库中全部数据的整体逻辑结构的描述。 二. 1数据库系统的生存期:数据库应用系统从开始规划,设计,实现,维护,到最后被新的系统取代而停止使用的整个时间。

2.DFD(数据流图):是从“数据”和“对数据的加工”两方面表达数据处理系统工作过程的一种图形表示法,具有直观,已于被用户和软件人员双方都能理解的一种表达系统功能的描述方式。 3.简单属性:是不可在分割的属性。 4.复合属性:是不可分解其他属性的属性。 三.1.数据冗余:是指同一数据在系统中多次重复出现。 2.数据依赖:对于当前关系r的任意两个元组,如果x值相同,则要求Y值也相同,即有一个X值就有一个Y值与之相对应,或者说Y 值由X值决定。 3.平凡函数依赖: 4.候选键:X是R的一个超键,如果X→U在R上成立,但对于X的任意一个真子集X1,都有X1→U不成立,那么称X1是R上的一个候选键。 5,无损分解: 6第一范式:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式。 7.第二范式:如果关系R是1NF,且每个非主属性完全函数依赖候选键。那么称R是第二范式。 四.1.笛卡尔积:设关系R和S的元素分别是r和s,定义R和S的笛卡尔积是一个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的元组,后s个分量来自S的一个元组,记为R×S。五.1,视图:在SQL中,外模式一级数据结构的基本单位是视图。

编 译 原 理 实 验 报 告

编译原理实验报告 课程:编译原理 系别:计算机系 班级:11网络 姓名:王佳明 学号:110912049 教师:刘老师 实验小组:第二组 1

实验一熟悉C程序开发环境、进行简单程序的调试 实验目的: 1、初步了解vc++6.0环境; 2、熟悉掌握调试c程序的步骤: 实验内容: 1、输入下列程序,练习Turbo C 程序的编辑、编译、运行。 #include main() { printf(“Programming is fun.\n”); } 2、分析程序,预测其运行结果,并上机检测你的预测。 #include main() { printf(“*\n”); printf(“* * *\n”); printf(“* * * * *\n”); printf(“* * * * * * *\n”); } 3、下面是一个加法程序,程序运行时等待用户从键盘输入两个整数,然后求出它们的和并输出。观察运行结果(程序输出),上机验证该程序。 #include main() { int a,b,c; printf(“Please input a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; printf(“%d+%d=%d\n”,a,b,c); } 2

实验二词法分析器 一、实验目的: 设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理解。 二、实验要求: 1.对给定的程序通过词法分析器弄够识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示。而本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示。 2.本程序自行规定: (1)关键字"begin","end","if","then","else","while","write","read", "do", "call","const","char","until","procedure","repeat" (2)运算符:"+","-","*","/","=" (3)界符:"{","}","[","]",";",",",".","(",")",":" (4)其他标记如字符串,表示以字母开头的标识符。 (5)空格、回车、换行符跳过。 在屏幕上显示如下: ( 1 , 无符号整数) ( begin , 关键字) ( if , 关键字) ( +, 运算符) ( ;, 界符) ( a , 普通标识符) 三、使用环境: Windows下的visual c++6.0; 四、调试程序: 1.举例说明文件位置:f:、、11.txt目标程序如下: begin x:=9 if x>0 then x:=x+1; while a:=0 do 3

编译原理实验报告一

实验一词法分析程序实现 一、实验目得与要求 通过编写与调试一个词法分析程序,掌握在对程序设计语言得源程序进行扫描得过程中,将字符流形式得源程序转化为一个由各类单词符号组成得流得词法分析方法 二、实验内容 基本实验题目:若某一程序设计语言中得单词包括五个关键字begin、end、if、then、else;标识符;无符号常数;六种关系运算符;一个赋值符与四个算术运算符,试构造能识别这些单词得词法分析程序(各类单词得分类码参见表I)。 表I语言中得各类单词符号及其分类码表 输入:由符合与不符合所规定得单词类别结构得各类单词组成得源程序文件。 输出:把所识别出得每一单词均按形如(CLASS,VALUE)得二元式形式输出,并将结果放到某个文件中。对于标识符与无符号常数,CLASS字段为相应得类别码得助记符;V AL UE字段则就是该标识符、常数得具体值;对于关键字与运算符,采用一词一类得编码形式,仅需在二元式得CLASS字段上放置相应单词得类别码得助记符,V ALUE字段则为“空". 三、实现方法与环境 词法分析就是编译程序得第一个处理阶段,可以通过两种途径来构造词法分析程序.其一就是根据对语言中各类单词得某种描述或定义(如BNF),用手工得方式(例如可用C语言)构造词法分析程序。一般地,可以根据文法或状态转换图构造相应得状态矩阵,该状态矩阵连同控制程序一起便组成了编译器得词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。构造词法分析程序得另外一种途径就是所谓得词法分析程序得自动生成,即首先用正规式对语言中得各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程

编译原理实验报告

《编译原理》实验报告软件131 陈万全132852

一、需求分析 通过对一个常用高级程序设计语言的简单语言子集编译系统中词法分析、语法分析、语义处理模块的设计、开发,掌握实际编译系统的核心结构、工作流程及其实现技术,获得分析、设计、实现编译程序等方面的实际操作能力,增强设计、编写和调试程序的能力。 通过开源编译器分析、编译过程可视化等扩展实验,促进学生增强复杂系统分析、设计和实现能力,鼓励学生创新意识和能力。 1、词法分析程序设计与实现 假定一种高级程序设计语言中的单词主要包括五个关键字begin、end、if、then、else;标识符;无符号常数;六种关系运算符;一个赋值符和四个算术运算符,试构造能识别这些单词的词法分析程序。 输入:由符合和不符合所规定的单词类别结构的各类单词组成的源程序文件。 输出:把所识别出的每一单词均按形如(CLASS,VALUE)的二元式形式输出,并将结果放到某个文件中。对于标识符和无符号常数,CLASS字段为相应的类别码的助记符;VALUE字段则是该标识符、常数的具体值;对于关键字和运算符,采用一词一类的编码形式,仅需在二元式的CLASS字段上放置相应单词的类别码的助记符,VALUE字段则为“空”。 2、语法分析程序设计与实现 选择对各种常见高级程序设计语言都较为通用的语法结构——算术表达式的

一个简化子集——作为分析对象,根据如下描述其语法结构的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”,并且显示分析至此所得的中间结果,如分析栈、符号栈中的信息等,以及必要的出错说明信息。 3、语义分析程序设计与实现 对文法G2[<算术表达式>]中的产生式添加语义处理子程序,完成运算对象是简单变量(标识符)和无符号数的四则运算的计值处理,将输入的四则运算转换为四元式形式的中间代码。 输入:包含测试用例(由标识符、无符号数和+、?、*、/、(、)构成的算术表达式)的源程序文件。 输出:将源程序转换为中间代码形式表示,并将中间代码序列输出到文件中。 若源程序中有错误,应指出错误信息 二、设计思路 1、词法分析程序设计与实现 1)单词分类 为了编程的实现。我们假定要编译的语言中,全部关键字都是保留字,程序员不得将它们作为源程序中的标识符;作了这些限制以后,就可以把关键字和标识符的识别统一进行处理。即每当开始识别一个单词时,若扫视到的第一个字符为字母,则把后续输入的字母或数字字符依次进行拼接,直至扫视到非字母、数字字符为止,以期获得一个尽可能长的字母数字字符串,然后以此字符串查所谓保留字表(此保留字表要事先造好),若查到此字符串,则取出相应的类别码;反之,则表明该字符串应为一标识符。

相关文档
最新文档