計算機科學對語言的研究(包括對自然語言和對人工語言)大致有三個路向:語法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
桔子汁 閱讀(1426)
評論(0) 編輯 收藏 所屬分類:
other