嵌入式語言概況
嵌入式系統(tǒng)應(yīng)用越來越廣泛,目前,在嵌入式系統(tǒng)開發(fā)過程中使用的語言種類有很多,但僅有少數(shù)的幾種語言得到了比較廣泛的應(yīng)用,主要有Ada、C/C++等。
Ada語言
Ada語言是20世紀(jì)70年代美國國防部開發(fā)并投入使用的功能強(qiáng)大的通用系統(tǒng)開發(fā)語言,最初為Ada83。它支持模塊化、獨(dú)立編譯、協(xié)處理等功能,其可靠性、可維護(hù)性、可讀性都是相當(dāng)好的。后來,為了更好地支持OOP(Object-Oriented Programming),對其進(jìn)行了改進(jìn),形成了目前廣泛使用的Ada95。使用Ada語言可以大大改善系統(tǒng)的清晰性、可靠性、可維護(hù)性等性能指標(biāo)。它是美國國防部指定的唯一一種可用于軍用系統(tǒng)開發(fā)的語言。
嵌入式C語言就是針對嵌入式開發(fā)的C語言,其與標(biāo)準(zhǔn)c語言并非有什么大的差別,而在于其使用上我們考慮的角度不同,使用上的習(xí)慣不同。如嵌入式c語言開發(fā)會更在乎效率和內(nèi)存有效使用等。
而涉及的嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)和各行各業(yè)的具體應(yīng)用相結(jié)合的產(chǎn)物,這就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)
C語言既具有匯編語言的效率,又具有高級語言的易編程性,最具代表性的應(yīng)用就是UNIX操作系統(tǒng),從20世紀(jì)80年代中期C語言涉足實(shí)時系統(tǒng)之后,就受到了普遍的歡迎,是目前使用最廣泛的嵌入式系統(tǒng)編程語言。
C++
C++在支持現(xiàn)代軟件工程、oop、結(jié)構(gòu)化等方面對C進(jìn)行了卓有成效的改進(jìn),但是在程序代碼容量、執(zhí)行速度和程序復(fù)雜程度等方面比C語言程序性能差一些。
ASP
微軟的Active Server Pages(ASP)是服務(wù)器端腳本編寫環(huán)境,通過ASP我們可以結(jié)合HTML網(wǎng)頁、其他腳本命令指令和ActiveX元件建立動態(tài)、交互且高效的WEB服務(wù)器應(yīng)用程序。有了ASP你就不必?fù)?dān)心客戶的瀏覽器是否能運(yùn)行你所編寫的代碼,因?yàn)樗械某绦蚨紝⒃诜?wù)器端執(zhí)行,包括所有嵌在普通HTML中的腳本程序。當(dāng)程序執(zhí)行完后,服務(wù)器僅將執(zhí)行的結(jié)果返回給客戶,這樣也就減輕了客戶端瀏覽器的負(fù)擔(dān),大大提高了交互的速度。
與一般的程序不同,ASP程序無須編譯,ASP程序的控制部份是使用VBSeript、Java、Script等腳本語言來設(shè)計(jì)的,當(dāng)執(zhí)行ASP程序時,腳本程序?qū)⒁徽酌畎l(fā)送給腳本解釋器(即腳本引擎),由腳本解釋器進(jìn)行翻譯并將其轉(zhuǎn)換成服務(wù)器所能執(zhí)行的命令。當(dāng)然,同其他編程語言一樣,ASP程序的編寫也遵循一定的規(guī)則,如果想使用你所喜愛的腳本語言編寫ASP程序,那么你的服務(wù)器上必須要有能解釋這種腳本語言的腳本解釋器。當(dāng)安裝ASP時,系統(tǒng)提供了兩種腳本語言:VBsrcipt和Javaseript,而VBscript則被作為系統(tǒng)默認(rèn)的腳本語言。也可以根據(jù)自己的喜好改變系統(tǒng)默認(rèn)的腳本語言。ASP本身并不是一種腳本語言,它只是提供一種使嵌在HTML頁面中的腳本程序得以運(yùn)行的環(huán)境。ASP程序是以擴(kuò)展名為.a(chǎn)sp的純文本形式存在于WEB服務(wù)器上的,可以用任何文本編輯器打開它,ASP程序中可以包含純文本、HTML標(biāo)記以及腳本命令。只需將.a(chǎn)sp程序放在WEB服務(wù)器的虛擬目錄下(該目錄必須要有可執(zhí)行權(quán)限),就可以通過WWW的方式訪問ASP程序了。腳本是由一系列的腳本命令所組成的,如同一般的程序,腳本可以將一個值賦給一個變量,可以命令WEB服務(wù)器發(fā)送一個值到客戶瀏覽器,還可以將一系列命令定義成一個過程。
腳本語言是一種介乎于HTML和諸如Java、Visual Basic、C++等編程語言之間的一種特殊語言,盡管它更接近后者,但它卻不具有編程語言復(fù)雜、嚴(yán)謹(jǐn)?shù)恼Z法和規(guī)則。,如前所述ASP所提供的腳本運(yùn)行環(huán)境可支持多種腳本語言,譬如:JavaScript、VBscript等,這無疑給ASP程序設(shè)計(jì)者提供了廣泛的發(fā)揮余地,在.a(chǎn)sp程序中(%…%)符號是定界符,而“(script)...(/script)”之間的是腳本語言。ASP不同于腳本語言,它有自己特定的語法,所有的ASP命令都必須包含在(%和%)之內(nèi)。ASP的出現(xiàn)使得廣大WEB程序設(shè)計(jì)者不必為客戶瀏覽器是否支持而擔(dān)心,實(shí)際上就算在同一個.a(chǎn)sp文件中使用不同的腳本語言,都無須為此擔(dān)憂,因?yàn)樗械囊磺卸紝⒃诜?wù)器端進(jìn)行,客戶瀏覽器得到的只是一個程序執(zhí)行的結(jié)果,也只需在.a(chǎn)sp中聲明使用不同的腳本語言即可。就是說Active Server Pages的工作模型是當(dāng)瀏覽器從Web服務(wù)器上請求.a(chǎn)sp文件時,ASP腳本才開始運(yùn)行。然后Web服務(wù)器調(diào)用ASP,ASP全面讀取請求的文件,執(zhí)行所有腳本命令,并將web頁傳送給瀏覽器。由于腳本在服務(wù)器上而不是在客戶端運(yùn)行,傳送到瀏覽器上的Web頁是在Web服務(wù)器上生成的。所以不必?fù)?dān)心瀏覽器能否處理腳本,Web服務(wù)器已經(jīng)完成了所有腳本的處理,并將標(biāo)準(zhǔn)的HTML傳輸?shù)綖g覽器。由于只有腳本的結(jié)果返回到瀏覽器,所以服務(wù)器端腳本不易復(fù)制,保密性好。
JSP
JSP(Java Server Pages)是由Sun公司倡導(dǎo)、許多公司參與建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),其在動態(tài)網(wǎng)頁的建設(shè)中有其強(qiáng)大而特別的功能。JSP是一種很容易學(xué)習(xí)和使用的在服務(wù)器端編譯執(zhí)行的Web設(shè)計(jì)語言,其腳本語言采用Java,完全繼承了Java的所有優(yōu)點(diǎn)。JSP為創(chuàng)建高度動態(tài)的Web應(yīng)用提供了一個獨(dú)特的開發(fā)環(huán)境。
在傳統(tǒng)網(wǎng)頁HTML文件中加入Java程序片段和JSP標(biāo)記,就構(gòu)成了JSP網(wǎng)頁(*.jsp)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HT。ML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送E-mail等,這些都是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無Plug in,無ActiveX,無Java Applet,甚至無Frame。JSP能使你將網(wǎng)頁的動態(tài)部分與靜態(tài)部分有效分開,你只要用你熟悉的任一網(wǎng)頁制作工具,編寫規(guī)則的HTML,然后通過專門的TAG將動態(tài)部分包含進(jìn)來就可以了。除了HTML標(biāo)準(zhǔn)語法,JSP可以有三種主要方式嵌入頁面:腳本元素、指令語法、動作語法。腳本元素規(guī)范將成為Servlet請求部分的Java代碼,指令語法控制SERVLET的整個結(jié)構(gòu),而動作語法規(guī)范要用到的元件(如:Bean),另外還能控制JSP引擎的行為。
JSP與微軟的ASP技術(shù)非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。在ASP或JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴于Web服務(wù)器,而ASP和JSP頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計(jì)和格式化最終頁面。使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識和JavaBean組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識和Bean中,那么其他人,如Web管理人員和頁面設(shè)計(jì)者,能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識和小腳本,生成所請求的內(nèi)容,并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。
PHP
PHP(Personal Home Page)也是一種服務(wù)器端HTML嵌入式腳本描述語言,在語法結(jié)構(gòu)上很像是Perl、Java、C等語言的混合體。PHP嵌入到HTML文件中的標(biāo)記對為:(script language=“PHP”)…(/script)。
PHP是一種服務(wù)器內(nèi)置式的腳本語言,它與客戶端腳本語言VBScript、JavaScript有很大的區(qū)別。PHP腳本工作之前,必須先把它的解釋程序安裝到服務(wù)器上,PHP解釋程序的下載網(wǎng)址為:http://www.php.net。
PHP可以比CGI或者Perl更快速地執(zhí)行動態(tài)網(wǎng)頁。在開發(fā)及維護(hù)的時間上,在與網(wǎng)頁結(jié)合的能力上,PHP與ASP表現(xiàn)都不錯,而在系統(tǒng)的穩(wěn)定性上,PHP比ASP更加成熟。
PHP最強(qiáng)大和最重要的特征是它的數(shù)據(jù)庫集成層,使用它完成一個含有數(shù)據(jù)庫功能的網(wǎng)頁非常簡單??傊?,PHP具有快速學(xué)習(xí)、跨平臺、有良好數(shù)據(jù)庫交互能力、語法簡單、書寫容易、安全性能好等優(yōu)點(diǎn)。
評論