可視語言

可視語言

可視語言是一類用圖形符號描述計算任務的處理對象和處理過程的語言。這種語言與傳統程式語言的最大區別是:傳統語言是由正文形式表示的一維字元串結構,而可視語言則是由圖形符號的空間排列所表示的多維結構。可視語言的實現要求為它建立一個實現環境,稱為可視程式開發環境。

簡介

語言是人類創造的,能將語素按照各種方式組合起來,傳遞信息的工具。隨著人類文明的發展,語言擴展到人與人造工具之間的交流,最為典型的是人與計算機之間的交流語言—軟體語言。軟體語言可以定義為:語言是基於一組記號與一組規則,根據規則由記號構成的記號串的總體。規則構成語言的語法,記號則是反映語義和語用的最小單位—語素。語素形式的不同,語言傳遞信息的方式亦不相同。可視語言是以可視的形式表示計算過程中的對象、概念和過程的計算機語言。早期的研究僅限於軟體可視化,即為軟體開發過程的不同階段提供靜態的或動態的視圖,如用圖形表示程式的控制流程、數據結構、計算過程和計算結果等。後來發展成可視化編程,用可視對象的結構及它們之間的空間位置關係來表示程式。由於人類通過觀察圖形獲得信息比讀一長段正文獲得同樣的信息快得多,在信息的形象表示和抽象表示之間更傾向於前者,可視語言越來越受到歡迎。可視語言的實現要求為它建立一個實現系統,用一系列的工具來完成可視程式的編輯、語法分析、語義映射、代碼生成等工作。

圖符編輯程式負責編輯可視程式P的圖符,經模式分析程式把空間結構的圖形程式變換成模式串 ,語法分析程式由模式串產生P的分析樹, 再經語義映射程式得P含義(程式的機內表示),再通過解釋程式執行或經編譯程式產生可執行代碼。為了支持大型系統,環境中還應該有資料庫、視圖工具、瀏覽程式、項目管理程式等工具

可視語言的實現

可視語言的實現,一般是指用這種可視語言寫的程式可以在計算機上解釋執行或生成可執行的目標語言代碼。這要求對可視語言進行嚴格的語法描述和語義定義,並定義從語法結構到語義的映射。可視語言用可視對象的結構及它們的空間關係(相交,鄰接,包含等)刻畫程式結構。可視程式是二維的或多維的,不象正文語言程式在輸入流中存線上性關係。定義可視語言的語法結構首先要定義構成該可視語言的基本圖形元素集合和空間關係集合,然後再以這兩個集合為基礎用恰當的文法描述可視程式的語法單位。在這方面有兩種比較有影響的方法,一種是基於ICON的Picture Grammar,它先把基於ICON的可視程式變換成模式串,再利LR分析法進行語法分析;另一種是對屬性文法加以改造而得到的Picture Layout Grammar,這種方法可以描述複雜的可視語言,如StateCharts。可視語言的語義定義與其語法描述相關聯,為可視程式的每個語法單位定義語義映象,從而使可視程式可以被解釋執行或為生成可執行目標代碼作準備 。

可視語言的必然性可能性

人類書面語言從可視方式演化為抽象的符號方式,說明語言可視化方式存在著一定的缺陷。從人類語言發展史看,可視化語言主要有以下幾個缺陷:①書寫不便,用手工方式繪製圖形來表述信息費時費力;②信息表述範圍狹窄,許多抽象信息很難用圖形方式表述;③存儲量較大,在以紙介質為主情況下,不便攜帶;④不利於口頭表述。由於這些缺陷,人類逐步用抽象語言代替了可視化語言。但人們並沒有摒棄可視化語言,公共場所的標識、提示,對問題的分析所繪製的分析圖等均保留著可視化語言的形式。這一點說明,可視化語言存在著其優點:①直觀,信息的傳遞者和接收者可以直觀地表述和接受信息;②便於理解,直觀、形象的圖符與有形事物更為接近,能較好地反映事物的特徵,便於信息使用者的理解;③對行為過程的表述更為直接,形象。如工作流程圖等。這些特點是抽象的符號語言所不具備的。

人們對抽象語言和形象語言的使用,取決於使用的場合,以及信息接收者的理解能力,在軟體語言的抽象化和形象化的問題上,研究焦點亦在於此。第一、二代計算機主要用於科學計算,使用人群為高知識階層,所涉及的問題域是抽象的數學,這一時期,抽象的軟體語言形式與使用人群和問題域相吻合,使得以高級語言為代表的符號語言迅速發展。但隨著計算機的普及,使用人群擴大到整個人類,問題域涉及到社會的各個行業,計算機的求解域不再局限於抽象的數學問題,而是愈來愈多地涉及到形象化的行為問題。這時,抽象的高級語言在某種程度上制約了計算機套用的發展,並且難以實現許多問題的求解需要。可視化的使用也成為必然。圖形界面和地理信息系統就是可視化在計算機套用中的實例。

計算機用戶要從簡單使用計算機到操縱計算機,直接與計算機進行交流,就需要掌握軟體語言。抽象的軟體語言語素、苛刻的語法規則、晦澀的語義、複雜的算法往往使使用者難以適從。鑒於可視化形象、直觀、便於理解的特點,軟體語言的可視化研究成為必然。隨著計算機性能/價格比的不斷提高,以及計算機軟體技術的提高,可視化形式的主要缺點逐步由計算機技術彌補。圖形技術可以迅速生成規則的可視化語言語素,供信息傳遞者使用;利用封裝技術,將複雜信息尤其是算法信息封裝在可視化語素中,解決抽象信息的表達問題;高速大容量存儲器的使用,信息存儲問題已不再是制約計算機使用的主要問題,可視化技術在計算機中的使用成為可能。

可視化軟體語言與人類遠古時期的可視化自然語言存在著本質的區別。可視化自然語言是對實體的可視化描述,而可視化軟體語言是在對現實世界抽象的基礎上,對抽象後的數學模型進行可視化處理。是事物螺旋式發展過程中的上升性回歸 。

發展

現實生活中,圖形和圖表往往比文字更能形象地表達人們的思想意圖,也更有助於思想的了解和交流。由此早在 20 世紀 50 年代計算機科學中就引入了描述計算過程的邏輯圖概念, 以後又把它逐步規範化為流程圖,用它們描述算法,作為進行程式設計的輔助工具。60 年代它就成了最早的可視語言 ,1966 年 W .R .Sutherland 第一個用邏輯圖作為可視語言表示程式並給予解釋性實現,開創了可視語言的先例。1969 年 T .O .Ellis 等人建立的 Grail 首次用流程圖表示計算步驟並直接編譯成執行程式。這可能是可視語言的最早編譯實現,其中流程圖框中內容是用機器語言陳述的。以後又建立了很多流程圖和流程圖變形 (如 N-S 圖)式的可視語言。非流程圖式可視語言的最早成果大約是 C .Christensen的 AMBIT/ G(1968 年)和 AMBIT / L(1971 年),它把程式和數據都表示成有向圖。程式用模式匹配進行操作,相當複雜的算法 (如存儲碎片收集)都可以生動地描述成圖上的局部變換。第三類可視語言稱為 HiGraphs,是 D .Harel 在 1988 年建立的,它允許結點中包含其它結點 ,它限制產生專用的可視語言 ,例如 Miro(1988 年)就是一種定義作業系統安全約束的 HiGraphs 語言 , StateMaster(1989 年)則是一種計算機用戶界面的 HiGraphs 語言。第四類可視語言如 M .Zloof 等人建立的 QBE(1977 年) ,它允許用戶用二維表格指出在關係資料庫上的查詢。1981年又把這種思想擴充到辦公自動化領域建立 OBE。第五類是 Petri 網式語言。1981 年 T .Ae 等建立的MOPS-2 用帶色 Petri 網按可視方式構造和模擬並發系統。VERDI(1987 年)是一個 Petri 網式可視語言的解釋性系統。用戶在這種程式執行時可以看到令牌在網上移動的程式動畫。第六類是數據流圖式可視語言,它們以 PROGRAPH (1983 年) 和LabVIEW為代表。第七類是自動生成用戶界面的可視語言,例如 Peridot(1988 年)和 UIMS(1989 年)。此外,還有一些其它類型的可視語言。這些可視語言都體現了用圖形來進行編程的特點。其圖形符號大都是軟體工作者所熟悉的。對其它(如商業行銷、 企業管理)領域的對象圖形和操作符號也進行了一些討論,可以建立針對這些領域工作者所熟悉的圖形符號的可視語言。G .TorTora 提出一種可視語言的形式描述:可視語言程式由基本圖符的空間排列組成。基本圖符分為基本對象圖符和對這些對象的處理圖符。可視語言的終結符號集包括基本圖符和空間操作符兩部分。最基本的空間操作符至少包含橫向連線、縱向連線和空間覆蓋等。一個可視語言表示成三元組(ID,Go,B),其中 ID 是基本圖符字典,它刻畫了每個基本圖符的邏輯部分(含義),物理部分(顯示圖形)和類型(對象或處理)。Go 是上下文無關文法,它指出如何用空間排列基本圖符構造合法的複合圖符。每個圖符,不論是基本的還是複合的,都具有邏輯部分和物理部分的對偶表示。一個可視程式也是一個複合圖符。B 是知識庫 , 它包含了為構造一個已給可視程式的含義所需的具體領域的信息。(ID,Go,B)構成一個可視屬性文法 VAG,它以 Go 為基礎。VAG的語義規則是與Go中的產生式相關聯的,它指出已給派生樹如何合成可視程式的含義。實際的語義規則由包含在 B 中的信息以具體例子說明每個規則的未定部分。

相關詞條

相關搜尋

熱門詞條

聯絡我們