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