版权归原作者所有,如有侵权,请联系我们

[科普中国]-查询语言语义学

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

语义学是程序设计理论的组成部份,以数学为工具,运用符号和公式,严格定义程序设计语言的语义,使语义形式化。查询语言语义学是指对查询语言各个成分的含义进行严格定义,并且要求计算机系统执行这些成分所产生的效果与其含义完全一致。

简介程序设计语言的语义通常是由设计者用一种自然语言非形式地解释的,实现者和使用者则依据各自的理解去实现和使用这种语言。然而使用自然语言和非形式的方法解释语义,容易产生歧义,造成语言设计者、用户和实现者对语义的不同理解,影响语言的正确实施和有效使用。查询语言语义学是指查询语言中的语义进行严格的定义和解释,防止查询语言设计者、用户和实现者对语义理解出现歧义。

查询语言非过程性的数据库操作语言。查询语言通常具有表达数据查询、数据操纵(包括数据的增、 删、改)、数据定义及数据控制的功能。查询语言是高度非过程化的语言,用查询语言表达数据库上的查询请求时,用户只需说明想要查询的数据的特征,无需说明具体的访问路径和步骤。查询语言既可以独立地交互式使用,也可以嵌入在某个宿主语言(如 C 语言)中使用。查询语言的语法通常采用类似于自然语言的形式,以适应非专业人员和最终用户等非编程人员使用。结构化查询语言 SQL 是流行的一种功能很强的关系数据库查询语言。在70 年代中期,IBM公司的关系数据库管理系统 System R 中就实现了SQL 的原型 SEQUEL 语言。1986 年美国国家标准学会 ANSI 通过了SQL 的美国国家标准,并公布了其标准文本 (简称 SQL86)。国家标准化组织 ISO于 1987 年接受其作为国际标准。后经修订, 1989年 ISO 公 布了新 的 SQL 标 准,习惯 上称之为SQL89。1992 年又公布 SQL92 标准。SQL的进一步扩充和标准化工作仍在进行之中。

语义学美国斯坦福大学 J .McCarthy 于 1962 年系统地论述了程序设计语言语义形式化的重要性 , 以及它同程序的正确性、语言的正确实现等的关系,并提出在形式语义研究中使用抽象语法和状态向量等方法。近年来,形式语义的理 论和应用都有 了很大发展。程序设计语言的语法是规定程序组成方法的一些规则,称为具体语法 ,但在定义程序的语义时,必须首先识别给定的程序,分析程序的语法结构。因此,在形式语义中使用一种讨论程序分解的语法规则,这种语法称作抽象语法。不同的程序设计语言往往使用不同的记号和表示方式。形式语义提供的方法适用于一切程序设计语言,故抽象语法采用的记号和表示方式也是具体语法的一种抽象。在定义程序设计语言的语义时,需要一种定义语义的语言,这种语言称为元语言。元语言可以采用已有的数学语言,也可以是以数学理论为基础的专门设计的语言。用元语言去定义程序语言的形式语义,必须首先严格定义元语言的语义。

语义学(英语:Semantics,法语:La sémantique),也作“语意学”,是一个涉及到语言学、逻辑学、计算机科学、自然语言处理、认知科学、心理学等诸多领域的一个术语。语言学的语义学研究目的在于找出语义表达的规律性、内在解释、不同语言在语义表达方面的个性以及共性。在计算机科学中,语义学研究在于机器对自然语言的理解,对形式语言及其句子采用形式系统方法进行语义定义的学问。 需要形式语义研究的原因有以下几点。帮助理解语言;支持语言标准化;指导语言设计;帮助编写编译器和语言系统;支持程序验证和软件可靠性;有助于软件规范化1。用程序设计语言编写的程序,规定了计算机对数据的加工过程。 形式语义学的基本方法是用一种元语言将程序加工数据的过程及其结果形式化,从而定义程序的语义。根据所用数学工具和研究重点,语义可分为四大类:操作语义。通过语言的实现方式定义语言的语义,也就是将语言成分所对应的计算机的操作作为语言成分的语义。因为语言的语义应该是标准的,不应依赖于特定的计算机系统,或一种具体的实现方式,因此,操作语义使用抽象机和抽象解释程序来定义语言的语义。指称语义:主要刻画数据加工的结果, 而不是加工过程的细节;公理语义: 用公理化的方法描述程序对数据的加工;代数语义: 把程序设计语言看作是刻画数据和加工数据的一种抽象数据类型 , 使用研究抽象数据类型的代数方法 ,来描述程序设计语言的形式语义。

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学