计算机科学对语言的研究(包括对自然语言和对人工语言)大致有三个路向:语法syntax、语义semantics、语用pragmatics,语法研究语言的形态结构,语义研究语言与其所指代对象的联系,语用研究语言和其使用者之间的联系(从使用者角度、按使用者的需求对语料进行差异化)。计算机没有智能,计算机智能都是假的,是人给它安装上去的(像是变魔术,有人创造,目的在骗人,当然达到了目的:娱乐、教育、传递信息等),所以计算机语言最大的特点是形式化(Formalization,包含规范化Normalization的意思),计算机语言的形式化分为语法形式化和语义形式化两个方面,形式语义学研究语义形式化,包括操作语义学、指称语义学、公理语义学和代数语义学四种。具体可参考:
陆汝钤,计算机语言的形式语义.北京:科学出版社,1992
屈延文,形式语义学基础与形式说明.北京:科学出版社,1998
周巢尘,形式语义学引论,长沙:湖南科学技术出版社,1985
另外上海师范大学物理信息学院陈仪香教授对此也有深入研究。以下对四种语义学的简介来即自陈教授"形式语义的论语理论研究进展"一文(见下列著作第二章:陆汝钤主编,《知识科学与计算科学》.北京:清华大学出版社,2003)
操作语义的基本思想是建立一个抽象机器以模拟程序在执行过程中如何进行数据处理。
指称语义的思想是使语言的每一成分对应于一个数学对象,该对象称为该语言成分的指称,程序看作输入域到输出域的映射,输入域和输出域统称为论域。因此论域与映射是指称语义的基本研究对象。
公理语义实在程序正确性验证的基础上发展起来的,它给出一种方法,使人们在给定的前提下,验证某种特性是否成立。
代数语义的基本思想是把描述语义的逻辑体系和满足这个逻辑系统的各种模型统一在一起,同时把模型的集合看成是以代数机构,研究这些模型之间的关系。
戴维民主编的《信息组织》一书(高等教育出版社.2004 面向21世纪课程教材)中认为语法、语义和语用信息的分法是"按照信息组织的层次分",具体解释如下:
"从认知的角度,可把信息分为语法信息、语义信息和语用信息。由于主体具有观察力,能够感知事物运动状态及其变化方式的外在形式,由此获得的信息称为语法 信息;由于主体具有理解力,能够领悟事物运动状态及其变化方式的逻辑含义,由此获得的信息称为语义信息;又由于主体具有明确的目的性,能够判断事物运动状 态及其变化方式的效用,由此获得的信息称为语用信息。"有一定道理,好像又不是很确切。不知道这种理解出自何处?语言学?哲学?认识论?
计算机形式语义学参考书:
1、周巢尘,《形式语义学引论》,湖南科技出版社(绝版)
2、周之英,翻译,《计算机形式规范概论》,清华大学出版社(绝版)
3、屈延文,《形式语义学基础与形式说明》,科学版(绝版)
4、陆汝钤,《计算机语言的形式语义》,科学版
5、陈意云,(实际是编译的),《形式语义学基础》,中国科技大学出版社
6、陈意云,(实际是编译的),《程序设计语言理论》,中国科技大学出版社
7、宋国新,翻译,《程序设计语言的形式语法及语义》,机工版
从发展来说,国内的形式语义学或程序理论的教材,落后国外十年以上。国外现在最流行的几本教材是:
1、《Semantics of Programming Languages》(Carl A.Gunter)MIT Press 1992
这是目前也许是最流行的一本教材,主要采用了简单类型的Lambda Calculus和范畴学来表达语义学,内容取舍比较合理,章节安排也不错,属于高级教程,评价也很高,很多大学都推荐使用。
2、《The Formal Semantics of Programming Languages》(Glynn Winskel)MIT Press 1993
另一本流行的一本教材,作者Winskel是剑桥大学的教授,该书在欧洲几乎成为标准教材了,评价也很高,中高级教程,很多大学都推荐使用,已经出了中文版,大家可以到书店买到。
3、《Foundations for Programming Languages 》(John C. Mitchell )MIT Press 1996
作为桌案上的参考书就最好了,作者是斯坦福教授。这本书是一本巨作,内容齐全,大量泛代数内容,绝对是超高级教程,但作为教材的话内容太多了,850页,真的是本大部头
4、《Theories of Progamming Languages》(John C. Reynolds)Cambridge Press 1998
Reynolds是CMU教授,他的这本教材出发角度和上面的几本有所不同,按作者的话来说,就是尽量避免使用高深的数学理论,诸如范畴学之类的东西,同时这本书内容涉及也比较广,甚至有并发理论和CSP。该书在评价非常高,推荐大家看。
5、《Semantics of Programming Languages》(R.D. Tennent)Prentice-Hall 1990
这本书的最大特点就是采用imperative language作为研究对象,和国内的教学最符合了,国外很多大学,特别是欧洲的大学,普遍采用函数式汝ML语言作为研究和教学语言。作者R.D. Tennent在八十年代初,曾经出版过一本《Principles of Programming Languages》,国际国内都很多人参考过这本书。
6、《Introduction to the Theory of Programming Languages》(Bertrand Meyer)Prentice-Hall 1988
作者大家都很熟悉了,他的另一本书《Object-Oriented Software Construction》前几年就已经引进中国了。这本书几乎没有高深的数学内容,可能这本书出的比较早些,书的内容要比前面的几本书都要容易浅些,但作为入门的书,我推荐这本。
Author: orangelizq
email: orangelizq@163.com
posted on 2009-12-18 15:15
桔子汁 阅读(1400)
评论(0) 编辑 收藏 所属分类:
other