描述性程序设计语言DeclarativeLanguages.ppt
《描述性程序设计语言DeclarativeLanguages.ppt》由会员分享,可在线阅读,更多相关《描述性程序设计语言DeclarativeLanguages.ppt(233页珍藏版)》请在三一办公上搜索。
1、描述性程序设计语言Declarative Languages,Declarative Languages,Declarative,Imperative,Concurrent,Deterministic,更关注描述冯诺依曼机如何执行,冯诺依曼单机,网络环境,小规模软件,大规模软件,不同的软件开发方法,更关注如何描述问题本身,更脱离实际运行环境,Declarative Languages,走出去:某一个环境下编写的程序要能在其他环境下执行。请进来:其他环境下编制的程序要能为我的环境所使用。,走出去,平台无关(编程语言)放置标示脚本解释,走出去,源程序经过编译生成的目标码是与本地机紧密相关的。表现在
2、:基本类型定义与及其字长相关;各机指令集不一,操作效果相当,实现过程有微小的差别;同一语言在相同编译和执行环境下,同一程序执行速度不一(硬件差异,优化次数);,平台无关,可移植性(portability)-为减少开发费用和开发时间。程序员可移植:用户会了某种语言到任何能实现该语言的环境上即可编制程序而不需其它知识 程序可移植:在该语言的某个环境上编制的程序拿到有该语言实现的另一个环境上可以照样运行,程序的计算,语义不变。,平台无关,已采用增加可移植手段。设预定义环境(包)Ada;分出头文件-宏-编译文件C;,平台无关,网络计算的兴起使可移植性上升为平台无关性。,平台无关,局域网时代,需要在局域
3、网内实现信息共享,有协作计算需求。网络协议栈实现了数据的平台无关;以文件共享形式实现;客户/服务器模式,程序可以不共享;只要局域网内使用相同或相互兼容的平台,也可以实现程序的共享。,平台无关,Internet时代,对资源共享提出了新的要求:局域网的规模和结构是可控制的;但是,没有任何个人和机构可以控制Internet的构成。WWW(World Wide Web)是Internet上最广泛的信息发布/浏览方式。与FTP等以往的方式相比较,WWW具有较强的动态性和交互性,需要完成复杂的应用(如电子商务等)因此,共享资源不但包括数据,也应包括程序。这就需要一种平台无关的语言。激烈的竞争迫使软件生产者
4、不断降低开发成本,缩短开发周期。平台无关语言使开发者不需要为一个软件开发多个操作系统的版本,减少了开发费用和时间。,平台无关,平台无关语言(编程语言)的实现:传送源代码 将源代码传送到目标机,先经过编译,生成目标机代码,再执行。前提是必须有不同平台的编译器,这种情况往往在编译时缺乏源代码原有的环境信息(全程量),且只能先编译存入目标码再运行。局域网时代服务器已经做过了。要实时运行只能是解释(也要求有完整的信息)型语言。传送目标代码 只有在相同或相互兼容的平台之间才可以实现。如在Windows NT/9x组成的局域网中,可以在一台机器上调用执行其它机器上的应用程序。传送中间代码 中间代码由源代码
5、经过编译生成。中间代码经过优化。中间代码传送到目标机上由解释器解释执行。Java语言使用的是这种方式。,Java对平台无关性的支持方法,保留了高级语言的主要机制与C+基本相同的字符集、标识符、关键字、运算符、特殊符号比C+更加强化类型。增加了布尔类型,只保留数组类型;使用真正的类型转换(C+中的类型转换是“伪”的,目的是为了通过编译器的检查;Java中的类型转换在运行时真正发生,如果不能转换,系统会抛出异常)保留声明、作用域、变量、表达式、语句、三种结构化控制;保留并增强C+的异常;,与C+相似的面向对象机制:类作为特殊类型、构造函数、初始化序列、实例变量、this/super、方法的覆盖与重
6、载、成员可见性。取消了C+不利于网络应用的机制:指针。以对象引用代替指针;取消头文件和预处理器(宏与机器相关);C+中原有冗余:struct、union都被类代替;不支持模板,动态束定功能可实现;取消typedef;不支持运算符重载;,平台无关,编译解释执行。Java语言实现平台无关的关键是使用了“编译-解释”执行方式。Java源代码经过编译,称为Java字节代码(byte-code)。Java虚拟机(VM)是字节代码的解释器。JavaVM是用软件构造的一个虚拟计算机,它由虚拟的寄存器、内存、堆栈等;字节代码就是这台虚拟计算机的指令。所有操作系统上的JavaVM执行一致的指令,这样,就屏蔽了各
7、个平台之间的差异(如下图所示)。,Java虚拟机是平台无关性的关键,在不同的操作系统上有不同的Java虚拟机,向上有一致的接口(虚拟机的指令字节代码),向下针对不同的操作系统有不同的实现方式。,平台无关,即时编译(JIT:Just-in-Time Compile)。使用即时编译是为了提高Java程序的执行效率,是对Java解释器的改进。即时编译在虚拟机解释执行Java字节代码时发生。当虚拟机第一次调用某个方法时,不再直接解释这个方法的字节代码,而是用即时编译器将这个方法的字节代码编译成为本机目标代码,然后执行这些目标代码。即时编译不是将整个类的字节代码进行一次性编译,而是只编译正在执行的函数,
8、“边执行,边编译”。,平台无关,小程序(applet)的传递运行方式小程序是可以在Web浏览器中执行的Java程序;Web浏览器中有一个Java虚拟机,和浏览器一起构成小程序的运行环境;浏览器根据HTML文档中的标志,从指定的URL下载小程序的类字节码(.class文件),装入到Java虚拟机中运行;小程序的出现提高了Web页面的交互性和动态性,使浏览器能够完成更加复杂的应用。Java虚拟机有内置的类装入机制,从文件系统或网络中下载类代码,然后在虚拟机中运行。浏览器下载运行小程序只是一个特例,这种机制可以被所有Java应用程序使用。,即时编译(JIT:Just-in-Time Compile)
9、。使用即时编译是为了提高Java程序的执行效率,是对Java解释器的改进。即时编译在虚拟机解释执行Java字节代码时发生。当虚拟机第一次调用某个方法时,不再直接解释这个方法的字节代码,而是用即时编译器将这个方法的字节代码编译成为本机目标代码,然后执行这些目标代码。即时编译不是将整个类的字节代码进行一次性编译,而是只编译正在执行的函数,“边执行,边编译”。,小程序(applet)的传递运行方式小程序是可以在Web浏览器中执行的Java程序;Web浏览器中有一个Java虚拟机,和浏览器一起构成小程序的运行环境;浏览器根据HTML文档中的标志,从指定的URL下载小程序的类字节码(.class文件),
10、装入到Java虚拟机中运行;小程序的出现提高了Web页面的交互性和动态性,使浏览器能够完成更加复杂的应用。Java虚拟机有内置的类装入机制,从文件系统或网络中下载类代码,然后在虚拟机中运行。浏览器下载运行小程序只是一个特例,这种机制可以被所有Java应用程序使用。,Java虚拟机技术 虚拟机技术作为一门综合技术几乎体现了当代程序设计语言设计与实现技术的各个方面。Java虚机要实现Java的面向对象程序:类装入及实例对象生成,对象交互(引用方法);获得核心类库支持;线程运行;处理异常;作无用单元自动收集。,虚机执行过程如下,Java虚机的体系结构,虚机技术进展,第一代JVM直接解释执行字节代码文
11、件第二代JVM及时编译方案,它的执行效率大写提高,约为解释执行的6-10倍。第三代JVM采用近年发展出的动态编译技术。第三代虚拟机只编译运行时间长的热点,混用解释和编译后的机器码,效率最高。是当今发展前沿。,第一代JVM直接解释执行字节代码文件,第二代JVM及时编译方案,第三代JVM采用近年发展出的动态编译技术。,走出去,平台无关放置标示脚本解释,放置标示,标记语言/置标语言不是程序设计语言,是电子文档发展以后,以计算机或网上自动处理电子文档而设计的语言。它们一般解释执行,平台无关。电子文档三类标准:信息的基本表达,信息结构描述,电子信息再现处理。,放置标示,置标语言就是定义标记及其使用规则的
12、语言。它不属于程序设计语言,因为它不能按任意计算模型,设计算法进行计算,仅仅是描述文档,围绕文档的增、删、改、并的“计算”。80年代早已有许多软件系统采用标记,为Telx,PostScript等。它们采用过程式置标,即告诉计算机为何一步一步地生成合乎预想的文档。描述性置标不管过程,只按文档最后形式描述文档的结构。标记是“标题”、“第一段”、“第二节”、“空一行”最后的显现各机可用不同的软件、不同的过程实现。描述只关注数据的内在相互关系。,放置标示,标记语言/置标语言:SGML:Standard Generalized Markup LanguageHTML:HyperText Mark-up
13、Language XML:Extensible Markup Language,置标语言,表示性的置标语言(Presentational markup)是在编码过程中,标记文档的结构信息。过程性置标语言(Procedural markup)一般都专门于文字的表达,但通常对于文本编辑者可见,并且能够被软件依其出现顺序依次解读。描述性置标(Descriptive markup),所描述的是文件的内容或结构,而不是文件的显示外观或样式,制定SGML的基本思想就是把文档的内容与样式分开,XML、SGML都是典型的通用置标语言。,标准通用置标语言SGML,SGML(Standard Generalize
14、d Markup Language)是ISO(国际标准化组织,International Standards Organization)在1986年推出的一个用来创建标识语言的语言标准。SGML是一种用来定义标识的语言,它提供了一种将数据内容与显示分离开来的数据表示方法,使得数据独立于机器平台和处理程序。SGML也被称作元语言(metalanguage),后来的许多标识语言都采用了SGML的标识方法,例如HTML、XML和XHTML。,SGML,SGML把文档看作是对象集合,对象即元素。每个元素是标记括着的内容,内容又可嵌入元素,这就形成树形分层体系结构。也是文档的逻辑结构。SGML 不涉及内
15、容的语义。(1)SGML文档结构SGML的文档结构由有类型的元素(实例对象)组成、元素是由命名的起始标记和结束标记括着的正文单元。正文单元也叫内容。,例 SGML的文档实例这是一个文档实例,就元素而言,它给出了内容模型:The SICK ROSE O Rose thon art sick.The invisible worm,That flies in the night In the howling storm:Has found out thy bed Of crimson joy:Does thy life destroy/SGML的注释,SGML,(2)定义SGML文档结构在创建SGM
16、L文档实例时,首先要给出形式规格说明以指明该文档结构,即文档类型定义,简称DTD。DTD是对正文的解释。为了分析可以从不同角度定义DTD。例子中出现的各元素其形式声明如:,SGML,(3)并发结构同样一个文档结构,可从另一观点定义它,设按页的诗集:因为它最低层行题名和行都是一样的(#PCDATA),它们是并发定义的,可以写到一起:/A类型的A p.anth/B类型的B page/按B类型的DTD定义page元素,The SICK ROSE O Rose thou art sick.The invisible worm./page结束/另起一页 That flies in the night I
17、n the howling storm:/按A类型的DTD 定义stanza元素 Has found out thy hed Of crimson joy:And his dark crecret loe Does tyh life destroy./B类型的page结束/B类型的B结束/A类型的A结束这样定义的电子文档,当处理器只识别其中一个类型(有其定义),则自动跳过另一个类的标记。若二者都识别则由人指定其一。,SGML,(4)属性SGML的每个元素都可以定义属性或属性表。属性并不影响元素的内容,只是为显示,处理提供方便。在文档实例中要给出属性值,如:元素定义了两个属性一为标识id一为状态
18、status,它们均在起始标记之中,只看有无属性名=属性值。,SGML,(5)实体为了跨文档间的可移植性,SGML提供了实体(Entity)概念。实体是置标文档的某一部分,可大可小,小到一字符串,大到整个正文文件。如有声明:第一句声明了名为tei的实体,也叫内部实体,其值(即内容)是引号中的那段正文,故也称正文实体。第二个声明的实体是ChapTwo,指明它是SYSTEM实体,本文档以外的外部实体,其值是名为sgmlmkup.txt的正文文件的全部内容。,SGML,(6)标记节标记节(Marked Section)是为了将一个主文档做成多个版一,即在一段正文中做出条件正文域标记,其形式是:(7)
19、文档样式SGML只处理文档结构、内容,没有为文档样式(stgle)制定标准。,SGML,SGML十分庞大,不同业务需求取其不同子集。关键的问题是定制实现。至少,当前学习使用全集,既耗费资金又浪费精力。但作为学术研究是极有价值的。但SGML复杂度太高,不适合网络的日常应用,加上开发成本高、不被主流浏览器所支持等原因,使得SGML在Web上的推广受到阻碍。HTML和XML都是SGML的子集。,HTML,1989年Tim Berners-Lee在欧洲核物理实验室(CERN)开发出了超文本置标语言。它从SGML出发作出了它的应用实例。让用户只在HTML类型定义下为用户文档置标。简单地说,它只是一组给定
20、标记集合。没想到这种固定格式的标记,由于其简洁性大获成功。1994-1995年Web站点发展起来HTML成为开发页面最广泛使用的工具。,HTML,超文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言。HTML是在 SGML定义下的一个描述性语言,或可说 HTML是 SGML的一个应用程式,HTML不是程式语言,它只是标示语言。HTML被用来结构化信息例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。,HTML,HTML是SGML应用程序,它的文档模型也是树状结构模型。标记的约定和置标方式和SGML一样,只是文档类型
21、定义DTD已由系统定义为HTML用户不必学习SGML复杂的语法,直接用标记定义实例文档。标记分以下四类:文档结构定义 字体字型定义 版面布局定义 链接定义 它的最大特点是超文本和多媒体。,HTML,HTML写的Web主页成了网上主要传递信息手段。(1)文档结构标记一个HTML文档 题名 下一级标题/可以嵌套6级,至N6./另起一段,无结束标记./另起一行,无结束标记,HTML,(2)文档页面格式标记分逻辑字符模式和物理字符模式。因为是逐词标记都是成对的。逻辑的 定义的单词/一般斜体 强调的单词/一般斜体 书或电影主题名/一般斜体 程序代码段/打印字体 键盘输入 计算机状态信息 特别强调词/黑体
22、 代替变量的实例/斜体物理的。黑体 斜体 打印机字体,HTML,(3)版面布局标记 各种列表 标记列表及表项:/无号列表/有序号列表/表项/表项1/表项/表项2/至此结束/至此结束/定义列表/第一条目/与交替出现,对的测试/第二条目/对的测试/结束,XML,可扩展标记语言(Extensible Markup Language,XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是标准通用标记语言(SGML)的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。,
23、XML,XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。,XML,XML文档的三种形式即第一种文档形式先形式化地定义文档的类型、元素、属性、实体的标记,再以这些标记定义文档实例。第二种形式是不作DTD的形式定义,但遵照文档模型直接置标写出文档实例。文档的标记必须是良定义(well-formed)的。第三种形式也不作完整的DTD形式定义,但可以引用已有的DTD定义。称之为合法(valid)的XML文档。,指出XML文档是否独立 是非常重要的,为此,所有XML文档的第一行必须
24、是处理指令。,例 一个出版商清单/处理指令/以下文档实例 publishers of the Music of New York women composers ACA-American composers Alliance info http:/170 west 74th st.NY NY10023 212-362-8900 212-874-8605 Alfred Publishing/*/*15535 Morrison South Oaks CA 91403,第三种形式的XML文档也举一例子:例 一个合法的XML文档.,XML,XSL可扩展样式语言 XML文档通过XSL可扩展样式语言描述的
25、样式表(它本身也是XML的文档),执行后产生一个HTML文档,即XSL把XML文档翻译为HTML文档显现。,XML 特点,XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言XML去掉了一些繁杂的功能,保留了SGML的结构化功能,使得网站设计者可以定义自己的文档类型,XML
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 描述 程序设计语言 DeclarativeLanguages

链接地址:https://www.31ppt.com/p-6417676.html