時(shí)間:2022-12-17 22:27:54
序論:在您撰寫編程語言時(shí),參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。
關(guān)鍵詞 Java技術(shù);編程設(shè)計(jì);語言研究
中圖分類號(hào) TP3 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 1674-6708(2017)188-0068-02
Java編程技術(shù)是當(dāng)前計(jì)算機(jī)軟件設(shè)計(jì)方面較為常用的方式之一,其具有較強(qiáng)的通用性、高效性和安全性,得到了各大軟件公司的青睞。近年來其廣泛的運(yùn)用在各大PC、數(shù)據(jù)中心中,成為了編程行業(yè)不可或缺的重要工具。相比于C+語言來講,其更易于上手,方便快捷,對(duì)于初學(xué)者來講更具熟練使用的可能性。本文簡(jiǎn)單介紹了Java編程的概念,并對(duì)當(dāng)前Java編程領(lǐng)域存在的問題進(jìn)行了總結(jié)研究,并相對(duì)應(yīng)的提出了筆者的看法,希望其中的拙見能夠?qū)ο嚓P(guān)產(chǎn)業(yè)的發(fā)展做出一份貢獻(xiàn),從而推動(dòng)整個(gè)計(jì)算機(jī)軟件系統(tǒng)的健康發(fā)展。
1 Java編程過程中存在的問題
1.1 Java編程過程中中文字符無法正常顯示
Java編程軟件本非中國制造,其主要針對(duì)的是以英文字符為工具語言的Java編程而設(shè)計(jì),因此在文字切換與適應(yīng)性等領(lǐng)域存在較大的問題。這一問題主要表現(xiàn)在中英外文在同一框架內(nèi)使用時(shí)的兼容性較差、容易出現(xiàn)中文空缺或亂碼現(xiàn)象等。在進(jìn)行中文環(huán)境的Java應(yīng)用的開發(fā)當(dāng)中,由于Java技術(shù)本身的缺陷,一旦出現(xiàn)中外文交互使用的情況時(shí),就有可能出現(xiàn)中文字符信息缺失或無法識(shí)別的情況。例如:網(wǎng)頁制作系統(tǒng)中的中文字符無法正確顯示,出現(xiàn)阿拉伯?dāng)?shù)字亂碼、在bios后臺(tái)系統(tǒng)中出現(xiàn)系統(tǒng)阻礙或漏洞,其文字符號(hào)顯示為“?”等在不同特殊情況下,其表現(xiàn)也往往不大相同。
1.2 Java編程技術(shù)人員技藝不夠精湛,編程過程容易出現(xiàn)細(xì)節(jié)錯(cuò)誤
在20世紀(jì)末期,我國計(jì)算機(jī)軟件的發(fā)展逐步推進(jìn),理論界也開始了進(jìn)一步的討論與研究,Java語言編程相關(guān)技術(shù)在此刻進(jìn)入人們的視野,然而由于技術(shù)水平有限,理論基礎(chǔ)也并不扎實(shí),使得Java編程相關(guān)技術(shù)雖然得以出現(xiàn),但其理論體系發(fā)展并不完善。現(xiàn)如今,由于我國經(jīng)濟(jì)高速發(fā)展,Java編程領(lǐng)域需要大量的技術(shù)人才,但由于Java編程技術(shù)本身屬于舶來品,很多技術(shù)人員在學(xué)習(xí)過程中一知半解,很難在實(shí)際工作中施展拳腳,有效運(yùn)用。在Java編程行業(yè)扎根的技術(shù)人員一定程度上不再充分吸收最新的技術(shù)理念,也封鎖了從各大高校剛剛畢業(yè)的知識(shí)分子進(jìn)入相關(guān)行業(yè)工作的途徑,這使得Java編程技術(shù)的有效傳播與發(fā)展成為奢望。目前的Java編程人員在學(xué)習(xí)該軟件期間并未能做到充分理解、耐心練習(xí)、有效把握。因而在實(shí)踐工作過程中往往會(huì)出現(xiàn)這樣或者那樣的問題。Java編程技術(shù)人員在編程過程中很容易使用錯(cuò)誤或類似的代碼進(jìn)行編程操作,這會(huì)導(dǎo)致編程結(jié)果出現(xiàn)較大偏差,對(duì)相關(guān)軟件使用方產(chǎn)生巨大的經(jīng)濟(jì)財(cái)產(chǎn)損失,類似的失誤林林總總,難以避免,嚴(yán)重制約了相關(guān)技術(shù)的發(fā)展。
1.3 Java編程軟件編程原理落后,需要更新版本,及時(shí)創(chuàng)新
Java編程軟件最初主要以歐美國家為使用方,因此其軟件設(shè)計(jì)、編程習(xí)慣均以歐美人員的慣用風(fēng)格為藍(lán)本。在20世紀(jì)末期,Java編程操作系統(tǒng)傳入中國,相關(guān)研究人員在粗略改動(dòng)下基本沿用了其基礎(chǔ)操作框架,為我國軟件編程行業(yè)賺得了寶貴的“紅利時(shí)期”。然而當(dāng)前我國計(jì)算機(jī)軟件更新迅捷,傳統(tǒng)的操作系統(tǒng)、編程方式似乎難以滿足日益增長的客觀需要。當(dāng)前科學(xué)研究、高校教學(xué)所使用的Java編程模板已經(jīng)難以適應(yīng)當(dāng)代科技發(fā)展需要,出現(xiàn)了一系列的問題,這些問題表現(xiàn)在文字轉(zhuǎn)換的兼容性、版本差異導(dǎo)致的相互不識(shí)別問題等。這些問題促使相關(guān)科研機(jī)構(gòu)進(jìn)一步更新Java主模板,及時(shí)創(chuàng)新,使其適應(yīng)現(xiàn)代化、信息化發(fā)展的需要。
2 解決相應(yīng)問題的措施與方法
2.1 提高Java的中文編碼轉(zhuǎn)換能力,設(shè)立中文
字庫
眾所周知,當(dāng)前編程軟件運(yùn)作均是采用Unicode格式的編碼,而本地網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)默認(rèn)支持的卻極有可能是其他形式的編碼。這要求我國Java編程軟件制造研究機(jī)構(gòu)要及時(shí)更新編碼列表,提高系統(tǒng)中文編碼的識(shí)別轉(zhuǎn)化能力,也要盡可能的設(shè)立中文字庫,通過中外文字符的一一對(duì)應(yīng)提高Java編程軟件的適應(yīng)性與靈活性。要針對(duì)性地改變Java編程軟件的源文件系統(tǒng),有選擇性地加入字庫檢索功能,從而為Java系統(tǒng)的本地化提供基礎(chǔ)與條件,保證在“Java源代碼―Java字節(jié)碼―虛擬機(jī) (JVM)―操作系統(tǒng)―顯示設(shè)備”過程中的每一步都必能夠正確地處理中文
編碼。
2.2 加強(qiáng)專業(yè)技術(shù)培訓(xùn),提高相關(guān)技術(shù)人員的專業(yè)水平
Java編程技術(shù)當(dāng)前已經(jīng)取得了較大進(jìn)展,但由于我國相關(guān)技術(shù)領(lǐng)域開展較晚,對(duì)很多基礎(chǔ)知識(shí)的了解不足,這使得編程人員在未能良好掌握基礎(chǔ)的前提下就投入了實(shí)際的工作之中。想要解決技術(shù)人員專業(yè)水平不足的問題,最佳方法便是在工作之余推行廣泛的專業(yè)技術(shù)培訓(xùn),在學(xué)中進(jìn)行工作,在工作中熟練所學(xué)知識(shí)。要定期對(duì)國際先進(jìn)編程技術(shù)進(jìn)行展望,定期邀請(qǐng)國際頂尖編程技術(shù)管理人員進(jìn)行親身指導(dǎo),要時(shí)刻注重優(yōu)秀人才的引進(jìn)。相關(guān)計(jì)算機(jī)軟件科研機(jī)構(gòu)應(yīng)當(dāng)選派本機(jī)構(gòu)內(nèi)優(yōu)秀科研人才進(jìn)入國際頂尖科研機(jī)構(gòu)進(jìn)行交換學(xué)習(xí),也可國內(nèi)交換,從而增強(qiáng)相應(yīng)機(jī)構(gòu)間對(duì)于Java編程理論的掌握與創(chuàng)新能力。要注重相關(guān)學(xué)界的理論創(chuàng)新,對(duì)有特殊才能的社會(huì)人員、青年學(xué)生果斷錄用,從而為Java編程領(lǐng)域的發(fā)展儲(chǔ)備人才。
2.3 更新Java編程軟件技術(shù),及時(shí)創(chuàng)新
Java編程軟件需要隨著時(shí)間的發(fā)展而自我完善,中國編程技術(shù)要想進(jìn)一步發(fā)展就需要行業(yè)整體提高對(duì)Java編程的理解和應(yīng)用能力。當(dāng)前Java編程軟件大多以Unicode格式的編碼為主要字符,與中文字符進(jìn)行交互使用時(shí)容易出現(xiàn)各種漏洞。相關(guān)技術(shù)人員的任務(wù)便是改變這一格局,創(chuàng)新使用其他編碼符號(hào),并且對(duì)軟件運(yùn)作機(jī)制與框架進(jìn)行創(chuàng)新研究,一改原有的源代碼與操作模式,通過后臺(tái)操作提高軟件運(yùn)作效率與質(zhì)量。充分引進(jìn)歸國技術(shù)人才,將先進(jìn)操作模式與技巧引入編程系統(tǒng),進(jìn)一步簡(jiǎn)化軟件使用方法,更新使用界面,使得相關(guān)軟件的使用方式中國化、簡(jiǎn)單化,符合廣大中國編程工作者的使用
習(xí)慣。
3 結(jié)論
Java編程語言產(chǎn)生于交錯(cuò)復(fù)雜的網(wǎng)絡(luò)環(huán)境之中,其要求Java語言編輯能夠?qū)Χ鄧淖诌M(jìn)行有效的處理,當(dāng)前Java編程技術(shù)尚不能做到這一點(diǎn),這就要求相關(guān)技術(shù)人員能夠有效地進(jìn)行技術(shù)創(chuàng)新,將多國語言識(shí)別的合理內(nèi)核進(jìn)行總結(jié),從而改善Java編程軟件的整體運(yùn)行機(jī)制。Java編程技術(shù)對(duì)整個(gè)計(jì)算機(jī)軟件的發(fā)展歷史來講意義重大,對(duì)于整個(gè)計(jì)算機(jī)軟件市場(chǎng)也產(chǎn)生了極大地變革。有效處理Java編程語言難題能夠幫助相關(guān)產(chǎn)業(yè)朝著良好的方向進(jìn)行發(fā)展。筆者在文中正是基于這樣的考慮,拋磚引玉,希望上文內(nèi)容能夠櫬蠹曳⒒右患賈長留下助力,在此期盼我國Java技術(shù)領(lǐng)域能夠有更大的
發(fā)展。
參考文獻(xiàn)
[1]馮中毅,董海棠,岳建斌.Java Web開發(fā)中的亂碼問題分析及解決方案研究[J].科技信息,2013(19):92.
關(guān)鍵詞:?jiǎn)纹瑱C(jī);編程
中圖分類號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2007)03-10765-01
1 引言
隨著單片機(jī)技術(shù)日新月益的發(fā)展,學(xué)習(xí)它的人可是越來越多了。對(duì)于初學(xué)者來說,好多人一開始總會(huì)被單片機(jī)的各種各樣的編程語言搞糊涂了。因?yàn)閱纹瑱C(jī)目前的編程語言常見的有四種,即匯編語言、C語言、PL/M和BASIC。究竟要學(xué)哪一種編程語言好呢?我們先來做個(gè)比較吧。
2 單片機(jī)的BASIC編程語言
BASIC是一種高級(jí)語言,它的英文含義是“初學(xué)者通用符號(hào)指令代碼”,是在1965年5月,由美國科學(xué)家托馬斯?庫爾茲研制出來的。10多年后,微軟公司把它移植到微型機(jī)上。幾十多年來,BASIC語言一直被認(rèn)為是初學(xué)編程的語言。它已經(jīng)由QBASIC發(fā)展到VB#版本,具備了很多結(jié)構(gòu)化思想和編程方式,如函數(shù)、模塊、局部變量、全局變量、數(shù)據(jù)傳遞等。早期的BASIC語言由于生成的代碼不是最終目標(biāo)機(jī)器的代碼,而是經(jīng)過一個(gè)RUNTIME程序解釋后運(yùn)行的,所以執(zhí)行效率低。而單片機(jī)的BASIC編譯器是直接將程序代碼編譯成相應(yīng)芯片的機(jī)器碼,不需要在單片機(jī)的內(nèi)存中駐留RUNTIME程序,執(zhí)行效率與其他編譯器編譯出來的一樣。
我們現(xiàn)在以MCS-Electronics公司開發(fā)出來的BASCOM-8051開發(fā)環(huán)境為例,簡(jiǎn)要介紹一下以BASIC語言為基礎(chǔ)的單片機(jī)編程系統(tǒng)。
它和一般BASIC語言一樣具有如:For、To、Step、If、Else、End 、Select Case等等命令,其用法及功能是沒有什么區(qū)別的,因此初學(xué)者比較容易入門。
另外,它還有針對(duì)單片機(jī)硬件所設(shè)計(jì)的命令如:LCD命令可以用一條命令來實(shí)現(xiàn)LCD的顯示操作。
Cls '清LCD屏
Lcd"Hello world." '向LCD輸入字符串
類似于這樣的命令主要是提供了直接對(duì)單片機(jī)及其外部硬件的操作,特別是提供了對(duì)單片機(jī)端口的直接操作,如:P1、P2、P2.1、P0.3等等,簡(jiǎn)化了整個(gè)開發(fā)過程,是開發(fā)人員重點(diǎn)學(xué)習(xí)的部分。
例如有硬件電路如圖(1)所示,編程使發(fā)光二極管間隔兩秒鐘閃爍一次的程序如下:
While I = 2
P1.0 = Not P1.0
Wait I
Wend
End
3 單片機(jī)的PL/M編程語言
PL/M 語言是Intel公司從8080微處理器開始為其系列產(chǎn)品開發(fā)的編程語言,其特點(diǎn)是:
3.1 簡(jiǎn)單易學(xué)
PL/M-51語言只有兩類語句:一類是說明語句,用于說明變量和過程;另一類是可執(zhí)行語句,如賦值語句、條件語句和循環(huán)語句等。這些語句的功能和BASIC語言中相應(yīng)的語句相似,如:
P1=02H;/*賦值語句*/
IF M>2 THEN N=P1;/*條件語句*/
DO I=0 TO 10;/*循環(huán)語句 */
3.2 可讀性好
PL/M-51是一種結(jié)構(gòu)化語言,其程序是塊式結(jié)構(gòu),可采用縮進(jìn)式方法書寫源程序,使程序?qū)哟吻宄?,便于理解和閱讀。一個(gè)完整的程序可由多個(gè)模塊組成,而每個(gè)模塊又是由多個(gè)程序塊構(gòu)成。
3.3 可靠性高
PL/M-51編譯軟件檢查用戶程序?qū)纹瑱C(jī)的各種資源使用情況,對(duì)沖突使用情況或不合理使用情況能提出警告,并能自動(dòng)為用戶程序合理分配內(nèi)存。
3.4 隔離性好
PL/M-51中,既可有全局的靜態(tài)變量,也可有局部的動(dòng)態(tài)變量,對(duì)于全局性的靜態(tài)變量,其性質(zhì)和BASIC中的變量一樣,該變量在整個(gè)程序中均有效。對(duì)于局部的動(dòng)態(tài)變量,它只有在其所說明的程序塊中或過程中有效,在該程序塊或過程之外則無效。局部動(dòng)態(tài)變量的特點(diǎn)是,當(dāng)由多個(gè)人共同編制一個(gè)程序中的不同模塊時(shí),而不必?fù)?dān)心是否使用了相同的標(biāo)識(shí)符而發(fā)生沖突。模塊化的程序設(shè)計(jì)增加了程序設(shè)計(jì)的靈活性的方便性。
3.5 兼容性好
PL/M-51可同匯編語言或其他語言的目標(biāo)模塊連接起來,生成可執(zhí)行代碼如果用戶必須使用匯編語言編制一段程序,或是想利用已調(diào)好的匯編語言程序塊,那么該段匯編可以很方便地連接到PL/M-51程序目標(biāo)塊中。
3.6 具有良好的算法庫和庫管理能力
PL/M-51語言具有INTEL公司所提供的算法庫和庫管理功能用戶能利用現(xiàn)成的算法庫完成加、減、乘、除等運(yùn)算,并能建立自己的特定算法庫,使得編程一勞永逸,提高軟件的開發(fā)效率。
由上面幾點(diǎn)可見,PL/M語言是類似于Pascal一種語言,是一種結(jié)構(gòu)化語言。PL/M編譯器好像匯編器一樣可產(chǎn)生緊湊代碼,可以說它是一種"高級(jí)匯編語言",可詳細(xì)控制著代碼的生成。但對(duì)51系列的單片機(jī)來說,PL/M不支持復(fù)雜的
算術(shù)運(yùn)算、浮點(diǎn)變量而無豐富的庫函數(shù)支持。學(xué)習(xí)PL/M無異于學(xué)習(xí)一種新語言。
4 單片機(jī)的匯編語言
匯編語言是一種用文字助記符來表示機(jī)器指令的符號(hào)語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點(diǎn)是占用資源少,程序執(zhí)行效率高,由于它一條指令就對(duì)應(yīng)一條機(jī)器碼,每一步的執(zhí)行動(dòng)作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。但是不同的類型的單片機(jī),其匯編語言可能有點(diǎn)差異,所以不易移植。比如你在PIC12CE518單片機(jī)上用匯編語言編了一個(gè)程序,到了STC89C51單片機(jī)上那可就運(yùn)行不了,因?yàn)樗麄兊闹噶钕到y(tǒng)是有區(qū)別的。
單片機(jī)的匯編語言非常像其他匯編語言。指令系統(tǒng)比第一代微處理器要強(qiáng)一些。但單片機(jī)擁有不同存儲(chǔ)區(qū)域使得其編程變得復(fù)雜一些,可是作為一位電子工程師,懂得匯編語言就可幫助你了解影響任何語言效率的特殊規(guī)定。例如,懂得匯編語言指令就可以使用在片內(nèi)RAM作變量的優(yōu)勢(shì),因?yàn)槠庾兞啃枰獛讞l指令才能設(shè)置累加器和數(shù)據(jù)指針進(jìn)行存取。同樣的,當(dāng)要求使用浮點(diǎn)數(shù)和啟用函數(shù)時(shí)也只有具備匯編編程經(jīng)驗(yàn)才能避免生成龐大的、效率低的程序,對(duì)于這方面的編程,沒有匯編語言是做不到的。
5 單片機(jī)的C語言
單片機(jī)的C語言是一種編譯型程序設(shè)計(jì)語言,它兼顧了多種高級(jí)語言的特點(diǎn),并具備匯編語言的功能。C語言具有功能豐富的庫函數(shù),運(yùn)算速度快,編譯效率高,有良好的可移植性,而且可以實(shí)現(xiàn)直接對(duì)系統(tǒng)硬件的控制。此外,C語言程序具有完整的程序模塊結(jié)構(gòu),從而為軟件開發(fā)中采用模塊化程序設(shè)計(jì)方法提供了有力的保障。與匯編相比,有如下優(yōu)點(diǎn):
(1)對(duì)單片機(jī)的指令系統(tǒng)不要求了解,僅要求對(duì)51的存儲(chǔ)器結(jié)構(gòu)有初步了解,至于寄存器分配、不同存儲(chǔ)器的尋址及數(shù)據(jù)類型等細(xì)節(jié)均由編譯器管理。
(2)程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù)。這種方式可使程序結(jié)構(gòu)化,將可變的選擇與特殊操作組合在一起,改善了程序的可讀性。
(3)編程及程序調(diào)試時(shí)間顯著縮短,從而提高效率。 提供的庫包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能將已編好程序可容易的植入新程序,因?yàn)樗哂蟹奖愕哪K化編程技術(shù)。
單片機(jī)C語言作為一種非常方便的語言而得到廣泛的支持,C語言程序本身并不依賴于機(jī)器硬件系統(tǒng),基本上不做修改就可根據(jù)單片機(jī)的不同較快地移植過來。
綜上所述,單片機(jī)的四種編程語言各有各的優(yōu)缺點(diǎn),作為單片機(jī)初學(xué)者,筆者認(rèn)為還是應(yīng)該先學(xué)習(xí)匯編語言,不一定要學(xué)得很精很熟悉,但要有一定的了解。因?yàn)閰R編語言程序除了具有簡(jiǎn)潔明快、跳躍性強(qiáng)、占ROM資源少等優(yōu)點(diǎn)以外,還因它和單片機(jī)底層硬件緊密聯(lián)系,可以讓初學(xué)者更加了解單片機(jī)硬件系統(tǒng)各種資源,熟悉各個(gè)功能模塊的作用,從而為編出更高效率的程序打好扎實(shí)的基礎(chǔ)。
用單片機(jī)匯編語言編寫的程序代碼效率高,但學(xué)習(xí)起來相對(duì)難度較大,而且對(duì)于一個(gè)大型項(xiàng)目,如果完全采用匯編語言來編程,就顯得很繁瑣,尤其是遇到算法方面的問題時(shí),匯編語言根本就應(yīng)付不了。況且現(xiàn)在單片機(jī)的主頻在不斷的提高,在高頻率時(shí)鐘的作用下,我們完全不需要那么高效率的代碼;另外,單片機(jī)的ROM和RAM空間也在不斷的增加,足夠裝得下你用C語言寫的任何程序代碼,單片機(jī)C語言相關(guān)的資料又多又好找,可移植性非常好,比如只需要改變一個(gè)IO口寫個(gè)溫度傳感器的程序在任何一個(gè)單片機(jī)上都能使用。由此可見用單片機(jī)C語言進(jìn)行程序設(shè)計(jì),已成為單片機(jī)軟件開發(fā)的一個(gè)主流,作為一個(gè)技術(shù)全面并涉足較大規(guī)模的軟件系統(tǒng)開發(fā)的單片機(jī)開發(fā)人員最好能夠掌握基本的C語言編程。
當(dāng)然,有時(shí)候用單片機(jī)C語言也不能夠?qū)崿F(xiàn)所有要編寫程序的功能,比如當(dāng)想編寫一個(gè)精確控制的定時(shí)程序時(shí),用起匯編語言來還是比較方便的。因此想成為一個(gè)優(yōu)秀的單片機(jī)編程技術(shù)員,最好就是能懂得單片機(jī)C語言和匯編語言的混合編程。
參考文獻(xiàn):
[1]藍(lán)點(diǎn)方舟科技網(wǎng). . 8051系列單片機(jī)BASIC語言開發(fā)環(huán)境簡(jiǎn)介[Z].
[2]/. PL/M-51高級(jí)語言特點(diǎn)[Z].
[3]王杰潔,耿英杰. 單片機(jī)C語言和匯編語言的簡(jiǎn)單比較[Z].
全書分為18個(gè)部分,共50章:第1部分 判定和規(guī)則,含第1-3章:1.語法對(duì)象;2.感應(yīng)定義;3.假設(shè)與一般性判斷。第2部分 靜力學(xué)和動(dòng)力學(xué),含第4-7章:4.靜態(tài)類型變量;5.動(dòng)態(tài)類型變量;6.變量的類型安全;7.動(dòng)態(tài)評(píng)估。第3部分 函數(shù)類型,含第8-10章:8.函數(shù)的定義和值;9.Gdel的T介紹;10.Plotkin的PCF介紹。第4部分 有限數(shù)據(jù)類型,含第11-14章:11.積類型;12.和類型;13.模式匹配;14.泛型編程。第5部分 無限數(shù)據(jù)類型,含第15-16章:15.感應(yīng)及傳導(dǎo)類型;16.遞歸類型變量。第6部分 動(dòng)力學(xué)類型,含第17-19章:17.非類型化λ演算;18.動(dòng)態(tài)類型變量;19.混合類型變量。第7部分 變量類型,含第20-22章:20.Girard的F系統(tǒng);21.摘要類型;22.構(gòu)造函數(shù)和種類。第8部分 亞型,含第23-24章:23.亞型;24.單種。第9部分 類和方法,含第25-26章:25.動(dòng)態(tài)調(diào)度;26.繼承。第10部分 例外和延續(xù),含第27-29章:27.堆??刂疲?8.例外;29.繼續(xù)。第11部分 含第30-31章:30.建設(shè)性邏輯;31.經(jīng)典邏輯。第12部分 符號(hào),含第32-34章:32.符號(hào);33.流體綁定;34.動(dòng)態(tài)分級(jí)。第13部分 狀態(tài),含第35-36章:35.現(xiàn)代化語言;36.分配參考。第14部分 懶惰,含第37-38章:37.懶惰評(píng)價(jià);38.極化。第15部分 并行,含第39-40章:39.嵌套并行;40.未來及預(yù)測(cè)。第16部分 并發(fā)式語言,含第41-43章:41.流程積分;42.并發(fā)式語言;43.分布式語言。第17部分 模塊化,含第44-46章:44.組件;45.抽象類型和類型類;46.層次結(jié)構(gòu)和參數(shù)。第18部分 推理方程式,含第47-50章:47.T的推理方程式;48.PCF的推理方程式;49.參數(shù)化;50.過程等價(jià)。
作者Robert Harper現(xiàn)任職于賓夕法尼亞的卡內(nèi)基 - 梅隆大學(xué),他的研究興趣主要集中在類型理論,證明論和范疇論應(yīng)用到編程語言的語義和實(shí)現(xiàn)。發(fā)表的論文包括正確編譯多態(tài)性與動(dòng)態(tài)類型、ACM研究:高效的緩存算法功能、結(jié)構(gòu)和計(jì)算機(jī)程序的效率等;參與的講座有美國印第安納大學(xué)計(jì)算機(jī)科學(xué)系特聘講座、LICS/ MFPS聯(lián)席會(huì)議等。
本書通過類型理論提供了編程語言基本知識(shí)的新觀點(diǎn)。大多數(shù)教科書強(qiáng)調(diào)分類,而本書強(qiáng)調(diào)遺傳學(xué)這一新的視角,可擴(kuò)展的理論框架有直接的實(shí)際應(yīng)用。讀者僅需要初等數(shù)學(xué)的知識(shí)便可閱讀此書。本書適合編程理論、計(jì)算機(jī)程序方面的研究人員、研究生閱讀參考。
李亞寧,碩士研究生
(中國科學(xué)院自動(dòng)化研究所)
關(guān)鍵詞:單片機(jī);編程語言
中圖分類號(hào):TP313文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1007-9599 (2010) 04-0000-01
Comparison on Various Microcontroller Programming Languages
Zhou Hao
(China West Normal University, Physics and Electronic Information College,Nanchong 637002,China)
Abstract:MCU applications now is gradually expanding,meanwhile microcontroller programming language can be used for it is also more and more, the most commonly used languages are C language, PL / M. and the BASIC language, etc. This paper will give a variety of Comparison of these languages and strengths and weaknesses, to provide quick and easy path for beginners.
Keywords:Single chip micyoco(MCU);Programming language
一、引言
隨著計(jì)算機(jī)技術(shù)和產(chǎn)業(yè)的不斷發(fā)展,單片機(jī)的優(yōu)點(diǎn)和特性十分突出,其應(yīng)用領(lǐng)域也非常廣泛。下面分別對(duì)匯編語言、C語言、PL/M.和BASIC等4種語言做個(gè)對(duì)比,讓大家對(duì)這4總語言有一個(gè)較為清晰的認(rèn)識(shí)。
二、匯編語言
匯編語言是是最接近機(jī)器碼的一種語言,它用來表示機(jī)器指令的符號(hào)語言,一種用文字助記符。占用資源少是其主要優(yōu)點(diǎn),程序執(zhí)行效率高。匯編語言調(diào)試起來也比較方便是因?yàn)樗粭l指令就對(duì)應(yīng)一條機(jī)器碼,每一步的對(duì)應(yīng)都很清楚,并且程序大小和堆棧調(diào)用情況都容易掌控。但是因?yàn)椴煌念愋偷膯纹瑱C(jī)的指令系統(tǒng)是有區(qū)別的,所以其匯編語言也有些差異,不易移植。單片機(jī)的匯編語言和其他匯編語言也很相像。指令系統(tǒng)比第一代微處理器要好一些。但單片機(jī)編程之所以變得復(fù)雜一些是因?yàn)槠鋼碛胁煌鎯?chǔ)區(qū)域,如果你是一位電子工程師,懂得匯編語言就等于是一個(gè)基礎(chǔ),它可以幫助你了解影響任何語言效率的特殊規(guī)定。
三、單片機(jī)的C語言
單片機(jī)的C語言是一種具備匯編語言功能以及多種高級(jí)語言的編譯型程序設(shè)計(jì)語言。C語言可以直接控制系統(tǒng)硬件,此外還具有許多其他功能。如庫函數(shù)功能多樣,操作運(yùn)算速度快,編譯效率強(qiáng),可移植性也較強(qiáng)。值得一提的是在軟件開發(fā)中如果采用模塊化程序設(shè)計(jì)方法C語言就具有明顯的優(yōu)勢(shì),因其具有完整的程序模塊結(jié)構(gòu)。它與匯編相比,有如下幾大優(yōu)點(diǎn):
(一)程序函數(shù)可互有差異且組織結(jié)構(gòu)規(guī)范,其最大的優(yōu)點(diǎn)就是使程序的可讀性得到很大的提高,程序結(jié)構(gòu)化趨于完善。
(二)模塊化編程技術(shù)使得其數(shù)據(jù)處理力較強(qiáng),它能將已編好的程序輕松的植入新程序且所需要的編程及程序調(diào)試周期短,效率高。
(三)C語言程序最大的優(yōu)點(diǎn)就是它不依賴于機(jī)器硬件系統(tǒng),因此它能較快地移植且不做修改。
(四)它是一種中級(jí)語言。他具有承上啟下功能,上則具有高級(jí)語言的基本結(jié)構(gòu)和語句,下則具備低級(jí)語言的實(shí)用性,他可以對(duì)位、字節(jié)和地址進(jìn)行操作,就像匯編語言,上述三個(gè)地址是計(jì)算機(jī)最基本的工作單元。
(五)它是結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,有
各種各樣的數(shù)據(jù)類型,這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?便于使用、維護(hù)以及調(diào)試。
(六)C語言功能齊全。具并引入了指針概念,可使程序效率更高。另外C
語言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。
四、PL/M編程語言
PL/M語言具有以下幾大優(yōu)點(diǎn):
(一)具有較好的可讀性
模塊式的程序,結(jié)構(gòu)化的語言以及縮進(jìn)式的書寫方法,這都使得其可讀性提高。一個(gè)大型的程序是由多個(gè)模塊組成的,而在每一個(gè)模塊下面又分布著多個(gè)程序塊,這樣每個(gè)程序塊負(fù)責(zé)一部分功能,各司其責(zé),即縮短了編程時(shí)間又提高了程序設(shè)計(jì)的靈活性。
(二)具有較好的可依賴性
如果程序中有沖突使用或不合理使用時(shí)其能在提出警告的同時(shí)自動(dòng)為用戶程序重新合理分配內(nèi)存,給使用者帶來了方便也有效地節(jié)約了空間資源。
(三)具有較好的結(jié)合性
局部動(dòng)態(tài)變量是指一個(gè)程序中的不同模塊由多個(gè)人共同編制,但其不會(huì)因?yàn)槭褂昧讼嗤臉?biāo)識(shí)符而發(fā)生沖突,從而減小了工作量.全局的靜態(tài)變量不像局部動(dòng)態(tài)變量那樣在所說明的程序塊中有效而在其以外無效,它是在整個(gè)程序中都有效,而PL/M正是這兩者的結(jié)合。
(四)具有較好的兼容性
PL/M程序可以使用戶方便地連接某段特定的匯編語言程序并生成可執(zhí)行代碼。
(五)BASIC編程語言
BASIC譯成中文是“初學(xué)者通用符號(hào)指令代碼”,它是由美國科學(xué)家托馬斯庫爾茲研制出來的,后由微軟公司把它應(yīng)用到微型機(jī)上,BASIC一直被定義為初學(xué)者最合適的編程語言,它的最大特點(diǎn)及優(yōu)點(diǎn)就是容易入門,現(xiàn)在BASIC語言也包括了很多結(jié)構(gòu)化程序及編程方式。例如,局部變量,全局變量,數(shù)據(jù)傳遞,函數(shù),模塊等。
一、變量與函數(shù)的相互調(diào)用
c語言可以調(diào)用匯編子程序和匯編語言中定義的變量。但要注意由于。編譯后的目標(biāo)文件自動(dòng)地在函數(shù)名和變量名前加一個(gè)下劃線,所以在匯編語言中調(diào)用C語言的函數(shù)和變量時(shí),應(yīng)在函數(shù)名和變量名前加一下劃線。在匯編語言程序開始部分,應(yīng)對(duì)調(diào)用的函數(shù)和變量用EXTERN加以說明。
二、調(diào)用者與被調(diào)用者的參數(shù)傳遞
這種數(shù)據(jù)傳遞通過堆棧完成,在執(zhí)行調(diào)用時(shí)從調(diào)用程序參數(shù)表中的最后一個(gè)參數(shù)開始,即從右到左自動(dòng)依次壓人堆棧;將所有參數(shù)壓人堆棧后,再自動(dòng)將被調(diào)用程序執(zhí)行結(jié)束后的返回地址(斷點(diǎn))壓人堆棧,以使被調(diào)程序結(jié)束后能返回主調(diào)程序的正確位置而繼續(xù)執(zhí)行。進(jìn)人匯編子程序后,為了能正確獲取主調(diào)程序并存人堆棧中的數(shù)據(jù),被調(diào)的匯編子程序先后要做如下一些工作:
l、保存sp的副本進(jìn)人匯編子程序后,子程序中免不了要有壓棧和出棧的操作,故sP時(shí)刻在變化。為了能用SP訪問堆棧中的參數(shù),安全辦法是一進(jìn)人子程序后,先為SP制副本,以后對(duì)傳遞參數(shù)的訪問都用副本進(jìn)行。一般可用BP保存SP,如:pushbPmovbP,sp
2、保留數(shù)據(jù)空間如果匯編子程序中需要一些局部數(shù)據(jù),可以簡(jiǎn)單地減小SP的值,以便在棧空間中保留出一段存貯區(qū),用于存放局部數(shù)據(jù),該區(qū)域須在子程序結(jié)束后恢復(fù)。如下語句可以保留一個(gè)局部數(shù)據(jù)區(qū):pushbPmovbP,spsubsp,spaee;設(shè)spaee=4如上語句段中,SPACE是局部數(shù)據(jù)的總字節(jié)數(shù)。在以后的應(yīng)用中,由于SP是變化的,而BP是固定的,用負(fù)偏移量可以存取局部變量。上例利用BP及偏移量,將兩個(gè)字的局部數(shù)據(jù)初始化為0。
3、保留寄存器值如果在被調(diào)子程序中用到sI、DI等其它寄存器,則應(yīng)先把它們壓人堆棧,以保留寄存器原值。例如,下例就是將SI和DI寄存器的值壓棧:pushbpmoybp,SpsubSp,sPaeePush51Pushdi
4、獲取傳遞參數(shù)BP保留了SP在參數(shù)傳遞完并將BP壓棧后的一個(gè)副本,利用BP可以很方便地訪問各參數(shù)?,F(xiàn)假設(shè)調(diào)用了名為funcl匯編程序模塊的主函數(shù):maln(){……fund(pl,pZ,p3);……}。各參數(shù)都是2字節(jié)的整數(shù)值,返回地址retumaddress,在小模式編譯方式共占用2個(gè)字節(jié)。如果要將傳遞的參數(shù)p卜pZ、p3取出,并分別賦給bx、Cx、dx寄存器,可由下列語句完成這一功能:movbx,[bp+4jmovcx,[bp+6]movdx,[bp+8〕
關(guān)鍵詞:編程語言;雙語教學(xué);Java程序設(shè)計(jì)
1編程語言類課程雙語教學(xué)的建設(shè)現(xiàn)狀
目前,幾乎所有的編程語言都是由歐美國家設(shè)計(jì)和實(shí)現(xiàn)的,它們的幫助文檔、語言規(guī)范說明全都是英文。雖然常用的程序開發(fā)軟件已經(jīng)有漢化版本,也有相應(yīng)的中文幫助文檔,但是漢化或多或少存在不準(zhǔn)確的地方;另外,英語和漢語表達(dá)思維的不同,使得一些編譯和運(yùn)行錯(cuò)誤的提示信息看起來不知所云。因此,在高校推動(dòng)雙語教學(xué)勢(shì)在必行。為了探索有效的教學(xué)方法和模式,切實(shí)提高大學(xué)生的專業(yè)英語水平和直接使用英語從事科研的能力,教育部于2007年至2010年啟動(dòng)了“雙語教學(xué)示范課程建設(shè)項(xiàng)目”,支持建設(shè)503門雙語教學(xué)示范課程。在這些示范課程中,計(jì)算機(jī)專業(yè)課程包括操作系統(tǒng)(原理)、數(shù)據(jù)結(jié)構(gòu)(和算法分析)等約40項(xiàng)課程建設(shè)項(xiàng)目,幾乎囊括了計(jì)算機(jī)主要專業(yè)課程。其中,純編程語言類課程有7項(xiàng),包括計(jì)算機(jī)網(wǎng)絡(luò)編程、C語言程序設(shè)計(jì)、Delphi計(jì)算機(jī)高級(jí)編程技術(shù)、面向?qū)ο蟪绦蛟O(shè)計(jì)等。當(dāng)然,除了這些國家級(jí)的雙語課程建設(shè)項(xiàng)目外,目前我國還存在著各類由省或?qū)W校支持的雙語教學(xué)示范課程項(xiàng)目。整體上看,計(jì)算機(jī)專業(yè)的雙語教學(xué)課程建設(shè)并沒有區(qū)分不同課程的特性。雖然計(jì)算機(jī)專業(yè)課程相比其他人文社科課程而言,更適合進(jìn)行雙語教學(xué),但是,考慮到雙語教學(xué)的師資以及學(xué)生水平現(xiàn)狀,在課程選擇上理應(yīng)有取舍。編程語言類課程的內(nèi)容大部分在講述語言特性和示例程序,幾乎不涉及自然語言交流的模糊性和復(fù)雜性,即減少了英語口頭表達(dá)能力欠缺所導(dǎo)致的障礙,這種“刻板性”使得編程語言類課程非常適合進(jìn)行雙語教學(xué)。
2編程語言類課程雙語教學(xué)模式探索
在組織雙語教學(xué)時(shí),考慮到教學(xué)目標(biāo)、學(xué)生的基礎(chǔ)、師資力量等各方面原因,我們從教材選擇、教學(xué)手段、授課語言等方面,探討一種較為實(shí)際可行的教學(xué)模式。(1) 采取國外優(yōu)秀原版教材與自編講義相結(jié)合的方式。一方面,我們選擇原版優(yōu)秀教材。原版優(yōu)秀教材很多,它們服務(wù)于不同的授課對(duì)象,在選樣時(shí),除了要考慮教學(xué)目標(biāo)外,還要考慮學(xué)生的接受程度。由于學(xué)生的母語是非英語,即使他們通過英語四級(jí)或者六級(jí),閱讀英文專業(yè)知識(shí)的能力仍然欠缺,因此,選擇具有中文譯本的英文教材更好。同時(shí),我們不應(yīng)該完全依賴這些國外優(yōu)秀教材,完全按照其編排順序進(jìn)行授課。許多國外教材的信息量都非常大,知識(shí)點(diǎn)的編排比較分散,我們難以在有限的學(xué)時(shí)內(nèi)按照教材的編排次序推進(jìn)教學(xué)進(jìn)度,這就需要對(duì)教材的內(nèi)容進(jìn)行分析總結(jié),針對(duì)每一節(jié)課的授課目標(biāo),整理成講義,標(biāo)識(shí)出相關(guān)的章節(jié)并在課前發(fā)給學(xué)生預(yù)習(xí)。(2)采取英文板書結(jié)合英文PPT演示的教學(xué)手段。講解編程語言時(shí),特別是講述重要語法點(diǎn)和難點(diǎn)時(shí),采取邊寫程序邊給出解釋的方式,板書代碼的英文注釋強(qiáng)化了該知識(shí)點(diǎn)在學(xué)生大腦中的印象,并能夠帶領(lǐng)學(xué)生進(jìn)一步沉浸在英文思維的氛圍中。同時(shí),利用多媒體技術(shù)進(jìn)行教學(xué),將術(shù)語解釋、語法形式等采用英文PPT演示的形式放映,可以將教師從一些繁瑣的板書中解脫出來,節(jié)省教學(xué)時(shí)間。(3)采取用英文講授專業(yè)知識(shí)點(diǎn)的方式。講授編程語言類課程時(shí),對(duì)于專業(yè)知識(shí)點(diǎn)部分,應(yīng)該采用英文,但是在非專業(yè)知識(shí)的表達(dá)以及語句的銜接等方面,出于慣性思維,可以使用中文。不過,考慮到學(xué)生的接受程度,對(duì)于關(guān)鍵知識(shí)點(diǎn),可以再用中文補(bǔ)述一下。
3教學(xué)實(shí)踐
在Java程序設(shè)計(jì)課程的雙語教學(xué)活動(dòng)中,我們選用的教材是HeadFirstJava。該書內(nèi)容適合初學(xué)者,較為全面,語言特點(diǎn)講解得非常透徹。此外,它的編排有趣,且中文譯本質(zhì)量高。板書采用英文,結(jié)合英文PPT。下文以編程語言的兩個(gè)重要語法點(diǎn),同時(shí)也是教學(xué)難點(diǎn)為例,說明Java程序設(shè)計(jì)雙語教學(xué)的實(shí)施過程。1)引用變量。Java編程語言中變量的類型可以分為簡(jiǎn)單類型和引用類型,它們對(duì)應(yīng)的英文分別是primitivetypes和referencetypes。解釋簡(jiǎn)單類型時(shí)可直接列舉8種簡(jiǎn)單類型,并在PPT上顯示。然而對(duì)于“引用”這個(gè)詞,即使解釋了引用類型包括類類型、接口類型以及數(shù)組類型,學(xué)生還是有疑問:引用究竟是什么意思?誰引用了誰?針對(duì)這些問題,我們?cè)赑PT演示中給出相關(guān)的術(shù)語解釋,并設(shè)計(jì)引用變量的聲明和賦值語句代碼,再輔以代碼運(yùn)行時(shí)的內(nèi)存變化情況,如圖1所示。學(xué)生能夠從上述PPT演示中準(zhǔn)確地理解“引用”這個(gè)詞的含義:如果一個(gè)變量是引用類型,如String類型,那么這個(gè)變量將可以引用到一個(gè)String類型的對(duì)象,或者稱這個(gè)變量可以引用或指向一個(gè)String類型的對(duì)象。2)動(dòng)態(tài)綁定。C++和Java編程語言都會(huì)講到一個(gè)重要概念,即方法查找時(shí)的“動(dòng)態(tài)綁定”,這也是教學(xué)難點(diǎn),常常和“多態(tài)”“虛方法”這些詞聯(lián)系在一起?!皠?dòng)態(tài)”這個(gè)詞在漢語中的意思非常廣泛,“綁定”一詞的意思過于抽象,事實(shí)上,在編程語言中,動(dòng)態(tài)通常指的就是程序的“運(yùn)行時(shí)”(run-time),而綁定表達(dá)了“引用變量在運(yùn)行時(shí)實(shí)際引用到的對(duì)象的類型”這層意思。其實(shí),C++語言關(guān)于動(dòng)態(tài)綁定和多態(tài)中有這樣的描述:Yougetthebehaviorassociatedwiththeobjecttowhichthevariablerefersatruntime.Thebehaviorisnotdeterminedbythecompiletimetypeofthevariable.Thisisanaspectofpolymorphism,andisanimportantfeatureofobject-orientedlanguages.Thisbehaviorisoftenreferredtoasvirtualmethodinvocation.同理,在Java中也有類似描述:Whenweinvokeanoverriddenmethod,Javacallsthemethodfortheobject'sdynamictype,regardlessofthevariable'sstatictype.Javalooksuptherightmethodforagivenobjectatrun-time.如果在授課過程中使用這些英文解釋,再輔以實(shí)例并展示運(yùn)行時(shí)內(nèi)存的變化,如圖2所示(實(shí)際教學(xué)中,使用不同的顏色標(biāo)識(shí)圖中不同部分,以達(dá)到板書的清晰性),可以系統(tǒng)地講解這個(gè)概念。專業(yè)清晰的英文描述加上實(shí)例,使得講解更具有說服力,并且直接易懂。以上講解過程中,考慮到學(xué)生的接受程度,在講解時(shí)可以輔以中文。然而,隨著雙語教學(xué)的不斷推進(jìn),對(duì)于專業(yè)知識(shí)的講述還是應(yīng)當(dāng)使用英語,這樣可以進(jìn)一步讓學(xué)生更容易與國際接軌。
4問題和建議
實(shí)踐教學(xué)中,我們發(fā)現(xiàn)學(xué)生面臨最直接的問題是:一些學(xué)生聽說是雙語教學(xué),認(rèn)為自己的英語很差,很快產(chǎn)生了畏難心理。其實(shí)這是不必要的,從實(shí)踐來看,一些具有一定編程基 礎(chǔ),有興趣但是英語成績并不突出的學(xué)生,課 堂表現(xiàn)和成績?nèi)匀槐容^好。相反,僅僅英語通 過六級(jí),而編程能力較弱的學(xué)生,并沒有很好 的表現(xiàn)。事實(shí)上,編程語言的英文教材和資料 的語法并不復(fù)雜,也不涉及我們所缺失的西方 文化背景知識(shí),并且,編程實(shí)踐能夠幫助學(xué)生 準(zhǔn)確理解英文描述,增進(jìn)他們的英語思維能力。 因此,在課堂上教師不要強(qiáng)調(diào)學(xué)生英語成績的 好壞背景,而是強(qiáng)調(diào)“雙語教學(xué)的重點(diǎn)仍然是 專業(yè)學(xué)習(xí)”。 雙語教學(xué)實(shí)踐中遇到的另外一個(gè)突出問題 是教學(xué)互動(dòng)性不高?;?dòng)性不高主要有兩個(gè)方面 的原因,一是專業(yè)上沒有把握,有些跟不上進(jìn) 度;二是英語表達(dá)能力的欠缺。針對(duì)前者,由 于雙語教學(xué)增加了學(xué)生的學(xué)習(xí)任務(wù),教師需要 更多地與學(xué)生進(jìn)行交流,從學(xué)生的反饋中對(duì)教 學(xué)進(jìn)度、每堂課的教學(xué)內(nèi)容作適當(dāng)調(diào)整,并教 導(dǎo)學(xué)生做到課前先預(yù)習(xí)、課堂上多記筆記、課 后多咨詢;針對(duì)后者,應(yīng)當(dāng)采取多鼓勵(lì)的方式, 訓(xùn)練學(xué)生用英文進(jìn)行表達(dá),同時(shí),允許學(xué)生用 中文回答問題,并提出希望下次能夠以英文回 答,這些可以在一定程度上調(diào)動(dòng)學(xué)生參與課堂 教學(xué)的積極性。 編程語言類課程的雙語教學(xué)是高校計(jì)算機(jī) 專業(yè)教學(xué)的時(shí)代要求,雖然在高校已經(jīng)實(shí)踐了 多年,但是仍然存在一些問題,我們需要不斷地 摸索,進(jìn)一步完善編程語言類課程的雙語教學(xué)工 作,實(shí)現(xiàn)將英語變?yōu)榫幊陶Z言類課程學(xué)習(xí)者的第 二語言的教育目標(biāo)。
參考文獻(xiàn):
[1]王平,朱艷輝,翁艷彬.論如何使雙語教學(xué)真正輔助計(jì)算機(jī)專業(yè)教育的發(fā)展[J].計(jì)算機(jī)教育,2010(2):98-101.
[2]ShewchukJ.DatastructuresandJavaprogramming[EB/OL].[2014-05-18].
[3]SierraK,BatesB.HeadFirstJava[M]2nded.Sebastopol:O'ReillyMedia,2005.
[4]黃宏博.C語言程序設(shè)計(jì)課程雙語教學(xué)探索與實(shí)踐[J].計(jì)算機(jī)教育,2010(16):63-65.
[5]董東,黃文艷.計(jì)算機(jī)導(dǎo)論與Java程序設(shè)計(jì)雙語教學(xué)調(diào)查分析[J].計(jì)算機(jī)教育,2010(16):114-118.
關(guān)鍵詞:ASP;網(wǎng)絡(luò)編程;教學(xué)目的;教學(xué)方法;教學(xué)改革
1ASP網(wǎng)絡(luò)編程語言課程的教學(xué)目的及存在的主要問題
當(dāng)前各大高校計(jì)算機(jī)專業(yè)的學(xué)生都會(huì)開設(shè)網(wǎng)絡(luò)編程類的專業(yè)課,尤其以ASP為大多數(shù),所以有很多關(guān)于ASP方面的教學(xué)研究,著重探討了ASP教學(xué)的方法、學(xué)習(xí)模式以及考核模式等,這些內(nèi)容給我校教學(xué)工作提供了很多成功經(jīng)驗(yàn)和參考,但是它們往往都忽略了一個(gè)根本性問題,作為計(jì)算機(jī)專業(yè)的學(xué)生為什么要學(xué)習(xí)網(wǎng)絡(luò)編程語言?為什么要選擇ASP作為網(wǎng)絡(luò)編程語言? 只有弄清這些根本性問題,才能更好地指導(dǎo)我們的教學(xué)工作。
1.1教學(xué)目的
由于Internet的普及,越來越多的軟件都與網(wǎng)絡(luò)有了聯(lián)系,學(xué)習(xí)網(wǎng)絡(luò)編程語言也就成了計(jì)算機(jī)專業(yè)學(xué)生的必修課;ASP這種網(wǎng)絡(luò)編程語言相對(duì)簡(jiǎn)單,主要用于開發(fā)小型網(wǎng)站,同時(shí)很多學(xué)校開設(shè)了VB這門語言課程,學(xué)生學(xué)習(xí)ASP就比較容易上手,所以選擇ASP作為教學(xué)語言是非常合適和科學(xué)的。
計(jì)算機(jī)專業(yè)的學(xué)生學(xué)習(xí)任何一門語言的關(guān)鍵是學(xué)習(xí)程序設(shè)計(jì)的理念,而不是語言本身,是為了在今后的工作中,通過學(xué)校期間的知識(shí)積累,具備相應(yīng)崗位所需要的技能和能力。將來學(xué)生從事的工作方向和內(nèi)容是多樣化的,他們必須具備再學(xué)習(xí)的能力才能更容易地掌握新的語言和工具。
所以,ASP教學(xué)的主要目的不是讓學(xué)生精通ASP這門網(wǎng)絡(luò)編程語言,較少的課時(shí)和實(shí)驗(yàn)學(xué)時(shí)、以及學(xué)生個(gè)人能力的差別和努力程度,也無法讓學(xué)生都達(dá)到精通。學(xué)習(xí)ASP是為了讓他們了解網(wǎng)絡(luò)編程相關(guān)知識(shí)、發(fā)展方向和網(wǎng)絡(luò)編程語言的思路。
1.2當(dāng)前教學(xué)存在的主要問題
1.2.1學(xué)生學(xué)習(xí)興趣不高
學(xué)習(xí)興趣是一門功課能否出成績的決定性因素,所以,要想讓學(xué)生把這門功課學(xué)好,就必須調(diào)動(dòng)學(xué)生的學(xué)習(xí)熱情,只有讓學(xué)生在平時(shí)的課堂或?qū)嵙?xí)機(jī)房都能主動(dòng)的學(xué)習(xí)相關(guān)知識(shí),才能更好地領(lǐng)會(huì)學(xué)習(xí)重點(diǎn),掌握關(guān)鍵技術(shù)。
1.2.2教科書編寫水平參差不齊
現(xiàn)在的教科書層出不窮,教科書編寫水平差異很大,其中有些教科書語言組織混亂,重點(diǎn)不突出,知識(shí)點(diǎn)跳躍大,甚至一本書多處出現(xiàn)編寫和印刷錯(cuò)誤,而教學(xué)用書是學(xué)生學(xué)習(xí)一門技術(shù)的起點(diǎn),所以教科書的選擇顯得尤為重要。
1.2.3教師的素質(zhì)問題
教學(xué)不但關(guān)乎學(xué)生學(xué)習(xí)的興趣,也對(duì)知識(shí)點(diǎn)的學(xué)習(xí)起到了指引作用,很多老師的教學(xué)幻燈片內(nèi)容都是照搬書本上整段的文字,上課時(shí)教師就照著幻燈片照本宣科,布置的作業(yè)和實(shí)驗(yàn)報(bào)告在學(xué)生提交后也不認(rèn)真審閱。
2改進(jìn)課程教學(xué)方法的思路
針對(duì)目前ASP教學(xué)中存在的普遍問題展開分析和研究,有助于我們?cè)诮窈蟮慕虒W(xué)工作中進(jìn)行改進(jìn),能夠有目的性和針對(duì)性的制定相應(yīng)對(duì)策,提高教學(xué)質(zhì)量。
2.1學(xué)生學(xué)習(xí)興趣的培養(yǎng)
學(xué)生學(xué)習(xí)興趣的高低由三個(gè)方面決定的:
1) 學(xué)生自身的好學(xué)程度。它是學(xué)生學(xué)習(xí)興趣的決定因素,教師要做的只是在平時(shí)的教學(xué)中讓他們認(rèn)識(shí)到學(xué)習(xí)的重要性和必要性,其他就只能依靠學(xué)生自身了。
2) 老師的正確引導(dǎo)。老師的作用在這里得到了充分的體現(xiàn),學(xué)生想要汲取知識(shí),可是課堂的枯燥無味、晦澀難懂會(huì)讓學(xué)生產(chǎn)生抵觸情緒,如何讓枯燥的學(xué)習(xí)趣味化、簡(jiǎn)單化和具體化是老師們必須做好的工作。
3) 一定的壓力。沒有壓力何來動(dòng)力,中興、華為為什么是IT行業(yè)的龍頭?因?yàn)樗麄兊膯T工有壓力,也許壓力過大會(huì)產(chǎn)生一定的負(fù)面影響,但我們應(yīng)該看到它積極的一面,在中興、華為工作過的人水平確實(shí)得到很大提高,不僅僅是因?yàn)樗麄兘佑|了更多的高新技術(shù),而是那樣的工作環(huán)境迫使員工不斷地汲取知識(shí)。同樣教師在教學(xué)中也需要讓學(xué)生感到壓力――沒有一技之長無法在社會(huì)上立足,沒有技術(shù)只能待業(yè),不認(rèn)真學(xué)習(xí)只能補(bǔ)考或重修。
所以,在學(xué)生興趣培養(yǎng)上,不但要做好自身的引導(dǎo)責(zé)任,而且要通過現(xiàn)實(shí)社會(huì)讓學(xué)生從自身提高學(xué)習(xí)的源動(dòng)力,只有內(nèi)外結(jié)合,才能真正地把學(xué)生的興趣培養(yǎng)起來。
2.2教科書的選擇
選擇一本真正適合教學(xué)的教科書,是做好教學(xué)工作的第一步。教科書的選擇應(yīng)該尊崇以下幾個(gè)關(guān)鍵點(diǎn):
1)書本的知識(shí)不能過于跳躍,要連貫;
2) 書本的知識(shí)應(yīng)能充分突出ASP網(wǎng)絡(luò)編程語言的學(xué)習(xí)重點(diǎn),應(yīng)能引導(dǎo)學(xué)生掌握ASP的編程思路;
3) 重要知識(shí)點(diǎn)的詳細(xì)性。既然敘述了一個(gè)知識(shí)點(diǎn),就應(yīng)該把該知識(shí)點(diǎn)敘述得透徹,不能僅僅提供一般的表述形式,甚至連例子都省略了,這樣的課本不利于學(xué)生對(duì)知識(shí)點(diǎn)的掌握。
2.3教師的素質(zhì)和責(zé)任心
首先,教師是學(xué)生學(xué)習(xí)的引路石,如果連教師自己都不能熟練地應(yīng)用ASP這門語言,那么他就不可能把握這門語言的精髓,也不可能教好這門功課;其次,現(xiàn)在的教學(xué)都是聲像教學(xué),一般都是教師通過事前做的課件,邊操作邊給學(xué)生講解,那么課件的質(zhì)量也十分重要,不能僅僅局限于課本,而是應(yīng)該突出重點(diǎn),增加實(shí)例,課件的知識(shí)容量應(yīng)遠(yuǎn)大于課本的內(nèi)容,并且應(yīng)以例題為主,不能僅僅是書本的減縮版。最后,要介紹一些新的技術(shù)和方法,只有這樣才能讓學(xué)生有機(jī)會(huì)了解書上沒有介紹、但在實(shí)際編程中又非常重要的技巧和經(jīng)驗(yàn),這樣的課堂才是精彩的,這樣的授課方式才是學(xué)生喜于接受的。
3ASP課程的教學(xué)改革方案
根據(jù)平時(shí)的教學(xué)經(jīng)驗(yàn),筆者總結(jié)出如下的教改方案,并已取得了一定的教學(xué)效果。
3.1引導(dǎo)與實(shí)戰(zhàn)相結(jié)合,培養(yǎng)學(xué)生學(xué)習(xí)興趣
引導(dǎo)和實(shí)戰(zhàn)是相輔相成的,只有正確地引導(dǎo),才能讓學(xué)生在實(shí)戰(zhàn)中得到真正的鍛煉,只有實(shí)戰(zhàn)的不斷演練,才能更好地讓引導(dǎo)發(fā)揮作用。
引導(dǎo)應(yīng)分為兩個(gè)部分:
1) 在學(xué)習(xí)之初引導(dǎo)他們認(rèn)識(shí)學(xué)習(xí)ASP的重要性。在ASP課程開始,不能只是簡(jiǎn)單地介紹ASP 是微軟公司推出的一種基于瀏覽器的網(wǎng)絡(luò)數(shù)據(jù)庫編程技術(shù),利用它可以實(shí)現(xiàn)Internet/Intranet上的數(shù)據(jù)庫編程,是Windows環(huán)境下B/S結(jié)構(gòu)應(yīng)用的主要編程工具[1];而應(yīng)側(cè)重于當(dāng)前ASP的應(yīng)用情況,因?yàn)閷W(xué)生畢業(yè)離校后,他們中有很大一部分人將會(huì)從事與網(wǎng)絡(luò)相關(guān)的開發(fā)工作,極有可能使用、PHP或是JSP,并且ASP比這些語言更容易入門,對(duì)于今后學(xué)習(xí)其他語言有極大的幫助,從而讓他們能夠認(rèn)識(shí)了學(xué)習(xí)這門知識(shí)的重要性。
2) 在學(xué)習(xí)中多講解一些學(xué)生平時(shí)上網(wǎng)時(shí)經(jīng)常接觸的動(dòng)態(tài)網(wǎng)頁制作,引導(dǎo)他們進(jìn)一步認(rèn)識(shí)動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)與我們的生活息息相關(guān)。如開發(fā)聊天室、計(jì)數(shù)器、BBS論壇等是最能體現(xiàn)ASP這類網(wǎng)絡(luò)編程語言的特點(diǎn)。
實(shí)戰(zhàn)是學(xué)好一切軟件開發(fā)技術(shù)的最佳途徑。有了大量的實(shí)際訓(xùn)練才能盡快地掌握開發(fā)技巧,融會(huì)貫通各主要技術(shù)要點(diǎn),同時(shí),每次需求目標(biāo)的實(shí)現(xiàn),都是體現(xiàn)了編程人員的自身價(jià)值,有利于提高他們的自信心和成就感,這對(duì)于學(xué)習(xí)興趣的培養(yǎng)十分有利。
在實(shí)際操作中,由簡(jiǎn)到繁的實(shí)戰(zhàn)訓(xùn)練思路,讓他們?cè)趯W(xué)習(xí)中得到自我認(rèn)可;熟練掌握知識(shí)點(diǎn),積累一定的開發(fā)思路,使他們覺得原來平時(shí)經(jīng)常接觸的動(dòng)態(tài)網(wǎng)頁是那么得簡(jiǎn)單,從而進(jìn)一步推動(dòng)他們學(xué)習(xí)的動(dòng)力,實(shí)現(xiàn)引導(dǎo)目的,為今后工作開辟一條道路。
3.2教學(xué)內(nèi)容的總體規(guī)劃
時(shí)下ASP教科書的內(nèi)容基本上都是HTML語言、VBScript腳本語言、ASP中的5個(gè)重點(diǎn)內(nèi)置對(duì)象、ADO組件使用和數(shù)據(jù)庫操作等幾個(gè)部分[2]。在教學(xué)大綱的制定上,就應(yīng)該讓學(xué)生了解學(xué)習(xí)的各個(gè)主要知識(shí)點(diǎn)、知識(shí)點(diǎn)間的關(guān)系和需要掌握的程度等內(nèi)容。所以在教學(xué)上應(yīng)該有一個(gè)明確的指導(dǎo)意見。下面根據(jù)教學(xué)中的實(shí)際經(jīng)驗(yàn)整理了一個(gè)簡(jiǎn)單的教學(xué)思路。
1) 學(xué)習(xí)HTML語法的重點(diǎn): TABLE和Form標(biāo)簽的使用。
2) 學(xué)習(xí)VBScript腳本語言的重點(diǎn):正常使用。
3) 掌握ASP的5個(gè)重點(diǎn)內(nèi)置對(duì)象和常用組件的學(xué)習(xí)重點(diǎn):使用方法及應(yīng)用范圍。
4) 掌握SQL Server應(yīng)用的學(xué)習(xí)重點(diǎn):掌握數(shù)據(jù)庫的連接和操作。
從上面的學(xué)習(xí)重點(diǎn)可以看出,把學(xué)習(xí)的重點(diǎn)大多定義為使用和認(rèn)識(shí)的層面,而不是要求必須熟練掌握,因?yàn)檫@些教學(xué)任務(wù)的目的只是讓學(xué)生知道做一個(gè)動(dòng)態(tài)網(wǎng)頁必須具備哪些基本知識(shí),這些基本知識(shí)和ASP是怎樣的關(guān)系。至于熟練掌握應(yīng)用則是實(shí)驗(yàn)?zāi)康闹?不應(yīng)該在平時(shí)的課堂教學(xué)中過多地要求學(xué)生死記硬背這些知識(shí)點(diǎn),因?yàn)橛枚嗔俗匀痪陀涀×恕?/p>
3.3立足教科書,拓展知識(shí)點(diǎn)
教學(xué)目的不是為了考試,而是為了開啟一扇門。僅有教學(xué)規(guī)劃是遠(yuǎn)遠(yuǎn)不夠的,教師作為學(xué)生的引路人,還應(yīng)在ASP的實(shí)際教學(xué)中引導(dǎo)學(xué)生使用工具、掌握最新技術(shù)。教師在實(shí)際教學(xué)中,對(duì)于知識(shí)點(diǎn)的把握和教學(xué)準(zhǔn)備還應(yīng)該具有以下的一些內(nèi)容:
1) 在HTML語法教學(xué)中,除了講解TABLE和Form標(biāo)簽的使用等書本內(nèi)容,還應(yīng)講解DIV CSS,在網(wǎng)站布局方面,它必然是今后網(wǎng)站制作中最前沿的新技術(shù),也必然是一種新的趨勢(shì),有必要讓學(xué)生了解它的一些最基本的知識(shí)[3]。
2) 在HTML語法教學(xué)中,還應(yīng)涉及到Dream- weaver這類網(wǎng)頁編輯和網(wǎng)站管理的編輯器,對(duì)初涉網(wǎng)頁設(shè)計(jì)的人而言,這類軟件確實(shí)是非常好用的工具。
3) 在VBScript教學(xué)中,還應(yīng)簡(jiǎn)單提及JavaScript。當(dāng)學(xué)習(xí)ASP時(shí),也應(yīng)該已經(jīng)學(xué)習(xí)或是開始學(xué)習(xí)Java了,VBScript作為入門是一種不錯(cuò)的選擇,但從學(xué)習(xí)目的而言,JavaScript和Java語言一樣,在今后一段時(shí)期內(nèi)必然會(huì)得到更廣泛地應(yīng)用,所以在學(xué)習(xí)完VBScript后,應(yīng)該讓學(xué)生了解JavaScript一些基本知識(shí)和特點(diǎn)。
4) 在SQL Server的應(yīng)用內(nèi)容里面,應(yīng)著重強(qiáng)調(diào)數(shù)據(jù)庫的重要性和數(shù)據(jù)操作功能。無論學(xué)生今后從事哪一類編程工作都應(yīng)該會(huì)接觸到數(shù)據(jù)庫,作為計(jì)算機(jī)專業(yè)的學(xué)生,數(shù)據(jù)庫應(yīng)該是他們必須學(xué)習(xí)和熟練掌握的內(nèi)容。除了介紹該部分內(nèi)容的書本知識(shí)以外,還應(yīng)該著重強(qiáng)調(diào)數(shù)據(jù)庫的規(guī)劃,這點(diǎn)在非專業(yè)的數(shù)據(jù)庫書籍中一般不會(huì)提及或很少提及,之所以要強(qiáng)調(diào),是為了讓學(xué)生能夠認(rèn)識(shí)到ASP有一個(gè)主要的特性就是通過對(duì)數(shù)據(jù)庫的操作建立功能強(qiáng)大的Web應(yīng)用程序,沒有一個(gè)高效的數(shù)據(jù)庫,就沒有了ASP所依賴的基礎(chǔ)。
5) 教學(xué)的準(zhǔn)備。作為一個(gè)稱職的ASP教師,不僅應(yīng)具備對(duì)ASP的熟練應(yīng)用和把握,在準(zhǔn)備教學(xué)內(nèi)容時(shí),應(yīng)該有三本以上不同作者的ASP 教材,并且在幻燈片的制作上要借鑒不同老師的教學(xué)優(yōu)點(diǎn),多一些范例,少一些文字,多一些素材,少一些代碼的羅列,只有這樣的課件,才是合格的。另外,還應(yīng)該向?qū)W生推薦一些課外參考書目和比較好的教學(xué)視頻,比如,袁理編著機(jī)械工業(yè)出版社出版的《ASP完全自學(xué)手冊(cè)》,由高振國或劉建明主講的《動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)》和黑鷹的《ASP教程》視頻等,這樣有利于學(xué)生在課余更好地學(xué)習(xí)這門功課。
3.4改革考評(píng)模式
作為專業(yè)課,一般都是由教研組自行命題考試,這樣方便授課老師根據(jù)學(xué)科特點(diǎn)進(jìn)行考核,對(duì)于這種重視操作和應(yīng)用的學(xué)科,應(yīng)該提高操作比重,降低筆試成績所占比重,筆者將操作比重提高到60%(其中平時(shí)實(shí)驗(yàn)占10%),筆試部分占40%。操作內(nèi)容中不但有既定知識(shí)點(diǎn)的實(shí)驗(yàn)[4],而且在學(xué)期開始,就對(duì)學(xué)生進(jìn)行分組,給每個(gè)小組指定課題――設(shè)計(jì)特定內(nèi)容的網(wǎng)站。 學(xué)期結(jié)束,對(duì)各小組的成果進(jìn)行考評(píng),按完成情況、功能實(shí)現(xiàn)、系統(tǒng)效率、友好界面等部分給定考評(píng)成績,結(jié)合期末考試成績,給出最終學(xué)生個(gè)人成績[5]。這樣既兼顧了書本知識(shí),又結(jié)合了ASP這門學(xué)科的特點(diǎn),有利于提高學(xué)生的學(xué)習(xí)熱情和實(shí)際應(yīng)用技能,同時(shí)學(xué)生通過系統(tǒng)設(shè)計(jì)對(duì)于書本中孤立知識(shí)點(diǎn)做到融會(huì)貫通。
4結(jié)語
針對(duì)學(xué)科特點(diǎn),制定合適的教學(xué)方案是提高教學(xué)
成果的保證。以教師課前的精心準(zhǔn)備和課堂的精彩講解為基礎(chǔ),以引導(dǎo)學(xué)生的學(xué)習(xí)興趣為著手,以實(shí)際應(yīng)用和考試為手段,從而保證學(xué)生對(duì)知識(shí)點(diǎn)的掌握和融會(huì)貫通,認(rèn)識(shí)網(wǎng)絡(luò)編程語言的思路,以及在學(xué)習(xí)中提升團(tuán)隊(duì)協(xié)作的素質(zhì)。
參考文獻(xiàn):
[1] 頊宇峰,馬軍. ASP網(wǎng)絡(luò)編程從入門到精通[M]. 北京:清華大學(xué)出版社,2006:20-30.
[2] 張景峰,韓紅旗,劉博濤. ASP程序設(shè)計(jì)及應(yīng)用[M]. 北京:中國水利水電出版社,2005:39-42.
[3] 尚俊杰. 網(wǎng)絡(luò)程序設(shè)計(jì):ASP[M]. 3版. 北京:清華大學(xué)出版社,2009:1-5.
[4] 鄭益群. “ASP網(wǎng)頁制作”教學(xué)方法探索與實(shí)踐[J]. 電腦知識(shí)與技術(shù),2008(22):727-728.
[5] 劉鳳玲,王云平. ASP 課程分組教學(xué)的探討與實(shí)踐[J]. 遼寧高職學(xué)報(bào),2009(12):11-12.
Thoughts of the Teaching of ASP Network Programming Language
MIN Zhao-e, XIAO Xin-xin
( Department of Information Sciences, Nanjing College for Population Program Management, Nanjing 210042, China)