文/張智
針對小學(xué)教學(xué)需求對機(jī)器人編程語言進(jìn)行設(shè)計,是完善小學(xué)機(jī)器人編程教學(xué)的重要步驟。傳統(tǒng)的教學(xué)機(jī)器人編程語言與小學(xué)教學(xué)并不匹配,尤其是在難易性等方面都暴露出了一系列問題。為了改善這種情況,不少研究人員針對小學(xué)生的學(xué)習(xí)特點構(gòu)建出了相應(yīng)的機(jī)器人編程語言,借助前沿技術(shù)來幫助教師完善對學(xué)生的培養(yǎng)。利用專門的編程語言來幫助提高小學(xué)教學(xué)的教學(xué)效率的效率,對于鞏固和擴(kuò)大教學(xué)成果有著不可忽視的重要作用,本文主要就編程語言中的解釋器設(shè)計進(jìn)行了探究。
設(shè)計機(jī)器人語言系統(tǒng)的是主要目的是方便對機(jī)器人進(jìn)行編程和控制,同時滿足機(jī)器人的接口和通信等功能。所以傳統(tǒng)的機(jī)器人語言系統(tǒng)的需求主要體現(xiàn)在以下幾點:
(1)能夠?qū)ν獠渴澜邕M(jìn)行建模,因為機(jī)器人在進(jìn)行運動時的環(huán)境是三維空間,所以其語言系統(tǒng)需要對空間物體進(jìn)行相應(yīng)的描述;
(2)能夠?qū)\動進(jìn)行描述,這也是操作者控制機(jī)器人運動的基礎(chǔ),只要將機(jī)器人的軌跡規(guī)劃程序和軌跡生成程序聯(lián)系起來,開發(fā)者才能將機(jī)器人應(yīng)用到日常的生產(chǎn)生活之中;
(3)允許對機(jī)器人的運動過程進(jìn)行操作,對執(zhí)行流程進(jìn)行規(guī)定或者更改,從而應(yīng)對不同的生產(chǎn)生活需求;
(4)需要針對接口進(jìn)行拓展,方便操作者和傳感器進(jìn)行信息交換;
(5)需要對編程軟件提供支持,軟件能夠為編程語言的運行提供良好的環(huán)境,從而提高編程效率。
而基于小學(xué)教學(xué)的設(shè)計出了上述需求之外,還需要考慮以下兩個方面:一方面是機(jī)器人教育的新穎性,針對機(jī)器人進(jìn)行教學(xué)能夠豐富小學(xué)信息技術(shù)課程的內(nèi)容和形式,利用多樣化的表現(xiàn)方法調(diào)動學(xué)生的學(xué)習(xí)動力,提高教師的教學(xué)效率;另一方面是難易性,小學(xué)生的思維能力尚在發(fā)育階段,教師可以利用簡易的編程語言將課程的難點進(jìn)行分解,讓學(xué)生更容易理解編程教學(xué)的過程,降低編程教學(xué)難度的同時,引導(dǎo)學(xué)生養(yǎng)成良好的分析能力和分析習(xí)慣。
在小學(xué)機(jī)器人編程教學(xué)中,機(jī)器人的語言系統(tǒng)共分為五個部分,分別是由文本編輯或者示教生成空間點所構(gòu)成的編輯器、機(jī)器人的源程序、負(fù)責(zé)詞法(語法、語義)分析的解釋器、軌跡規(guī)劃和插補計算、執(zhí)行結(jié)構(gòu)。其中解釋器的過程最為復(fù)雜,因為解釋器負(fù)責(zé)將源程序輸入的文本形式轉(zhuǎn)化為目標(biāo)指令,本文也主要對解釋器的設(shè)計與實現(xiàn)進(jìn)行相應(yīng)的研究。
解釋器的主要功能是詞法分析、語法分析和語義分析,詞法分析是識別源程序的文本單詞,同時對單詞進(jìn)行檢查和轉(zhuǎn)換;語法分析是識別源程序的文本語法,同時對語法結(jié)構(gòu)進(jìn)行檢查;語義分析是識別源程序的文本語義,同時檢測出相應(yīng)的錯誤信息。所以基于上述功能,編程語言解釋器系統(tǒng)軟件結(jié)構(gòu)分為以下幾個步驟:首先是在初始化的處理的基礎(chǔ)上加載源程序,然后對詞法進(jìn)行分析,詞法無誤后進(jìn)行語法分析,語法分析無誤后進(jìn)行語義分析,如果此三項有錯誤全部進(jìn)行錯誤處理,上述步驟完成之后解釋器可以在符號表的基礎(chǔ)上生成目標(biāo)代碼。
基于小學(xué)機(jī)器人教學(xué)需求的機(jī)器人語言包括以下五種單詞符號:關(guān)鍵字、識別符、常量(數(shù)字)、運算符、標(biāo)點符號。詞法分析程序的輸入為機(jī)器人源程序文件,而輸出為提供給語法分析的單詞串。在進(jìn)行詞法分析前,需要構(gòu)造關(guān)鍵字表。關(guān)鍵字表用一個字符指針數(shù)組保存,其定義如下:char*keywords[keywordsnum]; 其 中keywordsnum為宏定義,表示關(guān)鍵字的數(shù)目。這種定義方式方便了隨時增加或刪減關(guān)鍵字。分析程序中應(yīng)提供對關(guān)鍵字表的查找操作,定義函數(shù)如下:intlookup(char*);此函數(shù)輸入?yún)?shù)為待查找的單詞串,返回一個整型值代碼關(guān)鍵字的內(nèi)碼,若沒有查找到返回數(shù)值—1。
基于小學(xué)機(jī)器人教學(xué)需求的機(jī)器人語言語法分析使用的是正則表達(dá)式,正則表達(dá)式主要有以下優(yōu)點:首先是其自身能夠通過簡單的控制方式對字符串進(jìn)行復(fù)雜的控制;其次是內(nèi)在的邏輯性非常強(qiáng),能夠適應(yīng)多種環(huán)境。使用正則表達(dá)式進(jìn)行機(jī)器人程序的語法分析,要經(jīng)過指令正則表達(dá)式的定義、初始化和匹配三個過程。在處理正則表達(dá)式的過程中,可以借助機(jī)器人控制器下位機(jī)所用的Linux系統(tǒng)帶有的正則表達(dá)式處理庫函數(shù)regcomp()和regexec()來實現(xiàn)一些功能。
機(jī)器人程序經(jīng)詞法分析和語法分析之后,若沒有錯誤則說明此程序在書寫上是正確的且符合語法規(guī)則。語法上的正確并不能保證其在語義上是正確的,要判定予以是否正確,必須依靠語法分析,而要產(chǎn)生目標(biāo)代碼,還需要一種翻譯技術(shù)將源程序翻譯成目標(biāo)代碼。出于小學(xué)教學(xué)效率和實現(xiàn)難度的考慮,本次研究的語法分析程序沒有輸出語法樹,只是進(jìn)行語法檢查。在一般的語義分析程序中,要遍歷語法樹來實現(xiàn)語法制導(dǎo)的翻譯過程,但是遍歷語法樹的效率較低,而且語法樹的儲存要耗費大量的內(nèi)存,這對機(jī)器人數(shù)控系統(tǒng)所需求的高實時性造成了一定的影響,因此本文設(shè)計的語法分析程序仍遍歷機(jī)器人源程序作為輸入,來進(jìn)行語法的檢查和目標(biāo)代碼的生成。
總而言之,基于小學(xué)機(jī)器人教學(xué)需求對解釋器進(jìn)行開發(fā)和研究,不僅能夠降低小學(xué)編程教學(xué)的難度,從而提高小學(xué)生的邏輯思維能力、實踐操作能力和語言表達(dá)能力,還能夠提高學(xué)生對于其他學(xué)科的理解能力,幫助學(xué)生綜合全面的發(fā)展。除此之外,編程語言的開發(fā)還需要學(xué)校和教育部分的重視,定期舉辦相應(yīng)的課題和研究,同時教師也需要提高自身的專業(yè)水平,對相關(guān)編程教學(xué)的發(fā)展動態(tài)進(jìn)行實時的了解,并積極應(yīng)用到相關(guān)的編程教學(xué)中,豐富學(xué)生知識儲備的同時開闊學(xué)生的視野。