第四章 PL语言
- 格式:ppt
- 大小:970.00 KB
- 文档页数:62
第4章PL/SQL语言基础本章学习内容1. PL/SQL语言简介2. 程序结构3. 流程控制4. 异常处理5. 开发动态SQL本章学习目标1. 掌握PL/SQL程序结构2. 掌握PL/SQL流程控制3. 掌握PL/SQL异常处理4. 掌握PL/SQL中开发动态SQL本章简介在第3章中,我们已经学习了同义词、序列、视图、索引等知识。
并通过同义词以一种非常简便的方式去访问其它方案中的对象;通过视图将一些复杂的SQL语句封装起来方便使用;通过序列作为表的自动编号并做为主键实现了数据库的实体完整性;通过使用各种索引在数据量非常宠大的表中提高查询效率。
但是要实现复杂的商用业务逻辑仅凭这些对象是远远不够的,我们必须使用程序流程控制和异常处理机制等。
本章将继续学习程序结构、流程控制、异常处理、开发动态SQL等知识。
流程控制是PL/SQL 对SQL最重要的扩展。
流程控制结构包括条件控制、循环控制和顺序控制,流程控制为我们提供了实现复杂业务逻辑的一种途径。
为处理程序中的异常,PL/SQL提供了一种异常错误处理机制,可以帮助实现对错误的捕获和处理,当异常发生时,PL/SQL会自动地捕获异常并自动地将程序控制流程转移到异常处理部分的程序。
在PL/SQL程序设计中,可以直接使用DML和事务控制的语句,但DDL语句及系统控制语句却不能在PL/SQL中直接使用。
如果需要在PL/SQL中使用DDL语句及系统控制语句,可以通过使用动态SQL来实现,如需要动态建表或某个不确定的操作需要动态执行。
4.1PL/SQL语言简介4.1.1 PL/SQL概述PL/SQL是Oracle在标准SQL语言上的过程性扩展,它不仅允许嵌入SQL语句,而且允许定义变量和常量,允许过程语言结构(条件分支语句和循环语句),允许使用异常来处理Oracle错误等。
在任何运行Oracle的平台上,应用开发人员都可以使用PL/SQL。
通过使用PL/SQL,可以在一个PL/SQL块中包含多条SQL语句和PL/SQL语句。
编译原理大作业pl语言编译程序编译原理大作业:PL语言编译程序编译原理是计算机科学中的重要课程,它研究的是如何将高级语言转化为机器语言的过程。
在这门课程的大作业中,我们需要设计一个PL语言的编译程序,将PL语言的源代码转化为可执行的机器代码。
PL语言是一种高级编程语言,它具有丰富的语法和功能,可以用来编写各种应用程序。
编写一个PL语言的编译程序需要经历以下几个步骤:首先,我们需要设计PL语言的语法规则。
语法规则定义了PL语言中各种语句和表达式的结构和组织方式。
通过定义语法规则,我们可以确定PL语言源代码的合法性,并将其转化为抽象语法树。
接下来,我们需要设计词法分析器。
词法分析器负责将源代码分解为一个个的词法单元,如关键字、标识符、运算符等。
通过词法分析器,我们可以将源代码转化为一个个的词法单元序列。
然后,我们需要设计语法分析器。
语法分析器负责根据语法规则,将词法单元序列转化为抽象语法树。
语法分析器使用一种称为“自顶向下”的分析方法,通过递归下降的方式,从源代码的起始符号开始,逐步推导出各个语法单元。
在语法分析的过程中,我们还需要设计语义分析器。
语义分析器负责对抽象语法树进行语义检查和语义处理。
它会检查变量的声明和使用是否合法,进行类型检查,生成中间代码等。
最后,我们需要设计代码生成器。
代码生成器负责将抽象语法树转化为目标机器的机器代码。
代码生成器会根据目标机器的指令集和寄存器分配策略,生成高效的机器代码。
在实现PL语言编译程序的过程中,我们还需要进行测试和调试。
我们可以编写一些PL语言的示例程序,用来测试编译程序的正确性和性能。
通过不断地测试和调试,我们可以逐步完善编译程序,使其能够正确地将PL语言源代码转化为可执行的机器代码。
编译原理大作业是一项非常有挑战性的任务,需要我们对编译原理的各个方面有深入的理解和掌握。
通过完成这个大作业,我们可以更好地理解编译原理的原理和方法,提高我们的编程能力和解决问题的能力。
编译原理教案说明:一、参考书:1、陈意云、张昱:《编译原理》,高等教育出版社,2003年。
2、陈意云、张昱:《编译原理习题精选》,中国科技大学出版社,2003年。
3、吕映芝、张素琴、蒋维杜:《编译原理》,清华大学出版社,1998年第二版。
4、王生原、吕映芝、张素琴:《编译原理课程辅导》,清华大学出版社,2007年。
5、伍春香:《编译原理习题与解析》,清华大学出版社,2001年。
6、Andrew W.Appel:《现代编译原理—C语言描述》,人民邮电出版社,2005年。
7、Noam Nison等:《计算机系统要素》,电子工业出版社,2007年。
8、Randall Hyde:《编程卓越之道(第二卷)》,电子工业出版社,2007年。
二、教学目的:通过学习形式语言与自动机理论、词法分析、语法分析、语义分析、代码优化和生成等内容使学生掌握构造编译程序的基本原理和基本方法,并通过上机实习使学生进一步掌握开发应用程序的基本方法,为深入理解计算机系统、程序设计语言与开发大型应用程序打下良好的基础。
三、教学时数:课堂教学51学时,上机实验30学时。
四、授课内容:第一章编译程序概述第二章 PL/0编译程序的实现第三章文法和语言第四章词法分析第五章自顶向下语法分析方法第六章自底向上优先分析方法第七章 LR分析方法第八章语法制导翻译和中间代码生成第九章符号表第一○章目标程序运行时的存储组织第一一章代码优化第一二章代码生成第一章概述一、说明:1、教学目的与要求:了解编译程序的概念、结构以及工作流程。
2、主要内容:什么是编译程序、编译过程概述、编译程序的结构、编译阶段的组合、编译技术和软件工具以及实例分析。
3、教学重点:编译程序的结构以及每一阶段的任务。
4、教学难点:理解编译程序各模块的判错功能、编译方式和解释方式执行速度上的不同。
二、教学内容第一节编译程序1、机器语言:直接用计算机能够识别的二进制代码指令来编写程序的语言。
PL/SQL程序设计主要内容:PL/SQL 语言的基本特征、PL/SQL程序的结构、PL/SQL语言的控制结构、游标(cursor)编程、错误处理、存储过程和函数、创建包(Package)、触发器(Trigger)。
第一章PL/SQL 语言的基本特征1. 什么是PL/SQL?PL/SQL是Procedure Language & Structured Query Language 的缩写。
SQL SERVER:Transaction-SQL。
PL/SQL 可分为两种:数据库PL/SQL和工具PL/SQL。
两者的编程非常相似。
都具有编程结构、语法和逻辑机制。
主要介绍数据库PL/SQL内容。
工具PL/SQL用于Oracle的客户端开发工具。
工具PL/SQL另外还增加了用于支持工具(如ORACLE Forms)的句法,如:在窗体上设置按钮等。
Oracle的客户端开发工具Oracle iDS(Developer Studio)Release 2 (10.2)包括的软件:Oracle10g JDeveloper -JAVA开发工具Oracle10g Forms Developer -窗体开发Oracle10g Designer -数据库工具Oracle10g Software Configuration Manager -软件配置Oracle10g Reports Developer -报表开发Oracle10g Discoverer AdministratorOracle10g Warehouse Builder -数据仓库Oracle10g Business Intelligence Beans -商业智能2. PL/SQL 语言的特征支持SQL语言、支持面向对象编程、可移植、与Oracle集成。
PL/SQL程序不区分大小写。
字符串数据区分大小写。
3. PL/SQL 可用的SQL语句在PL/SQL中可以使用的SQL语句有:INSERT,UPDATE,DELETE,SELECT INTO,COMMIT,ROLLBACK,SAVEPOINT。
编译原理上机报告一.实习目的:通过上机实习加深对编译原理的理解和熟悉编译程序的构造方法。
二.实习方法:出于熟悉编译原理的目的,我用C语言重写了整个程序,由于工作量的原因,没有设计新的程序结构和虚拟机指令等等,全部编译程序源代码包括下列文件:symbol.cpp 用于词法分析declaration.cpp 用于语法分析的声明部分expression.cpp 用于语法分析的表达式处理部分semantic.cpp 用于语法分析的其它部分objcode.cpp 用于生成代码error.cpp 用于错误处理main.cpp 主程序另外,interpret目录下有interpret.cpp和main.cpp,用于编译成为一个虚拟机的解释程序。
全部源代码在Windows 2000 Professional,Visual C++ 6.0以及Red Hat 7.0下编译调试通过。
使用标准C语言编写,从而能在Linux下运行,是我的程序的一个特色。
三.测试程序为了测试所有可能的代码,我编写了下面的测试PL程序。
这个程序可以编译,但是运行起来是没有意义的,它仅仅是为了包括常量,变量,数组等类型,并且包括比较复杂的表达式处理和几乎所有支持的语句,以便对编译程序进行测试。
program pp;const PI=3 testconst='z' testconst1=TRUEtype testtype=BOOLEAN testarray=array[2..20,0..50] of booleanvar n,p:integer cr:charprocedure p1(n:integer;var p:integer);var in_proc:char cr1:testarraybegincr1(2,3):=cr1(n,cr1(n,p))+ p;in_proc:=2+p*(testconst+1);if n<=1 thenwhile testconst1 do n:=PIelseif p>1 thenbeginp:=n*p;n:=p/n;end;call p1(n,cr1(2,5));end;begincall read(n);call p1(n,p);call write(p)end.为了测试运行的情况,我们编写一个稍稍简单的例子,这是参考教材中求阶乘的源程序:program pp;var n,p:integerprocedure p1(n:integer;var p:integer);var in_proc:charbeginif n<=1 then p:=1elsebegincall p1(n-1,p);p:=n*pendend;begincall read(n);call p1(n,p);call write(p)end.四.编译结果采用编译程序对这两个PL源程序进行编译。
pl是什么意思pl是一种应用程序语言,主要用于 Windows、 Mac OS X等操作系统。
它是一个具有特殊功能的应用程序,如:用于数据准备的文件同步或数据处理功能等。
很多人不知道 pl是什么意思。
下面为大家详细介绍。
一、应用实例用于数据准备的文件同步,以及其他一些功能。
pl文件保存后,可以用于生成 Word文档、 Excel文档、 PowerPoint文档和其他文件。
我们只需要创建一个表格。
在该表格中我们可以设置所需的格式文件大小上限:1 G。
1、使用快速选择工具使用快速选择工具可以快速地选择所需的数据类型。
它可以为你提供最小尺寸的结果,同时又不会因为尺寸过大而无法使用其它数据来显示。
例如,在显示内容时也不需要使用最小尺寸的结果来显示内容。
2、创建表格我们只需要选中单元格区域,然后点击右键,选择“数据”,在弹出的菜单中选择“表格”选项卡上的“保存为表格”功能来保存表格。
保存时需要点击“开始”选项卡中的“单元格格式”工具栏中的“自定义规则”选项,然后在弹出的菜单中选择“自定义表格样式”。
此时就会出现这样一个界面:现在我们的工作总结中包括了以下内容:数据录入、打印以及导出成列成果图。
这个图表中的所有内容都是基于一个模板来完成的:单元格内容、模板、导出结果图(数据制作完成后点击‘导出成列成果图’按钮)。
3、设置字体我们可以将文件保存为文本文件,在文本文件中设置字体,为每一行加粗,增加一条线的宽度在。
例如,你想让图片显示为黑色,那么选择“黑色”并将其设置为“scratch”;将文本文件保存为文本文件时,选择“top”;将“pl”设置为文本文件时,选择“string”。
在文字文件中设置字体大小的方法与在文本中设置字体大小不同:在 pl中输入文字后关闭文字菜单->字体->颜色对齐;当输入结果时不再需要选择字体种类;设置字体后文件自动保存为文本文件。
二、性能介绍由于其文件同步,文件名等特性,在一些系统上可能需要单独配置文件并调用应用程序进程来处理。