導航:首頁 > 源碼編譯 > 最小語法單位編譯原理

最小語法單位編譯原理

發布時間:2025-05-22 23:23:14

㈠ 幫我看看下面 編譯原理 的題目: 謝謝!

23. D

24. D

25. A

26. D

27. C

28. B

29. D

30. A

31. A

32. B

33. A

34. 不太確定,蒙D

35. A

36. 不太確定,蒙A

37. D

38. C

39. D

40. 不知道


二、

  1. A,B

  2. A,D

  3. C,D

  4. A,C

  5. A,B,D

  6. A,B,C,D

㈡ 我想自己開發軟體需要學習什麼

方法/步驟1:
重視基礎課的學習
計算機雖然是高科技的象徵,但又受到其它專業發展的制約。計算機專業知識的學習同樣要加強一些相關知識的學習。計算機學習過程往往是由硬體開始,走向軟體,但最終又會走向硬體。一個軟體開發高手非常注重程序效率,而效率卻往往與計算機硬體知識是緊密相關。
因此高等數學、離散數學、線性代數等數學知識的學習也有一定需求。尤其是軟體開發高手,開發過程會涉及數學方面往往會更多一些。
要自始自終地加強英語的學習。因為目前的計算機程序設計語言主要是外國開發的,編代碼的主要語句往往是英文,中文通常是做解釋和說明用。有一定的英文基礎,在計算機學習上可以事半功倍。
方法/步驟2:
重視編程基本功的學習
學習軟體需要什麼?一個優秀的程序員也不是十天半個月就能夠造就出來的,必須要扎扎實實學好編程基礎知識,要經歷一個漫長且辛苦的學習和程序開發過程。因此計算機專業學生,首先要做好吃苦的准備。
當我們在學習一些基礎課如java,C語言等,我們會感覺到似乎這些沒什麼大作用,這些近似於低級語言的東西好像再努力也難成大器呀!計算機教育應該重視代碼編程的教育,專業學生也不能忽視代碼開發的學習。
如果你要問C語言這種代碼開發功能具有多大的用處,大名鼎鼎的UNIX操作系統就是使用C語言書寫的。而且我們玩的所有游戲幾乎也是使用C語言編寫的。
學習C語言的難度比學習匯編語言的難度小多了,而且C語言是一門「必修課」所以每一位立志成為電腦編程者的用戶都必須征服C語言這座山峰。
方法/步驟3:
理論聯系實踐
學習編寫程序,不僅要領悟老師的各種知識點,多看教材,還要結合課程重視上機的練習。很多學生在理解老師知識點和看教材上花了很多時間,卻不重視上機的練習,最終會走向「書獃子」類,很難在軟體開發中佔有一席之地。在看教材、聽課的同時,要將知識點在上機過程中做第二消化,這樣便比光消化課本會強得多。當然每次上機應該做好准備,很多學生是無目標的上機,其學習效率當
然會很低。上機前要計劃一下上機做些什麼,要有一些新思路來設計和調試程序。只有在上機過程中不斷發現問題,解決問題,才能逐步邁向程序員之路。又一些同學光重視上機,
忽視理論的學習,這些同學剛開始好像進步快,但到了一定的層次,就會停滯不前了。因此,實操要與理論同步,緊密結合,方可為編程打下扎實的基礎。
總結學習軟體需要什麼?軟體編程需要實踐。
方法/步驟4:
深入學習,練就高手
經過一定時間的學習、實踐,你已經具備了較扎實的計算機編程方法和技巧。正因為你有了上面的基礎,學習起新的語言來更是輕車熟路。
總之,學習軟體需要什麼?實際和其他的一些技術錯不多,只要你肯吃苦,沒什麼學不成的,所以只有想不到沒有做不到,告誡軟體愛好著要想掌握它,就要實踐、實踐、再實踐。當學到了一種新的技術或知識時,多實踐是鞏固學習的一種最好最有效的方法。

㈢ 編譯是什麼意思

問題一:編譯和解釋的區別是什麼? 後來為了方便記憶,就將用0、1序列表示的機器指令都用符號助記,這些與機器指令一一對應的助記符就成了匯編指令,從而誕生了匯編語言。無論是機器指令還是匯編指令都是面向機器的,統稱為低級語言。因為是針對特定機器的機器指令的助記符,所以匯編語言是無法獨立於機器(特定的CPU體系結構)的。但匯編語言也是要經過翻譯成機器指令才能執行的,所以也有將運行在一種機器上的匯編語言翻譯成運行在另一種機器上的機器指令的方法,那就是交叉匯編技術。高級語言是從人類的邏輯思維角度出發的計算機語言,抽象程度大大提高,需要經過編譯成特定機器上的目標代碼才能執行,一條高級語言逗遲的語句往往需要若干條機器指令來完成。高級語言獨立於機器的特性是靠編譯器為不同機器生成不同的目標代碼(或機器指令)來實現的。那具體的說,要將高級語言編譯到什麼程度呢,這又跟編譯的技術有關了,既可以編譯成直接可執行的目標代碼,也可以編譯成一種中間表示,然後拿到不同的機器和系統上去執行,這種情況通常又需要支撐環境,比如解釋器或虛擬機的支持,Java程序編譯成bytecode,再由不同平台上的虛擬機執行就是很好的例子。所以,說高級語言不依賴於機器,是指在不同的機器或平台上高級語言的程序本身不變,而通過編譯器編譯得到的目標代碼去適應不同的機器。從這個意義上來說,通過交叉匯編,一些匯消鍵編程序也可以獲得不同機器之間的可移植性,但這種途徑獲得的移植性遠遠不如高級語言來的方便和實用性大。二、編譯與解釋編譯是將源程序翻譯成可執行的目標代碼,翻譯與執行是分開的;而解釋是對源程序的翻譯與執行一次性完成,不生成可存儲的目標代碼。這只是表象,二者背後的最大區別是:對解釋執行而言,程序運行時的控制權在解釋器而不在用戶程序;對編譯執行而言,運行時的控制權在用戶程序。解釋具有良好的動態特性和可移植性,比如在解釋執行時可以動態改變變數的類型、對程序進行修改以及在程序中插入良好的調試診斷信息等,而將解釋器移植到不同的系統上,則程序不用改動就可以在移植了解釋器的系統上運行。同時解釋器山橋李也有很大的缺點,比如執行效率低,佔用空間大,因為不僅要給用戶程序分配空間,解釋器本身也佔用了寶貴的系統資源。編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快;而解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯後的程序運行的快的.1、編輯:用編輯軟體(EDIT.EXE或記事本)形成源程序(.ASM),如:LX.ASM; 2、匯編:用匯編程序(MASM.EXE)對源程序進行匯編,形成目標文件(.OBJ),格式如下:MASM LX.ASM; 3、連接:用連接程序(LINK.EXE)對目標程序進行連接,形成可執行文件(.EXE),格式如下:LINK LX.OBJ; 4、執行:如果結果在屏幕在顯示,則直接執行可執行文件。 5、調試:用調試程序(DEBUG.EXE)對可執行文件進行調試,格式如下:DEBUG LX.EXE1. 在具體計算機上實現一種語言,首先要確定的是表示該語言語義解釋的虛擬計算機,一個關鍵的問題是程序執行時的基本表示是實際計算機上的機器語言還是虛擬機的機器語言。這個問題決定了語言的實現。根據這個問題的回答,可以將程序設計語言劃分為兩大類:編譯型語言和解釋型語言。2. 由編譯型語言編寫的源程序需要經過編譯、匯編和鏈接才能輸出目標代碼,然後機器執行目標代碼,得出運行結果,目標代碼由機器指令組成,一般不能獨立運行,因為源程序中可能使用了某些......>>

問題二:函數的編譯是什麼意思??? 你說的這個問題,是把(不僅僅是數學上的函數式子)某個項目內容,進行編程。也就通過設計好了的運算程序,上百上千次進行與或非門運算。你想,電子,也就是通電斷電額事。寫成數字,就是010100001110000000111101111等等。
這需要專門的【編程員】大費腦筋的。有時候,需要好幾年。

問題三:編譯程序是什麼意思?編譯是什麼意思? 把用高級程序設計語言書寫的源程序,翻譯成等價的計算機匯編語言或機器語言書寫的目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。編譯程序的實現演算法較為復雜。這是因為它所翻譯的語句與目標語言的指令不是一一對應關系,而是一多對應關系;同時也因為它要處理遞歸調用、動態存儲分配、多種數據類型,以及語句間的緊密依賴關系。但是,由於高級程序設計語言書寫的程序具有易讀、易移植和表達能力強等特點,編譯程序廣泛地用於翻譯規模較大、復雜性較高、且需要高效運行的高級語言書寫的源程序。

問題四:編譯時間是什麼意思? 在ROM發布的時候,會提供這個ROM的一些版本。
編譯時間能夠告訴用戶這個系統的發布時間。
有一些軟體會提供類似的編譯Revision。功能基本上相同。

問題五:編譯錯誤是什麼意思 編譯錯誤,一般指語法上的錯誤
運行錯誤,一般指程序上的bug

問題六:什麼是編譯原理 編譯:就是將程序語言進行翻譯,生成可供用戶直接執行的二進制代碼,即可執行文件。
任務是個比較模糊的概念,指的是操作系統中正在進行的工作,既可以指進程,也可以指程序。
程序指的是可以連續執行,並能夠完成一定任務的一條條指令的 *** 。
進程是程序在一個數據 *** 上運行的過程,它是傳統操作系統進行資源分配和調度的一個獨立單位。
線程是一個指令執行序列,是操作系統調度的最小單位。一個或多個線程構成進程,構成一個進激的線程之間共享資源。進程和線程之間的最大區別就是線程不能獨立擁有資源,進程擁有自己的資源。

問題七:編譯原理中V*是什麼意思 V是一個符號 *** ,假設V指的是三個符號a, b, c的 *** ,記為 V = {a, b, c }
V* 讀作「V的閉包」,它的數學定義是V自身的任意多次自身連接(乘法)運算的積,也是一個 *** 。
也就是說,用V中的任意符號進行意多次(包括0次)連接,得到的符號串,都是V*這個 *** 中的元素。
0次連接的結果是不含任何符號的空串,記為 ε
1次連接就是只有一個符號的符號串,比如,a,b, c
2次連接是兩個符號構成的符號串,比如,aa, ab, ac, ba, bb, bc,等等
……
n次連接是一個長度為n、由a、b、c三個符號構成的符號串,比如abaacbbac……
因此,V*包含一切由a,b,c三個符號連接而成的、任意長度的符號串(以及空串ε)

問題八:編譯和預編譯有什麼區別。 60分 預編譯又稱為預處理,是做些代碼文本的替換工作。
處理#開頭的指令,比如拷貝#include包含的文件代碼,#define宏定義的替換,條件編譯等
就是為編譯做的預備工作的階段
主要處理#開始的預編譯指令
編譯(pilation , pile) 1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。 2、用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。

問題九:C語言中程序編譯的正確理解及其含義 預處理。首先程序會被送給預處理器了。預處理器執行以#開頭的命令(通常稱為指令)。預處理器有點類似於編輯器,它可以給程序添加內容,也可以對程序進行修改。

編譯。 修改後的程序現在可以進入編譯器了。編譯器會把程序編譯成機器指令(即目標代碼)。然而,這樣的程序是不可運行的。

鏈接。 在最後步驟中,鏈接器把編譯器產生的目標代碼和所需的其他附加代碼整合在一起,這樣才最終產生完全可執行的程序。這些附加代碼包括程序中用到的庫函數(如printf函數)

問題十:編譯和解釋的區別是什麼? 後來為了方便記憶,就將用0、1序列表示的機器指令都用符號助記,這些與機器指令一一對應的助記符就成了匯編指令,從而誕生了匯編語言。無論是機器指令還是匯編指令都是面向機器的,統稱為低級語言。因為是針對特定機器的機器指令的助記符,所以匯編語言是無法獨立於機器(特定的CPU體系結構)的。但匯編語言也是要經過翻譯成機器指令才能執行的,所以也有將運行在一種機器上的匯編語言翻譯成運行在另一種機器上的機器指令的方法,那就是交叉匯編技術。高級語言是從人類的邏輯思維角度出發的計算機語言,抽象程度大大提高,需要經過編譯成特定機器上的目標代碼才能執行,一條高級語言的語句往往需要若干條機器指令來完成。高級語言獨立於機器的特性是靠編譯器為不同機器生成不同的目標代碼(或機器指令)來實現的。那具體的說,要將高級語言編譯到什麼程度呢,這又跟編譯的技術有關了,既可以編譯成直接可執行的目標代碼,也可以編譯成一種中間表示,然後拿到不同的機器和系統上去執行,這種情況通常又需要支撐環境,比如解釋器或虛擬機的支持,Java程序編譯成bytecode,再由不同平台上的虛擬機執行就是很好的例子。所以,說高級語言不依賴於機器,是指在不同的機器或平台上高級語言的程序本身不變,而通過編譯器編譯得到的目標代碼去適應不同的機器。從這個意義上來說,通過交叉匯編,一些匯編程序也可以獲得不同機器之間的可移植性,但這種途徑獲得的移植性遠遠不如高級語言來的方便和實用性大。二、編譯與解釋編譯是將源程序翻譯成可執行的目標代碼,翻譯與執行是分開的;而解釋是對源程序的翻譯與執行一次性完成,不生成可存儲的目標代碼。這只是表象,二者背後的最大區別是:對解釋執行而言,程序運行時的控制權在解釋器而不在用戶程序;對編譯執行而言,運行時的控制權在用戶程序。解釋具有良好的動態特性和可移植性,比如在解釋執行時可以動態改變變數的類型、對程序進行修改以及在程序中插入良好的調試診斷信息等,而將解釋器移植到不同的系統上,則程序不用改動就可以在移植了解釋器的系統上運行。同時解釋器也有很大的缺點,比如執行效率低,佔用空間大,因為不僅要給用戶程序分配空間,解釋器本身也佔用了寶貴的系統資源。編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快;而解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯後的程序運行的快的.1、編輯:用編輯軟體(EDIT.EXE或記事本)形成源程序(.ASM),如:LX.ASM; 2、匯編:用匯編程序(MASM.EXE)對源程序進行匯編,形成目標文件(.OBJ),格式如下:MASM LX.ASM; 3、連接:用連接程序(LINK.EXE)對目標程序進行連接,形成可執行文件(.EXE),格式如下:LINK LX.OBJ; 4、執行:如果結果在屏幕在顯示,則直接執行可執行文件。 5、調試:用調試程序(DEBUG.EXE)對可執行文件進行調試,格式如下:DEBUG LX.EXE1. 在具體計算機上實現一種語言,首先要確定的是表示該語言語義解釋的虛擬計算機,一個關鍵的問題是程序執行時的基本表示是實際計算機上的機器語言還是虛擬機的機器語言。這個問題決定了語言的實現。根據這個問題的回答,可以將程序設計語言劃分為兩大類:編譯型語言和解釋型語言。2. 由編譯型語言編寫的源程序需要經過編譯、匯編和鏈接才能輸出目標代碼,然後機器執行目標代碼,得出運行結果,目標代碼由機器指令組成,一般不能獨立運行,因為源程序中可能使用了某些......>>

㈣ 編譯原理的終結符和非終結符如何理解

一、非終結符:

1、非終結符可以再分成更細的東西。

2、不是終結符的都是非終結符。非終結符可理解為一個可拆分元素,而終結符是不可拆分的最小元素。終結符號就是語言中用到的基本元素,名詞、動詞、形容詞、助詞等等基本語言單位。

二、終結符:

1、終結符直接就代表一個意思,比如關鍵字if就不能再分成i和f了。

2、通俗的說就是不能單獨出現在推導式左邊的符號,也就是說終結符不能再進行推導。非終結符則是"語法"中用到的元素,除非談論"語法",一般交談語言中並不會用到非終結符。比如:主語、短語、片語、句子。

(4)最小語法單位編譯原理擴展閱讀:

終結符和非終結符在計算機科學和語言學的領域是用來指定推導規則的元素。在某個形式語法之中,終結符和非終結符是兩個不交的集合。

從形式語言中定義看,終結符(T)就是不可再分的字元或串。而非終結符(N)是一個遞歸形式的定義:由終結符和至少一個非終結符號組成的串。

如果編譯過程中發現源程序有錯誤,編譯程序應報告錯誤的性質和錯誤的發生的地點,並且將錯誤所造成的影響限制在盡可能小的范圍內,使得源程序的其餘部分能繼續被編譯下去,有些編譯程序還能自動糾正錯誤,這些工作由錯誤處理程序完成。

需要注意的是,一般上編譯器只做語法檢查和最簡單的語義檢查,而不檢查程序的邏輯。

網路-終結符

網路-編譯

㈤ 編譯原理中詞法分析和語法分析的任務分別是什麼

詞法分析的主要任務是將源代碼轉換為一系列有意義的詞彙單位,這個過程可以分解字元序列形成單片語合,我們稱之為詞法單元或記號。在詞法分析中,分析器識別關鍵字、標識符、常量和運算符等元素,形成一個詞法單元序列。

語法分析的任務是根據預設的語法規則,分析詞法單元序列的結構。這一步驟旨在判斷序列是否遵循既定的語法規則。語法分析器通過構建語法樹或語法分析樹,展示源代碼的結構。在此過程中,語法分析器還會檢測語法錯誤,並生成相應的錯誤信息。

詞法分析與語法分析是編譯原理中的兩個關鍵環節,它們共同協作完成源代碼的分析和轉換。詞法分析將源代碼轉換為詞法單元序列,為後續的語法分析提供數據輸入。而語法分析則依據語法規則對詞法單元序列進行深入分析,判斷其是否符合語法規則。經過這兩個步驟,編譯器能夠對源代碼進行更深層次的語義分析、優化,並最終生成目標代碼。

㈥ 編譯原理題目

習題一、單項選擇題
1、將編譯程序分成若干個「遍」是為了 。
a.提高程序的執行效率
b.使程序的結構更加清晰
c.利用有限的機器內存並提高機器的執行效率
d.利用有限的機器內存但降低了機器的執行效率
2、構造編譯程序應掌握 。
a.源程序 b.目標語言
c.編譯方法 d.以上三項都是
3、變數應當 。
a.持有左值 b.持有右值
c.既持有左值又持有右值 d.既不持有左值也不持有右值
4、編譯程序絕大多數時間花在 上。
a.出錯處理 b.詞法分析
c.目標代碼生成 d.管理表格
5、 不可能是目標代碼。
a.匯編指令代碼 b.可重定位指令代碼
c.絕對指令代碼 d.中間代碼
6、使用 可以定義一個程序的意義。
a.語義規則 b.詞法規則
c.產生規則 d.詞法規則
7、詞法分析器的輸入是 。
a.單詞符號串 b.源程序
c.語法單位 d.目標程序
8、中間代碼生成時所遵循的是- 。
a.語法規則 b.詞法規則
c.語義規則 d.等價變換規則
9、編譯程序是對 。
a.匯編程序的翻譯 b.高級語言程序的解釋執行
c.機器語言的執行 d.高級語言的翻譯
10、語法分析應遵循 。
a.語義規則 b.語法規則
c.構詞規則 d.等價變換規則
解答
1、將編譯程序分成若干個「遍」是為了使編譯程序的結構更加清晰,故選b。
2、構造編譯程序應掌握源程序、目標語言及編譯方法等三方面的知識,故選d。
3、對編譯而言,變數既持有左值又持有右值,故選c。
4、編譯程序打交道最多的就是各種表格,因此選d。
5、目標代碼包括匯編指令代碼、可重定位指令代碼和絕對指令代碼3種,因此不是目標代碼的只能選d。
6、詞法分析遵循的是構詞規則,語法分析遵循的是語法規則,中間代碼生成遵循的是語義規則,並且語義規則可以定義一個程序的意義。因此選a。
7、b 8、c 9、d 10、c
二、多項選擇題
1、編譯程序各階段的工作都涉及到 。
a.語法分析 b.表格管理 c.出錯處理
d.語義分析 e.詞法分析
2、編譯程序工作時,通常有 階段。
a.詞法分析 b.語法分析 c.中間代碼生成
d.語義檢查 e.目標代碼生成
解答
1.b、c 2. a、b、c、e
三、填空題
1、解釋程序和編譯程序的區別在於 。
2、編譯過程通常可分為5個階段,分別是 、語法分析 、代碼優化和目標代碼生成。 3、編譯程序工作過程中,第一段輸入是 ,最後階段的輸出為 程序。
4、編譯程序是指將 程序翻譯成 程序的程序。 解答
是否生成目標程序 2、詞法分析 中間代碼生成 3、源程序 目標代碼生成 4、源程序 目標語言
一、單項選擇題
1、文法G:S→xSx|y所識別的語言是 。
a. xyx b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法G描述的語言L(G)是指 。
a. L(G)={α|S+ ⇒α , α∈VT*} b. L(G)={α|S*⇒α, α∈VT*}
c. L(G)={α|S*⇒α,α∈(VT∪VN*)} d. L(G)={α|S+ ⇒α, α∈(VT∪VN*)}
3、有限狀態自動機能識別 。
a. 上下文無關文法 b. 上下文有關文法
c.正規文法 d. 短語文法
4、設G為算符優先文法,G的任意終結符對a、b有以下關系成立 。
a. 若f(a)>g(b),則a>b b.若f(a)<g(b),則a<b
c. a~b都不一定成立 d. a~b一定成立
5、如果文法G是無二義的,則它的任何句子α 。
a. 最左推導和最右推導對應的語法樹必定相同
b. 最左推導和最右推導對應的語法樹可能不同
c. 最左推導和最右推導必定相同
d. 可能存在兩個不同的最左推導,但它們對應的語法樹相同
6、由文法的開始符經0步或多步推導產生的文法符號序列是 。
a. 短語 b.句柄 c. 句型 d. 句子
7、文法G:E→E+T|T
T→T*P|P
P→(E)|I
則句型P+T+i的句柄和最左素短語為 。
a.P+T和i b. P和P+T c. i和P+T+i d.P和T
8、設文法為:S→SA|A
A→a|b
則對句子aba,下面 是規范推導。
a. SÞSAÞSAAÞAAAÞaAAÞabAÞaba
b. SÞSAÞSAAÞAAAÞAAaÞAbaÞaba
c. SÞSAÞSAAÞSAaÞSbaÞAbaÞaba
d. SÞSAÞSaÞSAaÞSbaÞAbaÞaba
9、文法G:S→b|∧(T)
T→T,S|S
則FIRSTVT(T) 。
a. {b,∧,(} b. {b,∧,)} c.{b,∧,(,,} d.{b,∧,),,}
10、產生正規語言的文法為 。
a. 0型 b. 1型 c. 2型 d. 3型
11、採用自上而下分析,必須 。
a. 消除左遞歸 b. 消除右遞歸 c. 消除回溯 d. 提取公共左因子
12、在規范歸約中,用 來刻畫可歸約串。
a. 直接短語 b. 句柄 c. 最左素短語 d. 素短語
13、有文法G:E→E*T|T
T→T+i|i
句子1+2*8+6按該文法G歸約,其值為 。
a. 23 B. 42 c. 30 d. 17
14、規范歸約指 。
a. 最左推導的逆過程 b. 最右推導的逆過程
c. 規范推導 d. 最左歸約的逆過程
[解答]
1、選c。
2、選a。
3、選c。
4、雖然a與b沒有優先關系,但構造優先函數後,a與b就一定存在優先關系了。所以,由f(a)>g)(b)或f(a)<g(b)並不能判定原來的a與b之間是否存在優先關系:故選c。
5、如果文法G無二義性,則最左推導是先生長右邊的枝葉:對於d,如果有兩個不同的是了左推導,則必然有二義性。故選a。
6、選c。
7、由圖2-8-1的語法樹和優先關系可以看出應選b。

8、規范推導是最左推導,故選d。
9、由T→T,…和T→(… 得FIRSTVT(T))={(,,)};
由T→S得FIRSTVT(S)⊂FIRSTVT(T),而FIRSTVT(S)={b,∧,(};即
FIRSTVT(T)={b,∧,(,,}; 因此選c。
10、d 11、c 12、b 13、b 14、b
二、多項選擇題
1、下面哪些說法是錯誤的 。
a. 有向圖是一個狀態轉換圖 b. 狀態轉換圖是一個有向圖
c.有向圖是一個DFA d.DFA可以用狀態轉換圖表示
2、對無二義性文法來說,一棵語法樹往往代表了 。
a. 多種推導過程 b. 多種最左推導過程 c.一種最左推導過程
d.僅一種推導過程 e.一種最左推導過程
3、如果文法G存在一個句子,滿足下列條件 之一時,則稱該文法是二義文法。
a. 該句子的最左推導與最右推導相同
b. 該句子有兩個不同的最左推導
c. 該句子有兩棵不同的最右推導
d. 該句子有兩棵不同的語法樹
e.該句子的語法樹只有一個
4、有一文法G:S→AB
A→aAb|ε
B→cBd|ε
它不產生下面 集合。
a. {anbmcndm|n,m≥0} b. {anbncmdm|n,m>0}
c. {anbmcmdn|n,m≥0} d. {anbncmdm|n,m≥0}
e. {anbncndn|n≥0}
5、自下而上的語法分析中,應從 開始分析。
a. 句型 b. 句子 c. 以單詞為單位的程序
d. 文法的開始符 e. 句柄
6、對正規文法描述的語言,以下 有能力描述它。
a.0型文法 b.1型文法 c.上下文無關文法 d.右線性文法 e.左線性文法
解答 1、e、a、c 2、a、c、e 3、b、c、d 4、a、c 5、b、c 6、a、b、c、d、e
三、填空題
1、文法中的終結符和非終結符的交集是 。詞法分析器交給語法分析器的文法符號一定是 ,它一定只出現在產生式的 部。
2、最左推導是指每次都對句型中的 非終結符進行擴展。
3、在語法分析中,最常見的兩種方法一定是 分析法,另一是 分析法。
4、採用 語法分析時,必須消除文法的左遞歸。
5、 樹代表推導過程, 樹代表歸約過程。
6、自下而上分析法採用 、歸約、錯誤處理、 等四種操作。
7、Chomsky把文法分為 種類型,編譯器構造中採用 和 文法,它們分別產生 和 語言,並分別用 和 自動機識別所產生的語言。
解答 1、空集 終結符 右
2、最左
3、自上而上 自下而上
4、自上而上
5、語法 分析
6、移進 接受
7、4 2 型 3型 上下文無關語言 正規語言 下推自動機 有限
四、判斷題
1、文法 S→aS|bR|ε描述的語言是(a|bc)* ( )
R→cS
2、在自下而上的語法分析中,語法樹與分析樹一定相同。 ( )
3、二義文法不是上下文無關文法。 ( )
4、語法分析時必須先消除文法中的左遞歸。 ( )
5、規范歸約和規范推導是互逆的兩個過程。 ( )
6、一個文法所有句型的集合形成該文法所能接受的語言。 ( )
解答 1、對 2、錯 3、錯 4、錯 5、錯 6、錯
五、簡答題
1、句柄 2、素短語 3、語法樹 4、歸約 5、推導
[解答]
1、句柄:一個句型的最左直接短語稱為該句型的句柄。
2、素短語:至少含有一個終結符的素短語,並且除它自身之外不再含任何更小的素短語。
3、語法樹:滿足下面4個條件的樹稱之為文法G[S]的一棵語法樹。
①每一終結均有一標記,此標記為VN∪VT中的一個符號;
②樹的根結點以文法G[S]的開始符S標記;
③若一結點至少有一個直接後繼,則此結點上的標記為VN中的一個符號;
④若一個以A為標記的結點有K個直接後繼,且按從左至右的順序,這些結點的標記分別為X1,X2,…,XK,則A→X1,X2,…,XK,必然是G的一個產生式。
4、歸約:我們稱αγβ直接歸約出αAβ,僅當A→γ 是一個產生式,且α、β∈(VN∪VT)*。歸約過程就是從輸入串開始,反復用產生式右部的符號替換成產生式左部符號,直至文法開始符。
5、推導:我們稱αAβ直接推出αγβ,即αAβÞαγβ,僅當A→ γ 是一個產生式,且α、β∈(VN∪VT)*。如果α1Þα2Þ…Þαn,則我們稱這個序列是從α1至α2的一個推導。若存在一個從α1αn的推導,則稱α1可推導出αn。推導是歸約的逆過程。
六、問答題
1、給出上下文無關文法的定義。
[解答]
一個上下文無關文法G是一個四元式(VT,VN,S, P),其中:
●VT是一個非空有限集,它的每個元素稱為終結符號;
●VN是一個非空有限集,它的每個元素稱為非終結符號,VT∩VN=Φ;
●S是一個非終結符號,稱為開始符號;
●P是一個產生式集合(有限),每個產生式的形式是P→α,其中,P∈VN,
α∈(VT∪VN)*。開始符號S至少必須在某個產生式的左部出現一次。
2、文法G[S]:
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc
(1)它是Chomsky哪一型文法?
(2)它生成的語言是什麼?
[解答]
(1)由於產生式左部存在終結符號,且所有產生式左部符號的長度均小於等於產生式右部的符號長度,所以文法G[S]是Chomsky1型文法,即上下文有關文法。
(2)按產生式出現的順序規定優先順序由高到低(否則無法推出句子),我們可以得到:
SÞabQÞabc
SÞaSPQÞaabQPQÞaabPQQÞaabbQQÞaabbcQÞaabbcc
SÞaSPQÞaaSPQPQÞaaabQPQPQÞaaabPQQPQÞaaabPQPQQÞaaaPPQQQÞ
aaabbPqqqÞaaabbQQQÞaaabbbcQQÞaaabbbccQÞaaabbbccc
……
於是得到文法G[S]生成的語言L={anbncn|n≥1}
3、按指定類型,給出語言的文法。
L={aibj|j>i≥1}的上下文無關文法。
【解答】
(1)由L={aibj|j>i≥1}知,所求該語言對應的上下文無關文法首先應有S→aSb型產生式,以保證b的個數不少於a的個數;其次,還需有S→Sb或S→bS型的產生式,用以保證b的個數多於a的個數;也即所求上下文無關文法G[S]為:
G[S]:S→aSb|Sb|b
4、有文法G:S→aAcB|Bd
A→AaB|c
B→bScA|b
(1)試求句型aAaBcbbdcc和aAcbBdcc的句柄;
(2)寫出句子acabcbbdcc的最左推導過程。
【解答】(1)分別畫出對應兩句型的語法樹,如圖2-8-2所示
句柄:AaB Bd

圖2-8-2 語法樹
(2)句子acabcbbdcc的最左推導如下:
SÞaAcBÞaAaBcBÞacaBcBÞacabcBÞacabcbScAÞacabcbBdcA
ÞacabcbbdcAÞacabcbbdcc
5、對於文法G[S]:
S→(L)|aS|a L→L, S|S
(1)畫出句型(S,(a))的語法樹。(2)寫出上述句型的所有短語、直接短語、句柄和素短語。
【解答】
(1)句型(S,(a))的語法樹如圖2-8-3所示

(2)由圖2-8-3可知:
①短語:S、a、(a)、S,(a)、(S,(a));
②直接短語:a、S;
③句柄:S;
④素短語:素短語可由圖2-8-3中相鄰終結符之間的優先關系求得,即;

因此素短語為a。
6、考慮文法G[T]:
T→T*F|F
F→F↑P|P
P→(T)|i
證明T*P↑(T*F)是該文法的一個句型,並指出直接短語和句柄。
【解答】
首先構造T*P↑(T*F)的語法樹如圖2-8-4所示。

由圖2-8-4可知,T*P↑(T*F)是文法G[T]的一個句型。
直接短語有兩個,即P和T*F;句柄為P。

一、單項選擇題
1、詞法分析所依據的是 。
a. 語義規則 b. 構詞規則 c. 語法規則 d. 等價變換規則
2、詞法分析器的輸出結果是 。
a. 單詞的種別編碼 b. 單詞在符號表中的位置
c. 單詞的種別編碼和自身值 d. 單詞自身值
3、正規式M1和M2等價是指 。
a. M1和M2的狀態數相等 b. M1和M2的有向弧條數相等
c. M1和M2所識別的語言集相等 d. M1和M2狀態數和有向弧條數相等
4、狀態轉換圖(見圖3-6-1)接受的字集為 。

a. 以 0開頭的二進制數組成的集合 b. 以0結尾的二進制數組成的集合
c. 含奇數個0的二進制數組成的集合 d. 含偶數個0的二進制數組成的集合
5、詞法分析器作為獨立的階段使整個編譯程序結構更加簡潔、明確,因此, 。
a. 詞法分析器應作為獨立的一遍 b. 詞法分析器作為子程序較好
c. 詞法分析器分解為多個過程,由語法分析器選擇使用 d. 詞法分析器並不作為一個獨立的階段
解答 1、b 2、c 3、c 4、d 5、b
二、多項選擇題
1、在詞法分析中,能識別出 。
a. 基本字 b. 四元式 c. 運算符
d. 逆波蘭式 e. 常數
2、令∑={a,b},則∑上所有以b開頭,後跟若干個ab的字的全體對應的正規式為 。
a. b(ab)* b. b(ab)+ c.(ba)*b
d. (ba)+b e. b(a|b)
解答 1、a、c、e 2、a、b、d
三、填空題
1、確定有限自動機DFA是 的一個特例。
2、若二個正規式所表示的 相同,則認為二者是等價的。
3、一個字集是正規的,當且僅當它可由 所 。
解答 1、NFA 2、正規集 3、DFA(NFA)所識別
四、判斷題
1、一個有限狀態自動機中,有且僅有一個唯一終態。 ( )
2、設r和s分別是正規式,則有L(r|s)=L(r)|L(s)。 ( )
3、自動機M和M′的狀態數不同,則二者必不等價。 ( )
4、確定的自動機以及不確定的自動機都能正確地識別正規集。 ( )
5、對任意一個右線性文法G,都存在一個NFA M,滿足L(G)=L(M)。 ( )
6、對任意一個右線性文法G,都存在一個DFA M,滿足L(G)=L(M)。 ( )
7、對任何正規表達式e,都存在一個NFA M,滿足L(G)=L(e)。 ( )
8、對任何正規表達式e,都存在一個DFA M,滿足L(G)=L(e)。 ( )
解答 1 、2、3、錯 4、5、6、7、8、正確
五、基本題
1、設M=({x,y}, {a,b}, f,x,{y})為一非確定的有限自動機,其中f定義如下:
f(x,a)={x,y} f(x,b)={y}
f(y,a)=φ f(y,b)={x,y}
試構造相應的確定有限自動機M′。
解答:對照自動機的定義M=(S,Σ,f,S0,Z),由f的定義可知f(x,a)、f(y,b)均為多值函數,所以是一非確定有限自動機,先畫出NFA M相應的狀態圖,如圖3-6-2所示。

用子集法構造狀態轉換矩陣表3-6-3所示。
I Ia Ib
{x} {x,y} {y}
{y} — {x,y}
{x,y} {x,y} {x,y}
將轉換矩陣中的所有子集重新命名而形成表3-6-4所示的狀態轉換矩陣。
表3-6-4 狀態轉換矩陣
a b
0 2 1
1 — 2
2 2 2
即得到M′=({0,1,2}, {a,b}, f,0, {1,2}),其狀態轉換圖如圖3-6-5所示。

將圖3-6-5的DFA M′最小化。首先,將M′的狀態分成終態組{1,2}與非終態組{0};其次,考察{1,2}。由於{1,2}a={1,2}b={2}⊂{1,2},所以不再將其劃分了,也即整個劃分只有兩組{0},{1,2}:令狀態1代表{1,2},即把原來到達2的弧都導向1,並刪除狀態2。最後,得到如圖3-6-6所示化簡DFA M′。

2、對給定正規式b*(d|ad)(b|ab)+,構造其NFA M;
解答:首先用A+=AA*改造正規式得:b*(d|ad)(b|ab)(b|ab)*;其次,構造該正規式的NFA M,如圖3-6-7所示。
求採納為滿意回答。

㈦ 編譯原理

編譯原理):利用編譯程序從源語言編寫的源程序產生目標程序的過程; 用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。

編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成

(7)最小語法單位編譯原理擴展閱讀:

編譯程序的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最後看是否構成一個符合要求的程序,按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程序是最終的一個語法單位。

編譯程序的語法規則可用上下文無關文法來刻畫。語法分析的方法分為兩種:自上而下分析法和自下而上分析法。自上而下就是從文法的開始符號出發,向下推導,推出句子。

而自下而上分析法採用的是移進歸約法,基本思想是:用一個寄存符號的先進後出棧,把輸入符號一個一個地移進棧里,當棧頂形成某個產生式的一個候選式時,即把棧頂的這一部分歸約成該產生式的左鄰符號。

㈧ 我是個菜鳥,求學習方法!

經驗一:
1、不妨給自己定一些時間限制。連續長時間的學習很容易使自己產生厭煩情緒,這時可以把功課分成若干個部分,把每一部分限定時間,例如一小時內完成這份練習、八點以前做完那份測試等等,這樣不僅有助於提高效率,還不會產生疲勞感。如果可能的話,逐步縮短所用的時間,不久你就會發現,以前一小時都完不成的作業,現在四十分鍾就完成了。
2、不要在學習的同時干其他事或想其他事。一心不能二用的道理誰都明白,可還是有許多同學在邊學習邊聽音樂。或許你會說聽音樂是放鬆神經的好辦法,那麼你盡可以專心的學習一小時後全身放鬆地聽一刻鍾音樂,這樣比帶著耳機做功課的效果好多了。
3、不要整個晚上都復習同一門功課。我以前也曾經常用一個晚上來看數學或物理,實踐證明,這樣做非但容易疲勞,而且效果也很差。後來我在每晚安排復習兩三門功課,情況要好多了。
除了十分重要的內容以外,課堂上不必記很詳細的筆記。如果課堂上忙於記筆記,聽課的效率一定不高,況且你也不能保證課後一定會去看筆記。課堂上所做的主要工作應當是把老師的講課消化吸收,適當做一些簡要的筆記即可。
經驗二:
學習效率這東西,我也曾和很多人談起過。我們經常看到這樣的情況:某同學學習極其用功,在學校學,回家也學,不時還熬熬夜,題做得數不勝數,但成績卻總上不去其實面對這樣的情況,我也是十分著急的,本來,有付出就應該有回報,而且,付出的多就應該回報很多,這是天經地義的事。但實際的情況卻並非如此,這里邊就存在一個效率的問題。效率指什麼呢?好比學一樣東西,有人練十次就會了,而有人則需練一百次,這其中就存在一個效率的問題。
如何提高學習效率呢?我認為最重要的一條就是勞逸結合。學習效率的提高最需要的是清醒敏捷的頭腦,所以適當的休息,娛樂不僅僅是有好處的,更是必要的,是提高各項學習效率的基礎。那麼上課時的聽課效率如何提高呢?以我的經歷來看,課前要有一定的預習,這是必要的,不過我的預習比較粗略,無非是走馬觀花地看一下課本,這樣課本上講的內容、重點大致在心裡有個譜了,聽起課來就比較有針對性。預習時,我們不必搞得太細,如果過細一是浪費時間,二是上課時未免會有些鬆懈,有時反而忽略了最有用的東西。上課時認真聽課當然是必須的,但就象我以前一個老師講的,任何人也無法集中精力一節課,就是說,連續四十多分鍾集中精神不走神,是不太可能的,所以上課期間也有一個時間分配的問題,老師講有些很熟悉的東西時,可以適當地放鬆一下。另外,記筆記有時也會妨礙課堂聽課效率,有時一節課就忙著抄筆記了,這樣做,有時會忽略一些很重要的東西,但這並不等於說可以不抄筆記,不抄筆記是不行的,人人都會遺忘,有了筆記,復習時才有基礎,有時老師講得很多,在黑板上記得也很多,但並不需要全記,書上有的東西當然不要記,要記一些書上沒有的定理定律,典型例題與典型解法,這些才是真正有價值去記的東西。否則見啥記啥,勢必影響課上聽課的效率,得不償失。
作題的效率如何提高呢?最重要的是選"好題",千萬不能見題就作,不分青紅皂白,那樣的話往往會事倍功半。題都是圍繞著知識點進行的,而且很多題是相當類似的,首先選擇想要得到強化的知識點,然後圍繞這個知識點來選擇題目,題並不需要多,類似的題只要一個就足夠,選好題後就可以認真地去做了。作題效率的提高,很大程度上還取決於作題之後的過程,對於做錯的題,應當認真思考錯誤的原因,是知識點掌握不清還是因為馬虎大意,分析過之後再做一遍以加深印象,這樣作題效率就會高得多。
經驗三:
學習效率是決定學習成績的重要因素。那麼,我們如何提高自己學習效率呢?
第一點,要自信。很多的科學研究都證明,人的潛力是很大的,但大多數人並沒有有效地開發這種潛力,這其中,人的自信力是很重要的一個方面。無論何時何地,你做任何事情,有了這種自信力,你就有了一種必勝的信念,而且能使你很快就擺脫失敗的陰影。相反,一個人如果失掉了自信,那他就會一事無成,而且很容易陷入永遠的自卑之中。
提高學習效率的另一個重要的手段是學會用心。學習的過程,應當是用腦思考的過程,無論是用眼睛看,用口讀,或者用手抄寫,都是作為輔助用腦的手段,真正的關鍵還在於用腦子去想。舉一個很淺顯的例子,比如說記單詞,如果你只是隨意的瀏覽或漫無目的地抄寫,也許要很多遍才能記住,而且不容易記牢,而如果你能充分發揮自己的想像力,運用聯想的方法去記憶,往往可以記得很快,而且不容易遺忘。現在很多書上介紹的英語單詞快速記憶的方法,也都是強調用腦筋聯想的作用。可見,如果能做7到集中精力,發揮腦的潛力,一定可以大大提高學習的效果。
另一個影響到學習效率的重要因素是人的情緒。我想,每個人都曾經有過這樣的體會,如果某一天,自己的精神飽滿而且情緒高漲,那樣在學習一樣東西時就會感到很輕松,學的也很快,其實這正是我們的學習效率高的時候。因此,保持自我情緒的良好是十分重要的。我們在日常生活中,應當有較為開朗的心境,不要過多地去想那些不順心的事,而且我們要以一種熱情向上的樂觀生活態度去對待周圍的人和事,因為這樣無論對別人還是對自己都是很有好處的。這樣,我們就能在自己的周圍營造一個十分輕松的氛圍,學習起來也就感到格外的有精神。
經驗四:
很多學生看上去很用功,可成績總是不理想。原因之一是,學習效率太低。同樣的時間內,只能掌握別人學到知識的一半,這樣怎麼能學好?學習要講究效率,提高效率,途徑大致有以下幾點:
一、每天保證8小時睡眠。
晚上不要熬夜,定時就寢。中午堅持午睡。充足的睡眠、飽滿的精神是提高效率的基本要求。
二、學習時要全神貫注。
玩的時候痛快玩,學的時候認真學。一天到晚伏案苦讀,不是良策。學習到一定程度就得休息、補充能量。學習之餘,一定要注意休息。但學習時,一定要全身心地投入,手腦並用。我學習的時侯常有陶淵明的"雖處鬧市,而無車馬喧囂"的境界,只有我的手和腦與課本交流。
三、堅持體育鍛煉。
身體是"學習"的本錢。沒有一個好的身體,再大的能耐也無法發揮。因而,再繁忙的學習,也不可忽視放鬆鍛煉。有的同學為了學習而忽視鍛煉,身體越來越弱,學習越來越感到力不從心。這樣怎麼能提高學習效率呢?
四、學習要主動。
只有積極主動地學習,才能感受到其中的樂趣,才能對學習越發有興趣。有了興趣,效率就會在不知不覺中得到提高。有的同學基礎不好,學習過程中老是有不懂的問題,又羞於向人請教,結果是鬱郁寡歡,心不在焉,從何談起提高學習效率。這時,唯一的方法是,向人請教,不懂的地方一定要弄懂,一點一滴地積累,才能進步。如此,才能逐步地提高效率。
五、保持愉快的心情,和同學融洽相處。
每天有個好心情,做事干凈利落,學習積極投入,效率自然高。另一方面,把個人和集體結合起來,和同學保持互助關系,團結進取,也能提高學習效率。
六、注意整理。
學習過程中,把各科課本、作業和資料有規律地放在一起。待用時,一看便知在哪。而有的學生查閱某本書時,東找西翻,不見蹤影。時間就在忙碌而焦急的尋找中逝去。我認為,沒有條理的學生不會學得很好。
評:學習效率的提高,很大程度上決定於學習之外的其他因素,這是因為人的體質、心境、狀態等諸多因素與學習效率密切相關。
總結
學習必須講究方法,而改進學習方法的本質目的,就是為了提高學習效率。
可以這樣認為,學習效率很高的人,必定是學習成績好的學生。因此,對大部分學生而言,提高學習效率就是提高學習成績的直接途徑。
提高學習效率並非一朝一夕之事,需要長期的探索和積累。前人的經驗是可以借鑒的,但必須充分結合自己的特點。影響學習效率的因素,有學習之內的,但更多的因素在學習之外。首先要養成良好的學習習慣,合理利用時間,另外還要注意"專心、用心、恆心"等基本素質的培養,對於自身的優勢、缺陷等更要有深刻的認識。總之,"世上無難事,只怕有心人。"
漫談學習方法
下面主要談五個方面的學習方法。
(一)抓好預習環節
預習,即課前的自學。指在教師講課之前,自己先獨立地閱讀新課內容。初步理解內容,是上課做好接受新知識的准備過程。有些學生由於沒有預習習慣,對老師一堂課要講的內容一無所知,坐等教師講課。老師講什麼就聽什麼,老師叫干什麼就干什麼,顯得呆板被動,缺乏學習的積極性和主動性。有些學生雖能預習,但看起書來似走馬觀花,不動腦、不分析。這種預習一點也達不到效果。
1.預習的好處
(1)能發現自己知識上的薄弱環節,在上課前補上這部分的知識,不使它成為聽課時的「拌腳石」。這樣,就會順利理解新知識。
(2)有利於聽課時跟著老師講課的思路走。對聽課內容選擇性強。明確哪些知識應該放上主要精力,加強理解和消化;哪裡應該重點記筆記,做到心中有數。
(3)預習有利於弄清重點、難點所在,便於帶著問題聽課與質疑。注意力集中到難點上。這樣,疑惑易解,聽起來輕松、有味,思起來順利主動,學習效果高。
(4)預習可以提高記筆記水平。由於課前預習過,講的內容和板書,心中非常清楚。上課時可以不記或少記書上有的,著重記書上沒有的或自己不太清楚的部分,以及老師反復提醒的關鍵問題。從而可以把更多的時間用在思考理解問題上。
2.預習要注意的幾個問題
(1)預習時要讀、思、問、記同步進行。對課本內容能看懂多少就算多少,不必求全理解,疑難也不必鑽深,只需順手用筆作出不同符號的標記。把沒有讀懂的問題記下來,作為聽課的重點。但對牽涉到已學過的知識以及估計老師講不到的小問題,自己一定要搞懂,以消滅「攔路虎。」
(2)若以前沒有預習的習慣,現在想改變方法,先預習後上課,但不能一下子全面鋪開,每門功課都搞提前預習。這樣做會感到時間不夠用。顯得非常緊張,不能達到預習效果。因此,剛開始預習時,要先選一兩門自己學起來感到吃力的學科進行預習試點,等到嘗到甜頭,取得經驗後,並在時間允許的條件下,再逐漸增加學科,直到全面鋪開。
(3)預習應在當天作業做完之後再進行。時間多,就多預習幾門,鑽得深一點;反之,就少預習幾門,鑽得淺一點。切不可以每天學習任務還未完成就忙著預習,打亂了正常的學習秩序。
(4)學習差的學生,課前不預習,上課聽不懂,課後還需花大量的時間去補缺和做作業,整天忙得暈頭轉向,擠不出一點時間去預習。其實,這種學生差的根本原因就在不預習上。學習由預習、上課、整理復習、作業四個環節組成。缺了預習這個環節就會影響下面環節的順利運轉。這些學生必須作好在短期內要多吃點苦的思想准備。在完成每天的學習任務後,要安排一點時間預習。這樣做雖然費了時間,但上課能聽得懂,減少了因上課聽不懂而浪費的時間,同時,還可以減少花在課後整理、消化、作業上的時間。時間一長,運轉正常了,學習的被動局面也就會改變,就再也不需加班加點了。
3.預習的要求
(1)要注重講究實效,不搞形式。要根據學習計劃安排時間,不能顧此失彼。預習一般要安排在新課的前一天晚上進行。這樣,印象會較深。新課難度大,就多預習一些時間,難度小就少預習一些時間。應重點選擇那些自己學起來吃力,又輪到講授新課的科目進行預習,其他科目只需一般性的預習。某些學科,也可以利用星期天,集中預習下一周要講授的課程,以減輕每天預習的負擔。
(2)預習的任務是通過初步閱讀,先理解感知新課的內容(如概念、定義、公式、論證方法等),為順利聽懂新課掃除障礙。具體任務是:①復習、鞏固和補習有關已學的舊知識,找出新課中自己不理解的問題,並把理解不透的記下來。②初步弄清新課中的基本內容是什麼?這些知識內容在原有的基礎上向前發展了什麼?並找出書中的重點、難點和自己費解的地方。③預習時要看、思、做結合進行。看:一般是把新課通讀一遍,然後用筆勾劃出書上的重要內容。需要查的就去查一查;需要想的就應該認真想一想;需要記的就應該記下來。思:指有的時候要想,做到低頭看書,抬頭思考,手在寫題,腦在思考。做:在看的過程中,需要動手做的准備工作以及對課本後的練習題要進行嘗試性的做一做。問答題答一答。不會做,不會答可以再預習,也可以記下來。等教師在授課時集中注意聽講或向老師提出。預習以後,還要合上書本,小結一下。這樣做能使自己對新教材有更深刻的印象。
(二)注重聽課環節
學生的大部分時間是在課堂中度過的。因此,聽課是學生接受教師指導,掌握知識,發展智力的中心環節。是獲取知識的重要途徑。是保證高效率學習的關鍵。聽課時,有的學生全神貫注,專心聽講;有的分心走神,萎靡不振,打瞌睡。有的像錄音機,全聽全錄;有的邊聽邊記,基本上能把教師講的內容都記下來;有的以聽為主,邊聽邊思考,有了問題記下來;有的乾脆不記,只顧聽講;有的邊聽邊劃邊思考。思考時,有的思考當堂內容,有的思考與本課相關的知識體系,有的思考教師的思路,有的拿自己的思路與教師的思路比較。
那麼,怎樣才能達到聽好課的目的呢?總的要求是要抓住各學科的不同特點,帶著問題聽,聽清內容,記住要點,抓住關鍵,著重聽老師的講課方法與思路,釋疑的過程與結論。具體要求:
1.要充分認識老師在上課時的重要作用。因為教師在課堂教學中起著主導的作用。他在課堂中的分析講解遠比課後輔導要詳細得多,這也是學生自已看書無法比較的。課堂教學是老師指導學生掌握知識的一條最簡捷的路。因此,每個學生都應該虛心向老師學習。在老師的啟發誘導下上好每一節課。
2.要集中注意力,全神貫注地聽老師講解,跟著老師的講課思路走,千萬不能思想開小差。如果在老師啟發下,自己有了比較好的想法,可以在筆記本上記下來,等下課後再去深入思考或請教老師和同學。總之,課堂上的「分心」,是學習的大敵。
3.聽課中可以嘗試在老師沒有作出判斷、結論之前,自己試作判斷、試下結論。看看自己想的與老師講的是否一致。找出對與不對的原因。
4.要力求當堂理解。理解是掌握事物本質、內部聯系及規律的思考過程。那麼,怎樣才能做到當堂理解呢?在課堂上,你想的應與老師講的統一,你思考的問題應與老師講的問題統一。在教師的啟發下,你要始終開動腦筋,積極思考。如果在思考中出現不理解或理解不透的地方,應舉手提出問題。如果課堂上老師沒有時間解答你的問題,應繼續聽老師的講解。課後再去請教老師。
5.要跟著老師的思路跑。聽課是為了增長知識和發展智力。因此,不能把知識聽懂了就算課聽好了等同起來。高水平的聽課應該不僅注意老師傳授的具體知識,更應該注意老師講課的思路。追著老師的思路跑,目的在於把老師講課過程中運用的各種思維方式,思維過程搞清楚。學習老師是如何進行周密科學思考的,從而提高自己的思維能力和智力水平。有的學生不注意老師的講課思路,而偏重於記憶老師的推導,總結出來的公式或結論,認為這是聽課的主要目的。其實,這樣掌握的知識,是知其然而不知其所以然的死知識。這種死知識忘得快,又不能用於解決實際問題,更談不上發展智力。
6.要抓住一節課的知識內容和學科特點的關鍵。知識內容的關鍵一般指基本概念、基本原理、基本關系式以及公式、定義。當老師講解這些關鍵知識時,你一定要特別注意,抓住不放。同樣,不抓住學科特點的關鍵學習,也會影響你的學習效果。實際上,各門學科的內容體系、發展思路、訓練要求以及教的方法各有特點。學習中非抓住這些特點不可。如物理、化學、生物課要特別注意觀察和實驗,在獲得感性知識的基礎上,通過思考來掌握科學概念和規律。數學要通過大量演算,證明等練習獲得數學知識,培養出數學思維能力。語文和外語在聽課時,主要抓住字、詞、句、篇等方面的知識點,並且通過聽、說、讀、寫來提高閱讀和寫作能力。以便更好地理解和掌握語言和文字。
(三)緊抓復習環節
復習是對前面已學過的知識進行系統再加工,並根據學習情況對學習進行適當調整,為下一階段的學習做好准備。因此,每上完一節課,每學完一篇課文,一個單元,一冊書都要及時復習。若復習適時恰當,知識遺忘就少。早在1885年,德國的心理學家艾濱浩斯,通過實驗發現剛記住的材料,一小時後只能保持44%;一天後能記住33%;兩天後留下的只有28%;六天後為25%。所有的人,學習的知識都會發生先快後慢的遺忘過程。一些記性好的學生是因為能經常從不同的角度、不同的層次上進行復習,做到「每天有復習,每周有小結,每章有總結」,從而形成了驚人的記憶力。因此,很多學生對所學知識記不住,並不是腦子笨,而是不善於復習,或復習功夫不深。
1.復習的要求
(1)課後應及時把老師講的和板書的知識像放電影一樣,在腦子里過一遍。看看能想起多少,忘了多少。然後翻開筆記,查找漏缺。
(2)看教材時,應邊看邊思,深思重點、難點。分析疑點、深化理解。
(3)看閱必要的參考書,充實課堂所學的內容。
(4)整理與充實筆記,對知識進行歸類,使知識深化、簡化、條理化,並按規律去加強記憶。
(5)加強練習。練習一般應在復習後進行,也可邊復習邊練習。在復習過程中,加強練習,能提高復習效果。
(1)及時復習。當天學的知識,要當天復習清,決不能拖拉。做到不欠「帳」。否則,內容生疏了,知識結構散了就要花費加倍時間重新學習。要明白「修復總比重建倒塌了的房子省事得多」。
(2)要緊緊圍繞概念、公式、法則、定理、定律復習。思考它們是怎麼形成與推導出來的?能應用到哪些方面?它們需要什麼條件?有無其他說法或證明方法?它與哪些知識有聯系?通過追根溯源、牢固掌握知識。
(3)要反復復習。學完一課復習一次,學完一章(或一個單元),復習一次。學習一階段系統總結一遍。期末再重點復習一次。通過這種步步為營的復習,形成的知識聯系就不會消退。
(4)復習要有自己的思路。通過一課、一節、一章的復習,把自己的想法,思路寫成小結、列出圖表、或者用提綱摘要的方法,把前後知識貫穿起來,形成一個完整的知識網。
(5)復習中遇到問題,不要急於看書或問人,要先想後看(問)。這對於集中注意力、強化記憶、提高學習效率很有好處。每次復習時,要先把上次的內容回憶一下。這樣做不僅保持了學習的連貫性,而且對記憶有很好的效果。
(6)復習中要適當看點題、做點題。選的題要圍繞復習的中心來選。在解題前,要先回憶一下過去做過的有關習題的解題思路,在這基礎上再做題。做題的目的是檢查自己的復習效果,加深對知識的理解,培養解決問題的能力。做綜合題能加深知識的完整化和系統化的理解,培養綜合運用知識的能力。
(四)獨立完成作業環節
獨立完成作業是深化知識,鞏固知識,檢查學習效果的重要手段,也是復習與應用相結合的主要形式。然而,有些學生沒有真正利用好這個環節。他們一下課就搶著做作業,作業一完,萬事大吉。更有些學生課上根本沒聽懂,下課後也不問,作業抄襲後向老師交差完事。其實,做好作業有以下意義:
1.可以檢查自己的學習效果。通過做作業可以發現問題,以便及時補救。
2.通過做作業時的思考,可以加深對知識的理解,把易混淆的概念搞清楚,把公式的變換搞熟練。總之,有利於把書本上的知識轉化成自己的知識。
3.可以培養思維能力。因為作業中提出的各種問題,必然會促使自己積極思考,增強分析問題和解決問題的能力。
4.做完作業後,不能把它一扔了事,而應當定期進行分類整理,為總復習積累資料。復習時,翻閱一下記錄的作業,既方便省事,又印象深刻。
做作業的基本要求和方法:
1.審題。審題是做作業十分重要的一步。拿到一個題目,首先應判斷它屬於哪一類,難易的程度如何?分清題目的條件和要求。已知條件是什麼?從題目提供的信息中還能挖掘出什麼條件?它的要求是什麼?同時要讓自己的思路順著題目的路子思考。通過思考、准確、透徹地理解題目的意思,分清已知條件有哪些,題目要求的結論是什麼。在審題過程中,還要注意哪些地方沒有直接用語言表示出來,而隱含在題目中的其他形式條件,即注意隱含條件的挖掘。
2.尋找解題途徑。方法一般有三種:一種是「由因導果」,可以表述為:「已知→可知→可知……」,最後到達結論。第二種是「執果索因」,即結論←需知←需知←……」。這樣一層一層的追下去,直到追到已知條件全部有了為止。這樣。已知條件和要求結論之間的道路就打通了。第三種是對於一些比較復雜的題目,就需要我們用前兩種的綜合辦法,以盡量縮短條件與結論的距離。即一方面從已知條件推出一些可知的中間結果,另一方面根據題目的要求分析出一些需知的中間結果。需知與已知一旦統一,則可得到解題的途徑。
在尋找解題途徑中,要廣泛聯想與這些條件和結論有關的概念、公式、法則和方法等。聯想過去是否解過和與此相同或相近的題目。那時是怎樣解的?如果能聯想起有關的舊知識,即與此題相應的規律原理、原則、公式就會浮現在腦海中,使解題的思路更加開闊。聯想越廣,跨度越大,得到的解題效果也越佳。
有時因為題目較復雜,為了思考方便,也可以把審題的過程畫成簡圖。這實際上是一個運用學過的知識,把題目加工、改造的過程。經過加工,思路明了,解題捷徑就會出現在眼前。
3.正確解題,經過①②兩個步驟,已經尋得解題的途徑,判定了解題的方案。但在實施時還要注意解題的保質保量。要做到這點,解題的步驟必須按部就班,一步步演算。書寫規范化,格式明了,表達准確。要做到這點,必須要有扎實的基礎。除此以外,在解題中,重要的知識點應寫出來,繁題要簡寫,簡題要詳寫。
4.注意檢查。就是回過頭來再檢查一遍,看看是否題目要求的解都求出來了,有沒有漏解。是否求出的解均符合題目的要求,有沒有錯解。檢查是培養學生獨立思考能力的重要一環。檢查的方法很多。①步步檢查法。即從審題開始,一步步檢查。這種方法可以檢查出計算、表達上的錯誤。②重做法。即重做一遍,看結果是否一樣。③代入法。將計算結果代入公式或式子看看是否合理。同時,還要注意鍛煉一題多解、一題多想。比較歸類的解題習慣,不斷提高自己分析問題和解決問題的能力。
(五)認真記好課堂筆記
記筆記是為了學,為了懂,為了用。記筆記的原則是以聽為主,以記為輔。簡練明白,提綱挈領,詳略得當。難點不放過,疑點有標記。不亂,不混,條理明。對聯想、發現的問題,要及時記。筆記要留有空白處,便於復習時補缺。

閱讀全文

與最小語法單位編譯原理相關的資料

熱點內容
解壓的筆怎麼玩兒 瀏覽:338
腰骨壓縮性骨折 瀏覽:633
android屏幕不休眠 瀏覽:99
c語言編譯不出去 瀏覽:34
怎麼把文件夾設置有上下級 瀏覽:576
java給文件夾重命名 瀏覽:312
單片機模塊有哪些 瀏覽:80
騰訊雲伺服器如何遠程管理 瀏覽:888
windows下的網路編程 瀏覽:9
伺服器不備案有什麼影響 瀏覽:758
數控立式車床編程 瀏覽:161
影樓pdf 瀏覽:245
腰椎壓縮性骨折治療費用 瀏覽:762
無源碼 瀏覽:741
如何查d愛麗伺服器的地址 瀏覽:596
易語言怎麼編譯成服務端 瀏覽:566
怎麼刪除付款app 瀏覽:888
程序員網紅口紅 瀏覽:453
tpshop完整版源碼下載 瀏覽:458
dos命令sys 瀏覽:419