-
漢語程序設計語言
鎖定
漢語程序設計語言,簡稱“漢語言”,或者“漢編”, 即沈志斌教授發明的一種計算機程序設計語言。它是一種採用漢民族語言文字進行電腦編程的語言系統,支持基於漢語字、詞編程,符合計算機符號語言規範,並繼續向自然語言發展。它已經取得國家專利,國家發明專利號: ZL 94 1 07330.0 國際專利主分類號:G06F 17/00。 中國是個多民族的國家,語種眾多,有:漢語,藏語,滿語等;中文字體也非常多,如篆書、金書、隸書、楷書等。嚴格來説稱“漢語編程”而不稱之為“中文編程”。因為,漢語是中國的官方語言,所以,但一般情況下,稱中文編程時,也特指漢語編程。 漢語程序設計語言,是中文編程語言的一個分支,但由於研發時間比較早,當時中國大陸少有其它中文編程語言面世,所以,發明者也稱其為“漢語編程”。 在當今中文編程語言發展多樣化的情況下,我們一般簡稱沈志斌教授在二十世紀九十年代實研發的漢語程序設計語言為“漢編”,簡稱吳濤先生在二十一世紀初研發的易語言漢語編程為“易語言”。
- 中文名
- 漢編
- 外文名
- HanBian
- 創始人
- 沈志斌
- 創始時間
- 1984年
- 類 別
- 計算機程序設計語言
- 執行方式
- 既能解釋執行,也能編譯執行
- 創新理念
- 數摞
- 表達式
- 後綴
漢語程序設計語言定義
漢語程序設計語言,簡稱“漢語言”,或者“漢編”, 即沈志斌教授發明的一種計算機程序設計語言。它是一種採用漢民族語言文字進行電腦編程的語言系統,支持基於漢語字、詞編程,符合計算機符號語言規範,並繼續向自然語言發展。它已經取得國家專利,國家發明專利號: ZL 94 1 07330.0 國際專利主分類號:G06F 17/00。 中國是個多民族的國家,語種眾多,有:漢語,藏語,滿語等;中文字體也非常多,如篆書、金書、隸書、楷書等。嚴格來説稱“漢語編程”而不稱之為“中文編程”。因為,漢語是中國的官方語言,所以,但一般情況下,稱中文編程時,也特指漢語編程。 漢語程序設計語言,是中文編程語言的一個分支,但由於研發時間比較早,當時中國大陸少有其它中文編程語言面世,所以,發明者也稱其為“漢語編程”。 在當今中文編程語言發展多樣化的情況下,我們一般簡稱沈志斌教授在二十世紀九十年代實研發的漢語程序設計語言為“漢編”,簡稱吳濤先生在二十一世紀初研發的易語言漢語編程為“易語言”。
漢語程序設計語言編譯原理
漢語程序設計語言特點
漢編系統是一個交互式的程序設計環境,最初是為程序員在小型和微型計算機上開發應用程序而設計的。主要應用於科學計算和工業控制,比如儀器、機器人、過程控制、圖形和圖像處理、人工智能和商業應用。 漢編語言的主要優點是軟件開發快速、交互式、計算機硬件的高效使用等。
漢編語言與傳統語言最大的不同是它的可擴展性。 漢編語言的編程過程就是定義新的詞,詞實際上就是語言的新命令。詞可以用一系列以前定義的詞來定義,這個過程與教育孩子的過程相似:我們總是用孩子們以前理解的概念來教給孩子們新的概念,而這些詞被稱為“高級定義”。同樣,新的詞也可以用匯編代碼定義。
可擴展性的結果是我們在開發一個應用的同時,也間接地開發了一個特殊的、針對這一類應用的“面向應用的模塊,它可以用於或者經過修改之後被用於相似的應用。
漢編語言的可擴展性並不僅僅是為語言自身增加新的命令,所以不要把定義詞與傳統高級語言定義函數、過程等同。漢編系統還能對定義詞(建詞)進行擴展,創建一個可以定義其它詞的詞,這種詞被稱為“定義詞”。在創建這樣一個定義詞的時候,程序員能夠指定它所創建的詞在編譯時間、運行時間或者這兩種狀態下的特殊行為。這個能力允許我們定義特殊的數據類型,並對其行為和結構實施完全的控制。又由於這種詞的運行時行為可以用高級語言或者彙編語言來定義,所以由定義詞創建的詞將具有與其它漢編詞一樣的性能。系統也允許我們增加一個新的“編譯指示符”以實現特殊類型的循環或者其它的控制結構。 比如,漢語言定義一個程序變量的 詞:給,其代碼大概如下:
編 給 ( 32位數 -<變量名>- ) \ 編譯時
( --- 32位數 ) \ 運行時
建詞 可用地址 4 字節空出 寫
動作 讀
。
定義變量時
5 給 變量一
則 5 被自動寫入 變量一的實體域中
運行“變量一”時
變量一
則 變量一 實體域中的數字 5 被自動讀取,放到數摞上
漢語程序設計語言編程
漢編詞可以使用以前定義的詞或者彙編代碼來定義,它們與其它語言的子程序相似,也與其它語言的命令等效。 漢編系統允許我們在鍵盤上打入一條指令的詞名,這個詞將被立即執行。然而,如果我們把功能的詞名放到定義中,將編譯成對於這個詞的引用。
高級詞是由其它詞的集合來定義的,我們可以把這個過程想象成是其它語言的宏。新的詞被加入到它們可以使用的存儲器中,其定義被加入到詞典中。在一個漢編詞的命名規則中,只有很少的幾個字符不能作為詞名使用。
當遇到一個詞的時候, 漢編系統就通過詞典搜索希望找到這個詞的定義,如果找到這個詞定義的功能,或者被立即執行,或者作為引用而被編譯到新的定義中。然而,如果在詞典中沒有找到這個詞,系統就試着把它轉換成一個數。如果轉換成功,就把它放在數摞上。如果不能轉換成數字,就顯示這個未定義的詞名並打印出一個錯誤的信息來報告這個詞是系統所不知道的。
漢編詞的執行流程大概可以用一個詞來模擬如下:
編 查詞測試
{ \詞名串 -- }
255個字節空給 詞名串
詞名串 255填0
詞名串 字串傳送
詞名串 (查詞)
0=
就
計字節
串>數
就
♀
否則
字串"未定義"詞名串 字串+傳送
詞名串 計字節
回車 印字串
全復位
然後
否則
執行
然後
。 ★
字串" 看數摞" 查詞測試 數摞已空! ★
字串" 123456" 查詞測試 ★.
看數摞 [1] 123456 ★.
顯 123456 ★
字串" 看方法" 查詞測試
看方法未定義
漢編語言堅持“結構化程序設計”原理:
· 詞必須在引用之前被定義;
· 邏輯流限制只有順序、條件和循環,有專門的詞用於實現常用的程序控制結構;
· 程序員使用許多小的、獨立的模塊(詞)來實現最大的可測試性和可靠性;
這種方法有兩個明顯的優點
· 新的詞總是用以前定義和測試過的詞來構造,所以調試更容易。模塊可以單獨執行以測試它的功能;
· 固有的模塊性使漢編語言成為一個“設計性語言”,允許自頂向下的設計同時保持自底向上的測試。一個詞可以在不同的程序中使用,但是它的功能只需要定義一次;
這些都保證了漢編軟件能夠快速和有效地被開發,同時,如果管理得當,也可以作為自身文檔的基礎。
漢編語言的5個主要元素決定了它的特點:
· 一個詞典;
· 鍵盤(輸入流)解釋器;
· 一個編譯器;
· 虛擬存儲;
漢語程序設計語言詞典
詞典是漢編定義詞的數據和代碼存儲空間,也為編譯建立了詞的索引。詞典中的詞包括漢編程序代碼詞、常數定義詞、變量定義詞、不定量定義詞,面向對象部分還有模板、對象、對象事件、消息。
詞是由“定義詞”加入詞典的,最常用的定義詞是“ 編 。”當“編”執行的時候,馬上就把後面的詞名掃描,建立一個詞典項,然後進入“編譯”模式。有許多不同的編譯方法,最常用的是“串線編碼”,這種方法把定義編譯成一系列以前定義詞的地址引用。詞的定義由“。”(句號)結束。下面就是一個詞的定義:
編 平方 ( -- ) ♂ * 顯 。
當一個詞名項被編譯到詞典中的時候(稱為定義的首部),它包含一個指向詞典中前一個首部的指針。新詞的詞名加入詞典(這裏就是 平方 ),接着一個指向詞名為“( 編 )”子程序調用的指針編譯到詞典中作為定義的第一部分,這個指針指向一段在解釋定義體時需要執行的代碼。當然,這裏所説的不是唯一的編譯技術,但它的應用最為普遍,這種技術稱為間接串線編碼,因為定義中的第一個項目是一段代碼的引用,這段代碼知道如何解釋定義的其它部分。
定義的其它部分稱為這個定義的體。在編譯模式下,系統將依次尋找每個詞的首部。每個首部地址依次放到定義體中,這樣就產生了一個地址列表。最後在到達“。”時,詞名為“。”的子程序地址被編譯進詞典。“ 。” 子程序用來將控制返回到調用詞,就像一個子程序返回一樣。
漢語程序設計語言發展歷程
漢編的發展早於 1993 年,看起來像Forth,是中國人自己研發的完全以漢語為描述語言的計算機程序設計語言,它完全具有中國自主知識產權。作為一種計算機語言,它和現在流行的大部分計算機語言具有一些共同的特點,都是人機對話必須的工具語言。但該語言絕非曾流行過的任何一種計算機語言的簡單漢化,或是為某種軟件製造一箇中文環境。這是一個完全由中國人自行開發,由中國人自我掌握全部源代碼,從形式到內容全面符合中國人的思維方式,使用漢文字表達的面向對象、面向問題計算機程序設計語言。“漢語編程”具有自成平台、面向對象、面向問題、所見即所得、高度安全性、強大的繁衍功能、高度兼容性以及資源佔用少、速度快等特點,開闢了計算機語言發展的新紀元。
1984年-1989年:漢語編程的基礎構想和基礎算法及其基本功能驗證階段九十年代,沈志斌的漢語編程初步推出。並申請了“漢語編程單片機”專利。
1990年-1994年:漢語編程嵌入式系統的開發及應用的階段;
1994年《漢語程序設計語言》一書由電子出版社出版,為漢語編程技術建立了基礎標識。
1995年-1999年:漢語編程嵌入式系統,在多種行業中應用及windows平台,漢語編程系統發展階段;隨着世界信息技術的發展,漢語編程技術在與新技術的對接和兼容上的靈活性已獨具特點。
2000年-今 :漢語編程嵌入式系統、漢語程序設計語言、漢語編程數據庫開發環境、軟件工程整體發展階段;這期間,用漢語編程開發出具有廣泛應用價值的民族計算機技術體系,在教育及軟硬件開發領域廣泛應用。
漢語程序設計語言異同
- | 漢語編程 | JAVA | C++ |
編譯 | 編譯機器碼 | 編譯為字節碼 | 編譯為機器碼 |
執行 | 可選擇CPU直接執行或虛擬機中執行 | 在虛擬機中執行 | 由CPU直接執行 |
完全面向對象 | 完全面向對象 | 支持面向對象 | |
結構 | 詞典結構,及標準類庫,可擴展第三方類庫 | 標準類庫 | 標準類庫較小, 但第三方類庫非常豐富 |
跨平台 多CPU | 支持同一個源代碼未經修改在其它平台下編譯生成多CPU運行目標 | 支持 同一個程序或類庫未經修改或經少量修改可在其它平台下運行 | 支持(但在多線程、網絡、文本編碼轉換等領域需第三方類庫支持) |
多線程 | 支持 | 支持 | 第三方類庫支持 |
支持 | 支持 | 部分支持 | |
網絡 | 支持 | 支持 | 第三方類庫支持 |
語言複雜度 | 非常簡單 | 較簡單 | 較複雜 |
學習難度 | 容易 | 較容易 | 較難 |
IDE支持 | 自行開發,會支持很好 | 支持很好 | 支持較好 |
啓動方法 | 編: 進入() :編。 | public static void main(String[] args) | int main() |
版權費用 | 自主知識產權, 版權費用低 | 美國知識產權, 版權費用高 | 美國知識產權, 版權費用高 |
漢語程序設計語言編程實例
漢語程序設計語言製作簡窗口
1、在編譯器上輸入如下(不包括實心五角星)代碼
2、運行結果如下:
3、上面程序代碼結構如下:
擴展對象 <用户自定義窗口名稱> 繼承自 窗口對象模板
對象。
啓動: <用户自定義窗口名稱>
漢語程序設計語言新詞編寫
漢語言的窗口編程還是好理解的,初學者往往對數摞不太容易理解,主要是 數據運算比較抽象了,傳統編程語言的參數都用變量來標識,而漢編語言的指令參數可以直接通過數摞來提供,這樣就造成了抽象性加強。當然,初學者,可以不使用數摞來傳遞參數,比如,平方的編寫。
1、使用變量 來傳遞參數 如下:
編 平方
{ 底數 \ -- }
底數 底數 *
。
雙括號裏邊的內容為解釋
注: 平方 { 底數 \ -- } 相當於 傳統編程中的 平方(底數)
其中 { 這裏為輸入參數 \ 這裏為中間變量定義 -- 這裏為輸出結果 }
直接使用數摞傳遞參數,這些可以不定義
2、使用數摞直接傳遞參數如下:
編 平方
♂ *
。
雙括號裏邊的內容為解釋
平方的計算過程為:
數1 * 數1在漢編中,用後綴表示法表示 為:
數1 數1 *
簡化為:
數1 ♂ *
♂ 的功能是 複製數摞頂層的一個數,這裏即複製 數1
我們在編寫平方這個詞的時候,就要考慮到,平方的功能,平方,這個詞必須能計算所有數字的平方值,所以,底數不能放在 詞(指令 或 函數)裏邊,必須通過參數提供,因此,就有如下形式:
編 平方
♂ *
。
這樣,在初學才看來,就顯得抽象了,我們看到這個詞的時候,第一感覺就是要想到,這個詞,有一個參數,而 ♂ 複製的 數字正是參數,這樣才能理解 平方 這個詞的含義。
有人會説,假如,有些新詞參數有多個,非常複雜,用户無法判斷參數是什麼,有多少,又怎麼辦呢,其實,漢編中,也有標準的參數 解釋法則,上面的平方 新詡編寫, 規範的形式如下:
編 平方 ( 數字1 --- )
♂ *
。
注 參數註釋採用 ( 輸入參數 --- 返回結果 ) 的形式,當然,這只是註釋而已,這裏產沒有定義任何變量、字符串之類的。
漢語程序設計語言數摞操作
示例代碼如下(下面是在編譯器上輸入的漢語言代碼,不含實心五角星和“看數摞”、“顯”後面的內容):
同義詞 複製 ♂ ★
看數摞 數摞已空! ★
5 ★.
看數摞 [1] 5 ★.
複製 ★..
看數摞 [2] 5 5 ★..
摞初始 ★
編 平方
複製 * 。 ★
2 平方 顯 4 ★
3 平方 顯 9 ★
示例代碼如下(下面是在編譯器上輸入的漢語言代碼,不含實心五角星和“看數摞”、“顯”後面的內容,斜槓後面為,為代碼解釋):
漢編採用詞典式架構,因此,漢編指令,即漢編詞,漢編詞分為編譯器已有的系統詞和用户新編的新詞。
在漢編編譯器上,輸入一條指令 按回車鍵後執行,★ 號表示執行成功。
同義詞 複製 ♂ ★
\ 解釋:通過 同義詞 這個系統詞將新詞 複製 定為與♂功能相同(同義)。
看數摞 數摞已空! ★
\ 系統詞:看數摞,是用來查看數摞上的數的,現在,查看結果:數摞已空,説明數摞上沒有數
5 ★.
\ 在數摞上放入一個數:5
看數摞 [1] 5 ★.
\ 用看數摞 系統詞查看數摞上的數,發現數摞上有一個數:5 中括號內的數為數摞上數的總個數,中括號後面為數摞上所有數字的顯示
複製 ★..
\ 執行剛才定義的新詞:複製,試試看能不能將數摞上的數複製
看數摞 [2] 5 5 ★..
\ 查看結果表明,數摞上的數變為兩個,説明,複製 這個詞正確
摞初始 ★
\ 用 摞初始 這個系統詞 來清除數摞上的數,使數摞為空
編 平方
複製 * 。 ★
\ 編寫新詞:平方 在漢編中,一個指令(詞)的編寫以 編 開頭,以 。 結尾
2 平方 顯 4 ★
\ 測試新詞:平方 ,如上計算:2的平方(系統詞:顯,意思將數摞上的一個數顯示出來)
3 平方 顯 9 ★
\ 再次測試:平方,如上計算:3 的平方
\ 當然,我們也可以用 看數摞來查看計算結果
摞初始
2 平方 看數摞 [1] 4 ★.
\ 測試新詞:平方 ,如上計算:2的平方
3 平方 看數摞 [2] 4 9 ★..
\ 再次測試:平方,如上計算:3 的平方
(( 注意:顯 這個詞 僅僅是顯示數摞上的一個數,而看數摞,是查看數摞上的所有數;顯 這個系統詞顯示數摞上的數的時候,同時會清除在數摞上顯示的該數,而 看數摞 這個詞僅僅是查看數摞上的所有數字,而不會清除數摞上的數字。 ))
漢語程序設計語言發明者簡介
沈志斌 1956年9月8日生於南京,1974年12月入伍。1983年曾因發明“發動機不解體測功儀” 而獲全軍科技成果進步獎, 並榮立一等功, 並破格保送到解放軍南京工程學院本科班深造, 畢業後分配到北京軍區指揮自動化工作站任工程師。漢語編程的基礎構想和基礎算法及其基本功能驗證, 便始於此。1995年沈志斌離開部隊後, 曾分別就職於航天工業部和信息產業部, 後到國家漢語編程研究院和北京國之經典漢語編程科技總公司任總工程師。沈志斌之於漢語編程就當相比爾·蓋茨之於windows操作系統。沈志斌和他的團隊歷經20多年的研發,終於讓漢語成為一種新型的計算機語言, 並廣泛應用在編程中。其成果有:《漢語程序設計語言》、《漢語編程基礎教程》﹑漢語編程數據庫開發環境、漢語編程單片機的計算機系統(專利)、非接觸式IC卡可編程讀寫器(專利)等等。 但是任何一項影響較大的發明都不應該是一個人的功勞,而應該歸功於人類歷史的進步,就像漢語編程的發明就是根源於中國五千年的燦爛文明,中國具有世界上最多人口的語言民族,漢語編程是必然應該被開發出來也必然應該被廣泛利用的。