汉语编程
                            
                            
                            摘要:在信息社會的今天,中國的軟件業(yè)畸形發(fā)展,從編程語言到操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等系統(tǒng)級、核心層技術(shù)無一例外的都是“外商獨資”,而語言上障礙、思維方式的差異正是制約中國軟件發(fā)展的“瓶頸”所在。政府上網(wǎng)、企業(yè)上網(wǎng)的呼聲一浪高過一浪,安全漏洞、預(yù)留后門更是層出不窮,國內(nèi)的軟件人員只能焦急的等待一個個補丁程序的產(chǎn)生和升級版的發(fā)布,在這等待的時間里他們唯一能做的就是準備大把大把的鈔票……(中國每年光進口軟件和為軟件支付的費用就達幾百億人民幣之巨,不包括D版)。要擺脫這一惡性循環(huán),標本兼治,必須從“娃娃”抓起 ——研制完全符合國人思維習慣和表達方式的中文編程語言,并在此基礎(chǔ)上,編寫出真正屬于自己的中文操作系統(tǒng),而不是“XXX 中文版”。 ? 
????? 漢語程序設(shè)計語言的產(chǎn)生實現(xiàn)了幾代人的夢想,也讓億萬華人看到了希望,它以精巧的內(nèi)核、高效的執(zhí)行效率、很小的資源占用廣泛應(yīng)用于各行各業(yè)。本文從多個角度將漢編語言與現(xiàn)代操作系統(tǒng)的“開國元勛”C語言進行對照,讓大家見識一下IT領(lǐng)域的“精武英雄”。
???? 關(guān)鍵詞:漢語程序設(shè)計語言(以下簡稱漢編語言)、C語言、操作系統(tǒng)、信息安全 ??? 在軟件界C語言家族的知名度不亞于世界首富比爾·蓋茨。它從一產(chǎn)生就與操作系統(tǒng)結(jié)下了不解之緣,它的“孿生兄弟①”—— Unix② 現(xiàn)在正運行于眾多昂貴的工作站和服務(wù)器上③;它“親手撫養(yǎng)長大的”微軟公司的Windows操作系統(tǒng)大家族④更是風靡全球;它的“小侄子”——現(xiàn)在傳媒的焦點Linux⑤也炒得沸沸揚揚。因此,C語言家族在國內(nèi)外得到了迅速推廣,不但得到了計算機專業(yè)工作者普遍使用,而且為廣大計算機應(yīng)用人員所喜愛和使用。然而于國人來說,這是個不得已而為之的選擇,“人在矮檐下,怎能不低頭”呢?國人只能被動地去理解那些似懂非懂的關(guān)鍵詞、復(fù)雜的概念、繁雜的規(guī)則以及“一著不慎、滿盤皆輸”的錯誤提示,這也讓眾多的初學(xué)者望而卻步。目前國內(nèi)人才市場上“學(xué)過C語言的人多如牛毛、可真正精通或者說掌握C語言的人卻鳳毛麟角,這不得不引起國人的深思?
?????? 一、相提并論(漢編語言和C語言共同的優(yōu)點) 用漢編語言和C語言編寫的程序語言簡潔、緊湊,使用方便、靈活,既給程序設(shè)計人員提供了一個自由發(fā)揮的編程空間,也給用戶提供了很多便利。此外,兩者都提供了豐富的運算符、完善的流程控制、友好的操作界面等。二者的共同優(yōu)點還表現(xiàn)在: ?
注: ??
? ? ? ?? ①、在C語言產(chǎn)生以前,操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語言編寫(包括Unix操作系統(tǒng)在內(nèi)),后來人們?yōu)榱嗣枋龊蛯崿F(xiàn)UNIX操作系統(tǒng)而設(shè)計了C語言,在此基礎(chǔ)上用C語言改寫了Unix操作系統(tǒng),從這以后,兩者相互促進、互相完善、補充,因此,一般將二者稱為孿生兄弟。 ???????? ②、Unix版本很多,幾乎各大IT廠商都開發(fā)出了自己的Unix操作系統(tǒng),比較著名的有Sun公司的Solaris、惠普公司的UX、IBM公司的AIX等); ???
??????? ③、國內(nèi)電信、銀行、金融等領(lǐng)域幾乎無一例外的采用Unix操作系統(tǒng); ???
??????? ④、Windows大家族包括: Windows 9X、Windows ME、Windows NT各版本、Windows 2000各版本以及最新的Windows XP,它們都是用C/C++語言編寫出來的。 ???
??????? ⑤、Linux是UNIX的完整實現(xiàn),同時也是UNIX的完整開發(fā)平臺,通俗的說Linux是運行于PC機上的精巧的UNIX,同時,Linux也帶來了一場自由軟件與商業(yè)軟件的革命,比較著名的版本有Red Hat Linux 、Turbo Linux ,國內(nèi)有紅旗Linux、Xteam Linux等版本。 ???
????? 1、都適合于編寫操作系統(tǒng)和系統(tǒng)軟件:操作系統(tǒng)或系統(tǒng)軟件一般都需要直接對硬件進行操作,如對內(nèi)存地址的操作、位操作、串口操作等,通常情況下,這些功能的實現(xiàn)都是通過匯編語言來實現(xiàn),然而匯編語言依賴于計算機硬件,程序的可讀性和可移植性都非常差,為了提高可讀性和可移植性,最好改用高級語言,但一般高級語言都很難實現(xiàn)匯編語言的功能。漢編語言不但提供了各種簡單明了的匯編操作,而且自含了一個完整的漢編獨有的匯編程序。讀者可在漢編編譯解釋環(huán)境下鍵入: 匯編枝? <Enter> 看詞??? <Enter> 讀者將能看到熟悉的各種匯編指令,同時能夠輕松的編寫各種匯編程序。此外,在程序運行、調(diào)試等過程中,我們能夠通過諸如內(nèi)存地址、寄存器狀態(tài)等操作從最底層對程序進行維護和控制。同時,漢編語言程序的執(zhí)行效率非常高,這正是系統(tǒng)軟件和操作系統(tǒng)語言的必備特征。因此,它非常適合于編寫操作系統(tǒng)和系統(tǒng)軟件。(關(guān)于C語言適合于編寫操作系統(tǒng)和系統(tǒng)軟件已經(jīng)是眾所周知的事實,在此不再贅述。) ??????? 2、可移植性強:C語言自1978年后,已先后移植到大、中、小、微型機上,獨立于Unix。漢編語言也不例外,不僅先后移植到各種大、中、小、微型計算機上,而且還應(yīng)用于各種嵌入式設(shè)備、掌上電腦、PDA等各種平臺,此外,從MS-DOS3.1開始到Windows 9X/ME,WindowsNT/2000乃至最新的WindowsXP操作系統(tǒng),都能正常運行和自由擴展,同時,漢編Unix/Linux版本也正在開發(fā)之中,在不久的將來,漢編語言作為中國人自己的“Java①”語言必能真正實現(xiàn)——“一次編寫,到處運行”。 ???
????? 3、數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。C語言的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。漢編語言則提供了更為豐富的數(shù)據(jù)類型,它不但具備C語言的絕大部分數(shù)據(jù)類型,而且具備諸如日期型、貨幣型、備注型、字符串型、圖片型、日期時間型等現(xiàn)代面向?qū)ο蟪绦蛟O(shè)計所必需數(shù)據(jù)類型,所以能實現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、圖等)的運算。同時,漢編語言各種數(shù)據(jù)類型之間轉(zhuǎn)換較為方便,還提供了動態(tài)數(shù)據(jù)類型,增強了程序設(shè)計的靈活性。例如:在漢編語言中定義變量時無需聲明變量的類型,變量的類型根據(jù)所賦值的類型而定,而且和一個變量名綁定的數(shù)據(jù)對象的類型在程序執(zhí)行時可以按需改變。它是程序員從數(shù)據(jù)類型中擺脫出來。
????? 二、一決雌雄(漢編語言所獨有的優(yōu)勢) ???從廣義上講任何描述算法及數(shù)據(jù)結(jié)構(gòu)的符號都可以構(gòu)成一種程序設(shè)計語言,與此同時,任何一種程序設(shè)計語言所設(shè)計程序的正常運行離不開操作平臺的支持,因此,操作平臺的千差萬別制約了眾多軟件的發(fā)展。漢語程序設(shè)計語言從一開始就采用自己獨有的漢編虛擬機結(jié)構(gòu),程序員不必考慮很多繁雜冗余的細節(jié)工作,圖1表示了一個呈現(xiàn)在程序員面前的漢編虛擬機層次結(jié)構(gòu)圖:?
注: ??
? ? ?? ①、Java語言是SUNmicrosystem公司開發(fā)出的一種網(wǎng)絡(luò)編程語言。由于internet的普及,電子商務(wù)成了當今的熱門話題,然而傳統(tǒng)的編程語言難以勝任電子商務(wù)系統(tǒng),電子商務(wù)要求程序代碼具有基本的要求:安全、可靠、同時要求能與運行于不同平臺的機器的全世界客戶開展業(yè)務(wù)。Java以其強安全性、平臺無關(guān)性、硬件結(jié)構(gòu)無關(guān)性、語言簡潔同時面向?qū)ο?#xff0c;在網(wǎng)絡(luò)編程語言中占據(jù)無可比擬的優(yōu)勢,成為實現(xiàn)電子商務(wù)系統(tǒng)的首選語言。同時Java語言的出現(xiàn)真正實現(xiàn)了程序“一次編寫、到處運行”的愿望。 ? ??
輸入數(shù)據(jù)?????????? 輸出結(jié)果 ? 漢語編程應(yīng)用計算機 (用漢編語言實現(xiàn)) 漢語編程序虛擬計算機 (由與編譯/解釋后的程序一起裝入運行庫實現(xiàn)) 操作系統(tǒng)虛擬機 (由在固件虛擬計算機上執(zhí)行的機器語言程序?qū)崿F(xiàn)) 固件虛擬計算機 (由實際計算機上執(zhí)行的機器語言指令實現(xiàn)) 實際硬件計算機 ???????????????? (由物理設(shè)備實現(xiàn)) ? 1? 一個漢編應(yīng)用程序的虛擬機層次 正是采用了漢編獨特的虛擬機結(jié)構(gòu),漢編語言表現(xiàn)出一系列無與倫比的優(yōu)越性,主要表現(xiàn)在以下幾個方面:
?????1、?近年來各種媒體對印度軟件業(yè)的異軍突起紛紛進行報道:“世界上有一個連地鐵和高速公路都沒有的國家竟建起了發(fā)達的“信息高速公路”,這個國家就是印度?!?#xff08;摘自《人民日報》?(2000年06月04日第四版)??),來自互聯(lián)網(wǎng)上的資料表明,近年來,印度軟件出口每年以60%的速度增長,2000年出口總額達到46億美元,占印度國內(nèi)生產(chǎn)總值增長部分的1/4,印度軟件業(yè)雄踞全球第二,把日本和歐洲遠遠甩在后面,與此同時形成鮮明對比的是它落后的各種基礎(chǔ)設(shè)施和低下文化素質(zhì)(全國10億人有4億是文盲,城鄉(xiāng)差別很大,貧富差異懸殊)。透過種種現(xiàn)實,我們不難發(fā)現(xiàn),得天獨厚的語言優(yōu)勢是印度軟件“亢奮式”發(fā)展的最根本原因(英語是印度的官方語言和通用語言,世界第二大使用英語的國家(僅次于美國),幾乎所有的科研人員,尤其是受過良好教育的各類軟件人才,都具備極強的英語能力,因此在語言上幾乎沒有障礙,容易熟悉和了解西方國家的種種信息)。這也正是中國軟件業(yè)“小作坊式”發(fā)展的最根本原因(英語是擺在眾多國內(nèi)程序設(shè)計人員的“珠穆朗瑪峰”)。然而,漢語是世界上使用最廣的語言,全世界每四個人中就有一個懂中文,因此,中文編程語言的產(chǎn)生和推廣符合億萬華人的心愿。漢編語言正是采用完全符合中文表達方式和思維習慣的漢語來編寫各種程序,讓程序員徹底告別那費澀難解英文語法和莫名其妙的西方習慣,輕輕松松的編寫出自己心中的各種軟件。
?? ??2、數(shù)摞是漢編語言獨有的概念,它是在內(nèi)存中開辟出的一個空間,它不僅是漢編程序運行中數(shù)據(jù)處理的場所,也是數(shù)據(jù)臨時存儲的場所,還是各模塊間參數(shù)傳遞的場所。數(shù)摞結(jié)構(gòu)的引入既統(tǒng)一了程序中各參數(shù)的臨時存儲場所和格式,也讓程序員能夠同步跟蹤并調(diào)試程序的運行。而在C語言中所有這些工作只能交給編譯器,一旦出現(xiàn)錯誤,調(diào)試工作只能從零開始。(誠然,在C語言中提供了所謂的Debug程序,然而效果卻……)。
?????3、漢編語言是編譯解釋合一的語言:一般地,高級語言編寫的程序并不能直接在計算機上運行,而需要先“轉(zhuǎn)換”為某種“可識別”的方式,通常情況下,有兩種不同的途徑:編譯(翻譯)、解釋(軟件模擬),也因此,我們將語言分為編譯型語言、解釋型語言兩類。C、C++、FORTRAN屬于編譯型語言,編譯型語言所編寫的程序在執(zhí)行前需先轉(zhuǎn)化為目標代碼(擴展名為.obj),然后再生成可執(zhí)行程序(擴展名為.exe)。編譯型語言所編寫的程序執(zhí)行效率高,然而程序的調(diào)試難,而且編譯器非常復(fù)雜、龐大;用解釋型所編寫的程序在執(zhí)行過程中并不產(chǎn)生機器代碼,程序逐行讀入,逐行解釋,逐行執(zhí)行。解釋型語言程序的可讀性強,調(diào)試程序容易,但是程序的執(zhí)行效率很低,因此也限制的它的應(yīng)用。漢編語言融合了兩種語言的優(yōu)點,內(nèi)建編譯解釋合一環(huán)境,為程序員提供了一個非常自由的編程空間,也為漢編程序應(yīng)用于各行各業(yè)提供了有利的保障,有著非常廣闊的市場前景。
?????4、?對于C語言初學(xué)者來說,最頭痛的莫過于那15層的優(yōu)先級,即使是熟練的程序員也不得不將C語言的優(yōu)先級作為“工具書”,以便查閱。而C語言編譯器在編譯程序時,碰到優(yōu)先級只能按照后綴表示法逐層取消優(yōu)先級,因此,優(yōu)先級的使用不僅增加了初學(xué)者的難度,而且影響了C語言程序的執(zhí)行效率。漢語程序設(shè)計語言徹底的取消了“雞肋式”的優(yōu)先級,直接采用逆波蘭表示法(俗稱后綴表示法),提高了程序的執(zhí)行效率(程序的執(zhí)行效率實時領(lǐng)域是最關(guān)鍵的因素),也降低了初學(xué)者的難度。
????? 5、?學(xué)過C語言的人都知道,設(shè)計一個C程序的第一步就是定義若干變量,然后圍繞變量進行各種“黑箱”的處理,而各種中間狀態(tài)對用戶“保密”。漢編語言對變量的采用比較謹慎,變量并非程序設(shè)計的“必要條件”,而是把選擇權(quán)交給程序員,同時,一個普通的漢編程序完全可以在不定義任何變量的情況下勝任各種工作,此外,對于變量,使用起來也非常靈活,跟蹤調(diào)試也很方便。 ????? 6、?漢編語言應(yīng)用面非常廣。
?????7、?在C語言中,那32個關(guān)鍵詞是絕對保留的“紫禁城”,編譯系統(tǒng)絕對禁止任何程序(哪怕是臨時的)修改關(guān)鍵詞,關(guān)鍵詞的含義和表達習慣或許符合研制者的思維習慣,但它不一定符合大多數(shù)人的習慣,所以,用戶只能被動的去理解和使用也許并不符合自己習慣的語言。而漢編語言非?!爸t虛、大方”的賦予了用戶這個權(quán)力,不但允許用戶臨時修改任意一個關(guān)鍵詞,而且允許用戶將修改過的結(jié)果保存到整個系統(tǒng)。這樣,用戶可以根據(jù)自己的需要和特點“量體裁衣”的“定制”相應(yīng)的漢編系統(tǒng),“海闊憑魚躍,天高任鳥飛”也許正是漢編程序員的貼心感受。(前提條件是遵守漢語語言程序設(shè)計最終用戶許可協(xié)議,參見《漢語編程系統(tǒng)用戶許可協(xié)議》)。
???? 8、漢編語言能夠兼容多種流行軟件,同時,支持各種文本編輯器來編寫漢編程序,可擴展性強,同時采用獨特的內(nèi)核結(jié)構(gòu),有著很好的安全性和穩(wěn)定性。
????9、完全結(jié)構(gòu)化的程序設(shè)計思想:絕大部分程序設(shè)計語言保留了goto語句(C語言也不例外)來擴充自身的功能,受到了人們的長期指責。越來越多的人接受并理解結(jié)構(gòu)化程序設(shè)計思想,而且結(jié)構(gòu)化程序設(shè)計和取消goto語句幾乎成了“同義詞”(goto語句破壞了程序的結(jié)構(gòu),使程序變得費澀難解)。漢編語言完全摒棄了goto語句和類goto語句等影響程序結(jié)構(gòu)的成分,并以其精巧的內(nèi)核輕松實現(xiàn)那些傳統(tǒng)語言需借助goto語句才能實現(xiàn)的算法和結(jié)構(gòu)。因此說漢編語言是一種真正的結(jié)構(gòu)化程序設(shè)計語言。
??? 10、漢編語言采用了多種先進的編程思想,最值得一提的是有漢編特色的面向?qū)ο缶幊趟枷?#xff0c;在大型程序的編制過程表現(xiàn)出非常明顯的優(yōu)勢。
                        
                        
                        ????? 漢語程序設(shè)計語言的產(chǎn)生實現(xiàn)了幾代人的夢想,也讓億萬華人看到了希望,它以精巧的內(nèi)核、高效的執(zhí)行效率、很小的資源占用廣泛應(yīng)用于各行各業(yè)。本文從多個角度將漢編語言與現(xiàn)代操作系統(tǒng)的“開國元勛”C語言進行對照,讓大家見識一下IT領(lǐng)域的“精武英雄”。
???? 關(guān)鍵詞:漢語程序設(shè)計語言(以下簡稱漢編語言)、C語言、操作系統(tǒng)、信息安全 ??? 在軟件界C語言家族的知名度不亞于世界首富比爾·蓋茨。它從一產(chǎn)生就與操作系統(tǒng)結(jié)下了不解之緣,它的“孿生兄弟①”—— Unix② 現(xiàn)在正運行于眾多昂貴的工作站和服務(wù)器上③;它“親手撫養(yǎng)長大的”微軟公司的Windows操作系統(tǒng)大家族④更是風靡全球;它的“小侄子”——現(xiàn)在傳媒的焦點Linux⑤也炒得沸沸揚揚。因此,C語言家族在國內(nèi)外得到了迅速推廣,不但得到了計算機專業(yè)工作者普遍使用,而且為廣大計算機應(yīng)用人員所喜愛和使用。然而于國人來說,這是個不得已而為之的選擇,“人在矮檐下,怎能不低頭”呢?國人只能被動地去理解那些似懂非懂的關(guān)鍵詞、復(fù)雜的概念、繁雜的規(guī)則以及“一著不慎、滿盤皆輸”的錯誤提示,這也讓眾多的初學(xué)者望而卻步。目前國內(nèi)人才市場上“學(xué)過C語言的人多如牛毛、可真正精通或者說掌握C語言的人卻鳳毛麟角,這不得不引起國人的深思?
?????? 一、相提并論(漢編語言和C語言共同的優(yōu)點) 用漢編語言和C語言編寫的程序語言簡潔、緊湊,使用方便、靈活,既給程序設(shè)計人員提供了一個自由發(fā)揮的編程空間,也給用戶提供了很多便利。此外,兩者都提供了豐富的運算符、完善的流程控制、友好的操作界面等。二者的共同優(yōu)點還表現(xiàn)在: ?
注: ??
? ? ? ?? ①、在C語言產(chǎn)生以前,操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語言編寫(包括Unix操作系統(tǒng)在內(nèi)),后來人們?yōu)榱嗣枋龊蛯崿F(xiàn)UNIX操作系統(tǒng)而設(shè)計了C語言,在此基礎(chǔ)上用C語言改寫了Unix操作系統(tǒng),從這以后,兩者相互促進、互相完善、補充,因此,一般將二者稱為孿生兄弟。 ???????? ②、Unix版本很多,幾乎各大IT廠商都開發(fā)出了自己的Unix操作系統(tǒng),比較著名的有Sun公司的Solaris、惠普公司的UX、IBM公司的AIX等); ???
??????? ③、國內(nèi)電信、銀行、金融等領(lǐng)域幾乎無一例外的采用Unix操作系統(tǒng); ???
??????? ④、Windows大家族包括: Windows 9X、Windows ME、Windows NT各版本、Windows 2000各版本以及最新的Windows XP,它們都是用C/C++語言編寫出來的。 ???
??????? ⑤、Linux是UNIX的完整實現(xiàn),同時也是UNIX的完整開發(fā)平臺,通俗的說Linux是運行于PC機上的精巧的UNIX,同時,Linux也帶來了一場自由軟件與商業(yè)軟件的革命,比較著名的版本有Red Hat Linux 、Turbo Linux ,國內(nèi)有紅旗Linux、Xteam Linux等版本。 ???
????? 1、都適合于編寫操作系統(tǒng)和系統(tǒng)軟件:操作系統(tǒng)或系統(tǒng)軟件一般都需要直接對硬件進行操作,如對內(nèi)存地址的操作、位操作、串口操作等,通常情況下,這些功能的實現(xiàn)都是通過匯編語言來實現(xiàn),然而匯編語言依賴于計算機硬件,程序的可讀性和可移植性都非常差,為了提高可讀性和可移植性,最好改用高級語言,但一般高級語言都很難實現(xiàn)匯編語言的功能。漢編語言不但提供了各種簡單明了的匯編操作,而且自含了一個完整的漢編獨有的匯編程序。讀者可在漢編編譯解釋環(huán)境下鍵入: 匯編枝? <Enter> 看詞??? <Enter> 讀者將能看到熟悉的各種匯編指令,同時能夠輕松的編寫各種匯編程序。此外,在程序運行、調(diào)試等過程中,我們能夠通過諸如內(nèi)存地址、寄存器狀態(tài)等操作從最底層對程序進行維護和控制。同時,漢編語言程序的執(zhí)行效率非常高,這正是系統(tǒng)軟件和操作系統(tǒng)語言的必備特征。因此,它非常適合于編寫操作系統(tǒng)和系統(tǒng)軟件。(關(guān)于C語言適合于編寫操作系統(tǒng)和系統(tǒng)軟件已經(jīng)是眾所周知的事實,在此不再贅述。) ??????? 2、可移植性強:C語言自1978年后,已先后移植到大、中、小、微型機上,獨立于Unix。漢編語言也不例外,不僅先后移植到各種大、中、小、微型計算機上,而且還應(yīng)用于各種嵌入式設(shè)備、掌上電腦、PDA等各種平臺,此外,從MS-DOS3.1開始到Windows 9X/ME,WindowsNT/2000乃至最新的WindowsXP操作系統(tǒng),都能正常運行和自由擴展,同時,漢編Unix/Linux版本也正在開發(fā)之中,在不久的將來,漢編語言作為中國人自己的“Java①”語言必能真正實現(xiàn)——“一次編寫,到處運行”。 ???
????? 3、數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。C語言的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。漢編語言則提供了更為豐富的數(shù)據(jù)類型,它不但具備C語言的絕大部分數(shù)據(jù)類型,而且具備諸如日期型、貨幣型、備注型、字符串型、圖片型、日期時間型等現(xiàn)代面向?qū)ο蟪绦蛟O(shè)計所必需數(shù)據(jù)類型,所以能實現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、圖等)的運算。同時,漢編語言各種數(shù)據(jù)類型之間轉(zhuǎn)換較為方便,還提供了動態(tài)數(shù)據(jù)類型,增強了程序設(shè)計的靈活性。例如:在漢編語言中定義變量時無需聲明變量的類型,變量的類型根據(jù)所賦值的類型而定,而且和一個變量名綁定的數(shù)據(jù)對象的類型在程序執(zhí)行時可以按需改變。它是程序員從數(shù)據(jù)類型中擺脫出來。
????? 二、一決雌雄(漢編語言所獨有的優(yōu)勢) ???從廣義上講任何描述算法及數(shù)據(jù)結(jié)構(gòu)的符號都可以構(gòu)成一種程序設(shè)計語言,與此同時,任何一種程序設(shè)計語言所設(shè)計程序的正常運行離不開操作平臺的支持,因此,操作平臺的千差萬別制約了眾多軟件的發(fā)展。漢語程序設(shè)計語言從一開始就采用自己獨有的漢編虛擬機結(jié)構(gòu),程序員不必考慮很多繁雜冗余的細節(jié)工作,圖1表示了一個呈現(xiàn)在程序員面前的漢編虛擬機層次結(jié)構(gòu)圖:?
注: ??
? ? ?? ①、Java語言是SUNmicrosystem公司開發(fā)出的一種網(wǎng)絡(luò)編程語言。由于internet的普及,電子商務(wù)成了當今的熱門話題,然而傳統(tǒng)的編程語言難以勝任電子商務(wù)系統(tǒng),電子商務(wù)要求程序代碼具有基本的要求:安全、可靠、同時要求能與運行于不同平臺的機器的全世界客戶開展業(yè)務(wù)。Java以其強安全性、平臺無關(guān)性、硬件結(jié)構(gòu)無關(guān)性、語言簡潔同時面向?qū)ο?#xff0c;在網(wǎng)絡(luò)編程語言中占據(jù)無可比擬的優(yōu)勢,成為實現(xiàn)電子商務(wù)系統(tǒng)的首選語言。同時Java語言的出現(xiàn)真正實現(xiàn)了程序“一次編寫、到處運行”的愿望。 ? ??
輸入數(shù)據(jù)?????????? 輸出結(jié)果 ? 漢語編程應(yīng)用計算機 (用漢編語言實現(xiàn)) 漢語編程序虛擬計算機 (由與編譯/解釋后的程序一起裝入運行庫實現(xiàn)) 操作系統(tǒng)虛擬機 (由在固件虛擬計算機上執(zhí)行的機器語言程序?qū)崿F(xiàn)) 固件虛擬計算機 (由實際計算機上執(zhí)行的機器語言指令實現(xiàn)) 實際硬件計算機 ???????????????? (由物理設(shè)備實現(xiàn)) ? 1? 一個漢編應(yīng)用程序的虛擬機層次 正是采用了漢編獨特的虛擬機結(jié)構(gòu),漢編語言表現(xiàn)出一系列無與倫比的優(yōu)越性,主要表現(xiàn)在以下幾個方面:
?????1、?近年來各種媒體對印度軟件業(yè)的異軍突起紛紛進行報道:“世界上有一個連地鐵和高速公路都沒有的國家竟建起了發(fā)達的“信息高速公路”,這個國家就是印度?!?#xff08;摘自《人民日報》?(2000年06月04日第四版)??),來自互聯(lián)網(wǎng)上的資料表明,近年來,印度軟件出口每年以60%的速度增長,2000年出口總額達到46億美元,占印度國內(nèi)生產(chǎn)總值增長部分的1/4,印度軟件業(yè)雄踞全球第二,把日本和歐洲遠遠甩在后面,與此同時形成鮮明對比的是它落后的各種基礎(chǔ)設(shè)施和低下文化素質(zhì)(全國10億人有4億是文盲,城鄉(xiāng)差別很大,貧富差異懸殊)。透過種種現(xiàn)實,我們不難發(fā)現(xiàn),得天獨厚的語言優(yōu)勢是印度軟件“亢奮式”發(fā)展的最根本原因(英語是印度的官方語言和通用語言,世界第二大使用英語的國家(僅次于美國),幾乎所有的科研人員,尤其是受過良好教育的各類軟件人才,都具備極強的英語能力,因此在語言上幾乎沒有障礙,容易熟悉和了解西方國家的種種信息)。這也正是中國軟件業(yè)“小作坊式”發(fā)展的最根本原因(英語是擺在眾多國內(nèi)程序設(shè)計人員的“珠穆朗瑪峰”)。然而,漢語是世界上使用最廣的語言,全世界每四個人中就有一個懂中文,因此,中文編程語言的產(chǎn)生和推廣符合億萬華人的心愿。漢編語言正是采用完全符合中文表達方式和思維習慣的漢語來編寫各種程序,讓程序員徹底告別那費澀難解英文語法和莫名其妙的西方習慣,輕輕松松的編寫出自己心中的各種軟件。
?? ??2、數(shù)摞是漢編語言獨有的概念,它是在內(nèi)存中開辟出的一個空間,它不僅是漢編程序運行中數(shù)據(jù)處理的場所,也是數(shù)據(jù)臨時存儲的場所,還是各模塊間參數(shù)傳遞的場所。數(shù)摞結(jié)構(gòu)的引入既統(tǒng)一了程序中各參數(shù)的臨時存儲場所和格式,也讓程序員能夠同步跟蹤并調(diào)試程序的運行。而在C語言中所有這些工作只能交給編譯器,一旦出現(xiàn)錯誤,調(diào)試工作只能從零開始。(誠然,在C語言中提供了所謂的Debug程序,然而效果卻……)。
?????3、漢編語言是編譯解釋合一的語言:一般地,高級語言編寫的程序并不能直接在計算機上運行,而需要先“轉(zhuǎn)換”為某種“可識別”的方式,通常情況下,有兩種不同的途徑:編譯(翻譯)、解釋(軟件模擬),也因此,我們將語言分為編譯型語言、解釋型語言兩類。C、C++、FORTRAN屬于編譯型語言,編譯型語言所編寫的程序在執(zhí)行前需先轉(zhuǎn)化為目標代碼(擴展名為.obj),然后再生成可執(zhí)行程序(擴展名為.exe)。編譯型語言所編寫的程序執(zhí)行效率高,然而程序的調(diào)試難,而且編譯器非常復(fù)雜、龐大;用解釋型所編寫的程序在執(zhí)行過程中并不產(chǎn)生機器代碼,程序逐行讀入,逐行解釋,逐行執(zhí)行。解釋型語言程序的可讀性強,調(diào)試程序容易,但是程序的執(zhí)行效率很低,因此也限制的它的應(yīng)用。漢編語言融合了兩種語言的優(yōu)點,內(nèi)建編譯解釋合一環(huán)境,為程序員提供了一個非常自由的編程空間,也為漢編程序應(yīng)用于各行各業(yè)提供了有利的保障,有著非常廣闊的市場前景。
?????4、?對于C語言初學(xué)者來說,最頭痛的莫過于那15層的優(yōu)先級,即使是熟練的程序員也不得不將C語言的優(yōu)先級作為“工具書”,以便查閱。而C語言編譯器在編譯程序時,碰到優(yōu)先級只能按照后綴表示法逐層取消優(yōu)先級,因此,優(yōu)先級的使用不僅增加了初學(xué)者的難度,而且影響了C語言程序的執(zhí)行效率。漢語程序設(shè)計語言徹底的取消了“雞肋式”的優(yōu)先級,直接采用逆波蘭表示法(俗稱后綴表示法),提高了程序的執(zhí)行效率(程序的執(zhí)行效率實時領(lǐng)域是最關(guān)鍵的因素),也降低了初學(xué)者的難度。
????? 5、?學(xué)過C語言的人都知道,設(shè)計一個C程序的第一步就是定義若干變量,然后圍繞變量進行各種“黑箱”的處理,而各種中間狀態(tài)對用戶“保密”。漢編語言對變量的采用比較謹慎,變量并非程序設(shè)計的“必要條件”,而是把選擇權(quán)交給程序員,同時,一個普通的漢編程序完全可以在不定義任何變量的情況下勝任各種工作,此外,對于變量,使用起來也非常靈活,跟蹤調(diào)試也很方便。 ????? 6、?漢編語言應(yīng)用面非常廣。
?????7、?在C語言中,那32個關(guān)鍵詞是絕對保留的“紫禁城”,編譯系統(tǒng)絕對禁止任何程序(哪怕是臨時的)修改關(guān)鍵詞,關(guān)鍵詞的含義和表達習慣或許符合研制者的思維習慣,但它不一定符合大多數(shù)人的習慣,所以,用戶只能被動的去理解和使用也許并不符合自己習慣的語言。而漢編語言非?!爸t虛、大方”的賦予了用戶這個權(quán)力,不但允許用戶臨時修改任意一個關(guān)鍵詞,而且允許用戶將修改過的結(jié)果保存到整個系統(tǒng)。這樣,用戶可以根據(jù)自己的需要和特點“量體裁衣”的“定制”相應(yīng)的漢編系統(tǒng),“海闊憑魚躍,天高任鳥飛”也許正是漢編程序員的貼心感受。(前提條件是遵守漢語語言程序設(shè)計最終用戶許可協(xié)議,參見《漢語編程系統(tǒng)用戶許可協(xié)議》)。
???? 8、漢編語言能夠兼容多種流行軟件,同時,支持各種文本編輯器來編寫漢編程序,可擴展性強,同時采用獨特的內(nèi)核結(jié)構(gòu),有著很好的安全性和穩(wěn)定性。
????9、完全結(jié)構(gòu)化的程序設(shè)計思想:絕大部分程序設(shè)計語言保留了goto語句(C語言也不例外)來擴充自身的功能,受到了人們的長期指責。越來越多的人接受并理解結(jié)構(gòu)化程序設(shè)計思想,而且結(jié)構(gòu)化程序設(shè)計和取消goto語句幾乎成了“同義詞”(goto語句破壞了程序的結(jié)構(gòu),使程序變得費澀難解)。漢編語言完全摒棄了goto語句和類goto語句等影響程序結(jié)構(gòu)的成分,并以其精巧的內(nèi)核輕松實現(xiàn)那些傳統(tǒng)語言需借助goto語句才能實現(xiàn)的算法和結(jié)構(gòu)。因此說漢編語言是一種真正的結(jié)構(gòu)化程序設(shè)計語言。
??? 10、漢編語言采用了多種先進的編程思想,最值得一提的是有漢編特色的面向?qū)ο缶幊趟枷?#xff0c;在大型程序的編制過程表現(xiàn)出非常明顯的優(yōu)勢。
總結(jié)
 
                            
                        - 上一篇: is 简写 缩写_学会这些英语缩写,不用
- 下一篇: 为什么做抓包测试 及抓包 http
