第一篇:詞法分析小結
詞法分析是編譯器工作的第一階段,它的工作就是從輸入(源代碼)中取得token,以作為parser(語法分析)的輸入,一般在詞法分析階段都會把一些無用的空白字符(white space,即空格、tab和換行)以及注釋剔除,以降低下一步分析的復雜度,詞法分析器一般會提供一個gettoken()這樣的方法,parser可以在做語法分析時調用詞法分析器的這個方法來得到下一個token,所以詞法分析器并不是一次性遍歷所有源代碼,而是采取這種on-demand的方式:只在parser需要時才工作,并且每次只取一個token。
token和lexeme
首先,token不等于lexeme。token和lexeme的關系就類似于面向對象語言中“類”和“實例”(或“對象”)之間的關系,這個用中文不知該如何解釋才好,比如語言中的變量a和b,它們都屬于同一種token:identifier,而a的lexeme是”a”,b則是”b”,而每個關鍵字都是一種token。token可以附帶有一個值屬性,例如變量a,當調用詞法分析器的gettoken()時,會返回一個identifier類型的token,這個token帶有一個屬性“a”,屬性可以是多樣的,例如表示數字的token可以帶有一個表示數字值的屬性,它是整型的。
如下代碼:
int age = 23;
int count = 50;
可以依次提取出8個token:int(值為”int”),id(值為”age”),assign(值為”=”),number(值為整型數值23),int(值為”int”),id(值為”count”),assign(值為”=”),number(值為50)
正則表達式
正則表達式可以用來描述字符串模式,例如我們可以用digit+來表示number的token,其中digit表示單個數字(這里說正則表達式并不完全和實現的正則引擎所識別的正則表達式等價,這里只是為了描述問題而已)。
然而像c語言的的多行注釋,用正則表達式來描述就比較麻煩,此時更傾向于直接用有窮自動機(finite automaton)來描述,因為用它來描述非常直觀且很容易。
有窮自動機(finite automata)
有窮自動機也稱為有限狀態機,狀態在輸入字符的作用下發生遷移,因此,它可以用來識別token,也因此,我們只要畫得出fa,之后再用代碼實現這個fa,那詞法分析器也就差不多弄好了。
有窮自動機分確定性(dfa)和非確定性(nfa)兩種,如果對于同一個輸入,只會有一個確定的狀態遷移路線,也就是只有一個確定的“下一狀態”,那就是dfa,否則就是nfa。
因為dfa對于同一個輸入只有一個確定的下一狀態,所以詞法分析器當然優先采用它,那nfa拿來干嘛用呢?nfa用來做描述用時更方便,我們可以非常迅速地畫出一個識別token的nfa圖,但要想直接畫出個dfa那要動不少腦筋。
根據正則表達式構建nfa
如上所述,nfa更容易畫出,那我們就先研究nfa,在定義token時,我們可以用正則表達式來描述它,因為正則表達式干這行很合適,例如一個digit+就可以描述數字,多方便。因此,我們需要根據正則表達式畫出與之等價的nfa。而這個算法非常簡單,就是tompson’s construction,這個書上寫得很清楚了。
將nfa轉化成dfa(nfa的確定化)
對于計算機來說,面對同一個輸入,如果有多個下一狀態,那計算機就不清楚要轉到哪個狀態,所以我們期望能從正則表達式得到dfa,而不是nfa,因為這樣將來編程實現時比較自然(同一輸入有確定的一個下一狀態),而幸運的是,每個nfa都可以轉化成dfa。為什么nfa可以轉化成dfa?因為fa(finite automata)中的狀態都是我們自己畫的,只要fa能正確的識別token,那就ok了,也就是,如果nfa和dfa都可以達到一樣的效果:識別token,那其它的我們就不管了。
實現詞法分析器
對于一個token,比如用來表示數字的token:num,我們可以用正則表達式描述它,然后畫出nfa,再將nfa轉化成dfa,再最小化dfa的狀態,但是我們的詞法分析器是不是分析一個token,所以我們要把所有類型的token的dfa合并成一個dfa,這樣,這個dfa也就可以識別語言的所有token了,如果在某一連串的輸入下,dfa達不到終結狀態,那就說明源代碼有錯誤了。
我用c#實現了一個用于《compiler construction: principles and practice》中tiny語言的詞法分析器,tiny語言有關鍵字:if, then, else, end, repeat, until, read, write,有操作符+,-,*,/,=,<,(,),;,:=(全角逗號不算,是文章的分隔符)這10個,然后其余的token有number(一或多個數字)和identifier(一或多個字母),其dfa如下圖:
上面這張圖和《編譯原理及實踐》中的一樣,其中的帶中括號的輸入說明這個輸入是lookahead的,在匹配成功后是要重新放回輸入流中的,比如識別num時,如果發現個非digit的,那就說明識別到了一個number,但是最后識別的那個非digit字符是要放回輸入流的,因為它要留著下一次識別。
其中從start到done的那個other,指所有非white space,非{,非letter,非digit,也非:的字符,它有可能是合法的+, *, /這些,也可能是不合法的其它輸入,如#號。因此,done這個狀態只是說本次gettoken已經結束,狀態機是有可能因為不合法的輸入而進入done狀態的。究竟從start到done是因為合法的,如+號導致的,還是由不合法的如#號導致的,將在代碼中實現判斷,但可以肯定的是,不管是+號還是#號作用于start狀態,都會進入done狀態。
第二篇:《編譯原理》課程(詞法分析)實驗報告
一.實驗序號:《編譯原理》第一次實驗
二.實驗題目:詞法分析
三.實驗日期:2010.10
四.實驗環境(操作系統,開發語言)
操作系統:Windows
開發語言:C
五.實驗內容(實驗要求)
a)將標識符的詞法改為“以大寫字母或小寫字母開頭,后面可以跟大寫字
母或小寫字母或數字或下劃線”。
b)將<條件>中的表示相等關系的單詞“=”改為“= =”
c)將原來的無小數的數改為可以有小數的數
六.實驗步驟
a)打開VC++,找到getsym()項目。
int getsym()
{...}
在getsym()函數中設置斷點,F10逐過程調試
根據要求a修改為
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
往后面看,修改while(ch>='a' && ch<='z' || ch>='0' && ch<='9' ||ch>='A' && ch<='Z' || ch=='_');
b)在檢測賦值符號的程序段中找到等號 = 的判斷代碼,改變成為 = = 即
可。
c)在獲取整數數字的值的程序段后面添加判斷小數點的代碼。如果是,即
讀取符號并且按照小數的要求將其縮小并且累加到總的符號串中。
七.實驗體會(包括收獲、心得體會、存在的問題及解決問題的方法、建議等)
通過實驗,如果要修改代碼的話,首先應該讀懂源碼,在修改之前了解到程序段的功能是什么,然后再在相應的行進行修改添加,再進行合理的調試。如果問題太過困難可以查詢資料或與同學進行討論
八.實驗結果(關鍵源程序)
a)
int getsym()
{
int i,j,k;
while(ch==' '||ch==10||ch==9)/*忽略空格,換行和TAB*/{
getchdo;
}
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')/*名字或保留字以a..zA。Z開頭*/{
k=0;
do{
if(k { a[k]=ch; k++; } getchdo; }while(ch>='a' && ch<='z' || ch>='0' && ch<='9' || ch>='A' && ch<='Z' || ch=='_');// if(ch>='0'&&ch<='9')/*檢測是否為數字,以0..9開頭*/{ k=0; num=0; sym=number; do{ //435 num=10*num+ch-'0'; k++; getchdo; }while(ch>='0' && ch<='9'); if(ch=='.') { k++; sym=period; getchdo; sym=number; int div=10; do{num=num+(ch-'0')/div; k++; getchdo; div=div*10; }while(ch>='0'&&ch<='9'); } b) else { if(ch=='>')//檢測大于或大于等于符號{ getchdo; if(ch=='=')//add by M { sym=geq;//構成>= getchdo; } else { sym=gtr;//否則就是一個單獨的>號} } else { if(ch=='=') { getchdo; if(ch=='=') { sym=deq; getchdo; } else { sym=eql; } } c)else {if(ch == ’.’) {k=10; getchdo; do{num=num+(ch-'0')/k; k=k*10; getchdo; }while(ch>='0'&&ch<='9');} } 實驗一 詞法分析設計 實驗學時:4 實驗類型:綜合 實驗要求:必修 一、實驗目的 通過本實驗的編程實踐,使學生了解詞法分析的任務,掌握詞法分析程序設計的原理和構造方法,使學生對編譯的基本概念、原理和方法有完整的和清楚的理解,并能正確地、熟練地運用。 二、實驗內容 用VC++/VB/JAVA語言實現對C語言子集的源程序進行詞法分析。通過輸入源程序從左到右對字符串進行掃描和分解,依次輸出各個單詞的內部編碼及單詞符號自身值;若遇到錯誤則顯示“Error”,然后跳過錯誤部分繼續顯示 ;同時進行標識符登記符號表的管理。以下是實現詞法分析設計的主要工作:(1)從源程序文件中讀入字符。 (2)統計行數和列數用于錯誤單詞的定位。(3)刪除空格類字符,包括回車、制表符空格。 (4)按拼寫單詞,并用(內碼,屬性)二元式表示。(屬性值——token的機內表示)(5)如果發現錯誤則報告出錯 (6)根據需要是否填寫標識符表供以后各階段使用。單詞的基本分類: ? ? ? ? ? ? 關鍵字:由程序語言定義的具有固定意義的標識符。也稱為保留字例如 標識符:用以表示各種名字,如變量名、數組名、函數名; 常數: 任何數值常數。如 125, 1,0.5,3.1416; 運算符:+、-、*、/; 關系運算符: <、<=、=、>、>=、<>; 分界符: ;、,、(、)、[、]; if、for、while、printf ; 單詞種別碼為1。 三、實驗要求 1、編程時注意編程風格:空行的使用、注釋的使用、縮進的使用等。 2、將標識符填寫的相應符號表須提供給編譯程序的以后各階段使用。 3、根據測試數據進行測試。測試實例應包括以下三個部分: ? 全部合法的輸入。? 各種組合的非法輸入。? 由記號組成的句子。 4、詞法分析程序設計要求輸出形式: 例:輸入VC++語言的實例程序: If i=0 then n++;a﹤= 3b %);輸出形式為: 單詞 二元序列 類 型 (單詞種別,單詞屬性) for (1,for) 關鍵字 i (6,i) 標識符 = (4,=) 關系運算符0 (5,0) 常數 then (1,then) 關鍵字 n (6,n) 標識符 ++ Error Error ; (2,;) 分界符 位置(行,列) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) a (6,a) 標識符 (2,1)﹤= (4,<=) 關系運算符 (2,2)3b Error Error (2,4)% Error Error (2,4)) (2,)) 分界符 (2,5); (2,;) 分界符 (2,6) 實驗報告正文: ? 功能描述:該程序具有詞法分析功能,即面對一段程序源代碼,通過該程序,能檢查出源代碼是否由詞法錯誤。 ? 三、詞法分析實驗設計思想及算法: ? 首先構造六個表,key[]={“auto”,“break”,“case”,“catch”,“char”,“class”,“const”,“continue”,“default”,“delete”,“do”,“double”,“else”,“enum”,“float”,“for”,“if”,“int”,“long”,“new”,“private”,“protected”,“public”,“register”,“return”,“short”,“static”,“struct”,“switch”,“this”,“void”,“while”,“then”};關鍵字表, 單詞種別碼1; Delimiter[]={“;”,“(”,“)”,“[”,“]”,“,”,“.”,“{”,“}”};分界符表 單詞種別碼2 Operator[]={“+”,“-”,“*”,“/”};算術運算符表 單詞種別碼3 R_operators[]={“<”,“<=”,“==”,“>”,“>=”},關鍵字表 , 單詞種別碼1;string Number[100];常數表 單詞種別碼5;string Identifier[100];標示符表 單詞種別碼6;構造關鍵字判斷函數Iskey(),字母判斷函數Isletter(),數字判斷函數Isnumber();構造標示符判別函數InsertId(),若輸入的標示符在標示符數組Identifier []中,返回其下標,若不在,將該標示符插到數組末尾。構造標示符判別函數InsertNumber(),若輸入的數字在數字數組Number[]中,返回其下標,若不在,將該數字插到數組末尾。具體分析函數analyse()具體實現輸入源代碼的識別。anaiyse()構造思路,程序設計圖: 綜合以上分析,畫出整個程序的運行分析程序圖,如下: 開始 輸入源文件路徑否 路徑是否有效是打開源文件初始化文件指針識別指針內容文件結束?否是空格,空白或換行嗎是跳過該字符是結束否是字母嗎是將字符加入字符數組Word[]否是數字嗎否是界符嗎否將字符加入字符數組Word[]是將字符加入字符數組Word[]是指向下一字符識別指針內容是輸出word為界符輸出Word內容為不可識別將字符加入字符數組Word[]將字符加入字符數組Word[]指向下一字符指向下一字符是字母惑數字嗎回退否將word與關鍵字表key進行匹配輸出word為普通標示符是數字嗎否輸出word為常數指向下一字符否匹配?是輸出word為關鍵字整個程序的運行分析程序圖 ? 軟件的測試方法和測試結果: 首先,將要分析的源代碼寫入一個文本,存于磁盤中,然后運行程序,輸入源代碼文件存放的路徑,若輸入路徑正確,程序將自動分析源代碼,若輸入路徑不正確,程序將顯示,路徑錯誤,請重新輸入的提示。下面為具體的運行實例: 源代碼為:If i=0 then n++;a﹤= 3b %) 輸出滿足要求。 ? 實驗總結(設計的特點、不足、收獲與體會): 通過此次實驗,讓我了解到如何設計、編制并調試詞法分析程序,熟悉了構造詞法分析程序的手工方式的相關原理,加深了對編譯原理詞法分析的理解,本次使用C++語言直接編寫此法分析程序,也讓我重新熟悉了C++語言的相關內容,加深了對C++語言的用途的理解。本程序的數據輸入采取直接從文件中讀取,而不是由鍵盤輸入,因此在測試過程中,輸入得到大大簡化,但是本程序的關鍵字表只初始化了一部分關鍵字,還可繼續擴充(只需擴大數組,向其中補充要添加的關鍵字),而且程序的測試數據存在不足,程序可能存在未發現的漏洞,以上兩點有待改善。附錄該程序的源代碼: #include 第四講 英漢詞法對比 1、詞類劃分 2、詞義區分 3、搭配習慣 4、詞序先后 詞類 ?詞類的概念:詞類是根據詞在句子中的語法功能進行的一個劃分,諸如名詞、動詞、形容詞、副詞等。 ?誰能夠說出英漢兩種語言中各有多少種詞類? 詞類劃分 ?漢語把詞分為12類(名詞、動詞、形容詞、數詞、量詞和代詞是實詞,副詞、介詞、連詞、助詞、擬聲詞和嘆詞是虛詞),英語則10類(實詞:名詞、動詞、形容詞和副詞。虛詞:代詞、冠詞、介詞、連詞、數量詞和感嘆詞):漢語沒有冠詞,而英語則少了量詞(名量詞和動量詞)和助詞(時態助詞和語氣助詞) ?(名量詞)一個人:一張嘴,一雙眼睛,兩只耳朵,兩條腿 ?(動量詞)等一下,念一遍,哭一場,走一趟 ?(助詞) 著,了,過(時態助詞);的,呢,罷了,而已,啦,嗎,吧,啊,么(語氣助詞); 詞類的句法功能 ?漢語一個詞類能充當較多的句法功能 ?英語一個詞能充當的句法成分較少,充當不同成分需要詞類轉換。 英漢比較 ?謂語:我們討論了這個問題。?We have discussed it.?主語:討論剛剛開始。? The discussion just began.?賓語:很多同學參加了這次討論。?Many students took part in the discussion.?定語:我們得確定一下討論的內容。? We have to decide on what to discuss.主要詞類比較 ?名詞 ?動詞 ?代詞 ?介詞 名詞 1 漢語的特征 ?1)無單復數之分(eg:我是老師;我們都是老師)?2)后可加上們,群(牛群)?±表復數,但此時其前就不能加數詞(錯誤eg:三個同學們); ?3)量詞放在名詞后面表示統稱(一輛車:車輛,一張紙:紙張) 名詞 2 英語的特征 1)可數名詞前可以直接加上數詞:two students; 2)不可數名詞前要加表示量的名詞: two pieces of news, three sacks of flour, four meters of cloth, six cakes of soap; 3)有特殊含義的復數:colors彩旗,ashes骨灰,the last words 遺囑(have a word with Jack和杰克說句話;have words with Jack 和杰克吵架),securities證券,at the feet of屈服于 名詞 3 翻譯(注意三個方面): ?1)英語名詞復數翻成漢語通常不必表示出來(foreign invaders 外國侵略者,the students學生)?2 補出相應的漢語量詞:20 banks 20家銀行, 15 fish 15尾(條)魚 名詞 4 ?3)如何體現復數概念 ?the eastern provinces ?rows of new buildings ?the Bakers ?the first electronic computers ?Personal tragedy haunted his entire life, in the deaths of loved ones.參考譯文 ?東部各省 ?一排排新建大樓 ?貝克一家 ?第一批(代)電子計算機 ?親人們相繼去世,使他一生充滿了人生悲劇。 動詞 1 時態 ?1)漢語動詞一般沒有時態變化,但有時間助詞:著,了,過; ?2)英語有豐富的時態變化(16種:3種時[現在、過去、將來],3種態[一般、進行、完成]),而且有些時態還可以表示特定的感情色彩。 動詞 2 ?(1)You?ˉre always asking me such questions!?你老是問我這樣的問題!(用現在進行時表示厭煩) ?(2)I am now living in a very pleasant flat. ?我現在住在一間非常舒適的公寓里。(用現在進行時表示滿意) 動詞 3 ?傳遞同樣的意思,英語只要選用合適的時態就可以了,漢語則必須使用詞匯手段。?It has been noted that those who live,or have lived,in the shadow of death bring a mellow sweetness to everything they do.?(5)His father, who was a good locksmith in the village, is in prison.動詞 4 ?人們已經注意到大凡受到死亡威脅的人或是死里逃生的人對于他們所干的任何事總是興趣盎然。 ?他的父親過去是村上有名的鎖匠,現在卻成了階下囚。 動詞 5 語態 1)漢語重人稱,所以句子主語一般都是有生命的,故主動態較多。2)英語重物稱,被動語態使用較多。 ?It is generally considered that he is a bad egg.大家說他是壞蛋。 (2)Everything he advertised was guaranteed to last ?°forever?±.他保證他廣告中所登的東西都能永久使用。 代詞 ?使用頻率上的差異:由于英語每個句子、分句都要一個主語,另外所屬關系也要明確指出來,所以代詞和物主代詞的使用頻率就很高。 ?代詞與所指代的實詞的先后:英語里代詞可前可后,漢語里先實詞后代詞 代詞差異舉例 ?As we discuss our differences, neither of us will compromise in our principles.But while we cannot close the gulf between us, we can try to bridge it so that we may be able to talk across it.?在討論分歧時,哪一方都不會在原則上妥協。但是,雖然不能彌合我們之間的鴻溝,我們卻能搭一座橋,以便越過鴻溝進行會談。(省略;轉換;還原)參考譯文 ?In its long history of development, China has formed its own tradition.?在中國的歷史長河中,她已經形成了自身的傳統。 介詞 ?英語對介詞的使用遠遠超過漢語 ?介詞的特殊用法(relations of space and time?a>factual or logical?a>idiomatic) 介詞用法舉例 ?The street runs westward, across a great black bridge, up a hill and down it again, by little shops and meat-markets, past single-storied homes, until suddenly it stops against a wide green lawn.?The bill is on me.?Don?ˉt go to bed on a full or an empty stomach.參考譯文 ?大街往西延伸,穿過一座黑色的大橋,翻過山崗,經過許多小鋪和肉市,又經過一些平房,然后突然沖著一大片綠色的草地中止了。?我來買單。 ?吃的太飽或者空腹都不宜上床睡覺。 詞義區分 ?詞義構成 ?詞義對應 ?詞義差異 英漢詞義構成的來源 ?(1)聯想:自行車/腳踏車/單車/洋車(時代背景)bicycle(雙輪車)?(2)比喻:畫蛇添足/put a fifth wheel to the cart ?(3)典故:掩耳盜鈴;the Trojan horse ?(4)簡化:打假(打擊假冒偽劣商品);radar(radio detecting and ranging);WTO(過多簡化會鬧笑話);老板,總裁 英漢詞義對應 ?詞語的形成并沒有一個固定統一的規律,因此有些詞語看起來會顯得不太合理:醬油soy(并非油),ladybird(瓢蟲);?由于這種隨意性,英漢兩種語言一致的情況極少(金魚 gold fish), 但絕大多數情況下不同(自由體操 floor exercise;) 詞義對應關系 ?(1)完全對應(少數)(eg:goldfish ?(2)部分對應(eg:parent/uncle)?(3)無對應(eg:英語中的教授:professor/assistant prof./associate prof.)?(4)一對多/多對一 詞義差異 1 ?俯臥 lie on one?ˉs stomach ?倒立 stand on one?ˉs head ?蛙泳 breast stroke ?蝶泳 butterfly(stroke)?雙杠 parallel bars ?高低杠 high-and-low bars/uneven bars ?單杠 horizontal bar ? ?活字典 walking dictionary 詞義差異 2 ?Outpatient 門診病人 ?走讀生 daily student ?Tableware 餐具 ?Vacuum flask(原理上講) 保溫杯(功能上講)?Stopwatch 秒表 ?Family tree 家譜 ?看手相 read palm tree ?Contact lens 隱形眼鏡 詞義差異 3 ?九五折percent discount(five percent off)?座鐘 standing clock ?三角債 debt chain ?三角戀 love triangle 詞義差異 4 ?傳銷 pyramid selling ?雞皮疙瘩 gooseflesh ?腳踏兩條船 fence-sitter ?魚尾紋 crow?ˉs feet ?內八字 pigeon-toed ?外八字 goose-toed ?露馬腳 let the cat out of the bag 搭配習慣 1 英漢在詞的搭配能力方面往往有差異。 ?(1)?°吃?± ?吃魚(eat)、吃藥(take);吃閑飯(idle)、吃軟飯(live on one?ˉs wife);吃醋(jealous)、吃老本(draw on your past);吃苦、吃驚、吃香(popular)、吃官司;吃飯館、吃食堂 ?傍大款/富婆(find a sugar daddy/mummy) 搭配習慣 2 ?翻譯時應當注意: ?--During emergency, people should use the stairs instead of the elevator.?緊急狀況下,人們應該走樓道,不要乘電梯。 詞序對比 例子: He was daring and resourceful besides being a fine shot.屢戰屢敗 屢敗屢戰 有什么吃什么 吃什么有什么 John did not marry Mary because he loved her.狀語及定語的位置;大小 前后;因果順序;否定轉移;語序的靈活與相對固定 中考英語詞法復習總結 1.掌握所學單詞的形態變化,中考英語復習語法。 2.掌握簡單句的五種基本句型,四筆頭練習基本正確。 3.能理解不復雜的、含有狀語從句或賓語從句的復合句。 4.掌握動詞的五種基本時態的基本用法。 5.能理解并初步掌握過去進行時、過去完成時和過去將來時的基本用法。 6.掌握一般現在時、一般過去時的被動語態的基本用法。 7.掌握動詞不定式作賓語、賓語補足語和狀語的用法。 語法知識是在掌握一定量的單詞和短語的基礎上才能獲得的。因此,單詞的形態變化和簡單句的五種基本句型是語法學習的基礎之基礎。五種基本時態和含有不復雜的狀語從句及賓語從句的復合句是初中畢業班學生學習的重點也是語法學習的難點。五種基本時態中的一般過去時和現在完成時的基本用法及其區別是學習的難點。狀語從句中的時態問題,賓語從句中的主語和謂語的語序問題是學生感到頭痛的問題。被動語態是中國學生最不喜歡學習和使用的一種語態。因此,學生在學習時,時常感覺到很困難。動詞不定式是初中英語語法中的一個重點。不定式在句中作賓語、賓語補足語和狀語等用法均要求掌握,特別是一些動詞,有些后面要求跟不定式作賓語,有些則要求跟動詞一ing形式作賓語。 總之,語法部分是英語學習的重點和難點。語法知識掌握得好,將大大加快英語學習的進程。 語法部分歷年來是中考的必考內容。考試的范圍廣,涉及單詞詞形變化、基本句子結構、五種基本時態搬動語態、不定式用法以及狀語從句、賓語從句,等等。近年來,在教學改革方面加大了對聽說教學的力度,初中段以培養學生的交際能力為主,為高中段的英語學習打好基礎,對語法知識的要求作了調整,降低了難度,但考查的范圍并沒有減小。單純考語法知識的題比以前明顯減少。試題往往設置一個情景,在對話中考查時態及基本句型。當然,有些語法項目設置在單句中,如:不定式、被動語態以及詞語搭配。 語言學習是一個積累的過程,不記住相當數量的詞語、習慣用語。句型和語法規則,是學不好英語的。因此,對詞形變換、句型結構、狀語從句中的時態以及常用的五種基本時態的考查仍將是中考命題的熱點。 動詞及其時態是英語學習最重要的部分,也是學習的難點。被動語態也是學習的難點。賓語從句和狀語從句是復合句中最重要、最常用的結構,是初中畢業生必須掌握的從句。注意現在時、過去時和將來時及現在完成時的基本用法以及句中的副詞的用法,尤其要注意過去時與現在完成時的區別。賓語從句要注意從句結構的語序問題和時態問題;狀語從句要注意在時間狀語從句和條件狀語從句中用一般現在時表示將來時態。動詞、時態與語態與從句一定要在大量課文和對話的句子中反復操練,才能真正學會。只要你在復習和應試中注意以上幾點,考試就一定能取得好成績。第三篇:詞法分析設計實驗報告(附代碼)
第四篇:4.英漢詞法對比
第五篇:中考英語詞法復習總結