關於部落格
  • 18263

    累積人氣

  • 0

    今日人氣

    0

    追蹤人氣

2000.10.02 管四

2000.10.02 管四 【上卷A面】 …然後這compile之後啊,這邊就判斷,這邊有個錯,假設有錯,這叫語法錯了,這是語法錯了,這邊錯,有錯就回頭,到這裡,∴這裡有錯就回頭,有錯回頭,從這邊出來有錯,到這一點,有錯,到這一點,好,沒錯從這邊下來,好,沒錯從這邊下來,∴這個編,編輯、翻譯,我們上禮拜是不是講到這裡?對不對?有沒有?有沒有錯?上禮拜。對啊,沒有錯啊,對啊,不是,不是,上禮拜抄不是抄這樣la,等一下,等一下,上禮拜是抄這個,對不對?compiler的方式,高階語言,對嘛,對不對?沒錯啊,沒錯啊,高階語言的執行流程,我們上禮拜畫的是大概圖形嘛,∴這邊是不是有一個叫做compile?對不對?compile。H.L.L.,然後經過這邊,產生什麼?object code。記不記得?object code不是0,就是1啊,記不記得?好,那這邊,這邊什麼東西?高階語言像什麼?Fortran、Pascall。像什麼?C啊。那我們現在要講那個,詳細執行流程,就是在這邊啊,∴這一塊,注意,這一塊是不是就是這一塊?我們上禮拜講是不是講這邊?我們要講詳細執行流程,∴編輯、翻譯,然後這邊下來,這邊是B,好,這邊B,∴這邊翻譯,送過來之後,會產生一個東西,這叫aaa.obj,aaa.obj,什麼叫aaa.obj,這叫object code,這叫object code,這叫目的程式啊,這叫目的程式,這叫目的程式,∴從這邊下來,這邊要進入link,這個拿過來,這個obj啊,是要跟誰link?跟主副程式。這邊主副程式的目的碼,主副程式,這邊的目的碼,主副程式的目的碼啊,那跟誰Link?這邊有一個東西,這邊有一個水桶,子,這個叫做system libirary,這叫系統程式庫,系統程式庫這邊link,∴這個叫連結,連結或叫連接,連結或叫連接,然後,這邊產生aaa.exe,aaa.exe叫什麼?Executable。這是Program,好,這很複雜哦,這個叫可執行程式,然後link完之後,這邊再run,run叫執行,∴這邊有一個東西,這就叫aaa.in,這叫輸入檔,Input Data File,然後這邊呢?看看有沒有錯,這個執行完之後會產生一個東西,就是aaa.out,好,這叫output data file,這叫輸出資料檔,output data file,這個看有沒有錯?假設有錯,這邊有個錯喔,這叫邏輯錯誤,邏輯錯誤,是,這邊是,就到那個A,好,就到那個A,沒錯,這邊就離開,end,離開,∴等一下哦,這邊幾個步驟?等一下哦,這邊幾個步驟?編輯、翻譯,編輯、翻譯,連結,∴這邊有link,link,然後注意哦,load,load在這裡,載入,載入、執行,∴load,然後run,∴他有幾個步驟?5個步驟。他有5個步驟,那幾個檔案?有幾個檔案?你看,這裡有一個,第2個、第3個、第4個、第5個。∴他有5個檔案,有5個檔案,好,你先抄,我等你,你先抄,我等你。…cut…這個圖要背哦,這個圖要背哦,這個考二技要看觀念啊,考那個,插大,有人考插大,你們整個圖要背哦,好,這我先講一下la,我先講一下,這邊人啊,要注意,這個電腦打開之後,人在那邊敲敲打打,然後這個程式,這個是不是上禮拜有講過?什麼叫編輯程式?接受使用者的編修命令,編輯修改命令,產生一個來源程式,你記不記得?好,上禮拜講過了,然後你再把這個程式,aaa.c,這個不一定是”.c”啦,可以點pascall,”.pas”,好,後點cobol,”.cob”,然後還要經過翻譯,要注意,翻譯之後產生aaa.obj,∴這個步驟叫compile,compile做什麼?要注意,我這邊寫了,compile,這叫編譯程式,像高階語言,原始程式,翻譯,要注意哦,高階語言翻譯成機器語言,機器語言就是0跟1的東西,找們上禮拜講過了,0跟1的東西,∴他把他翻譯成機器語言,這邊,翻譯成機器語言,翻譯完之後,先看他語法有沒有錯,語法有沒有錯,上禮拜是不是講過?文法是不是有錯?有錯的話要回來,再編輯,好,再編輯就修改嘛,翻譯,有錯回來,再拿來修改,沒有錯,注意,沒有錯離開,有錯是不是就回來?好,沒有錯的離開la,離開到這裡,到這裡做什麼?你可能用到一些東西,像你寫的這個程式啊,可能是有主程式,有副桯式,他把他們連在一起,把他們連在一起,兩個程式要連在一起,那你會說我都沒有這些東西,沒有寫副桯式,我只有一個主式,為什麼要link?∵你要用到啊,系統程式庫,system library,這系統程式庫,裡面有什麼東西?裡面有i/o的系統程式,i/o的程式不可能你自己寫的,你要控制printer,要控制列表機,不是你自己控制的,是系統廠商幫你寫好的,∴有一個i/o的系統程式,控制printer、控制disk,第二個庫存函數,你可能用到sin、cos的這種東西,好,sin、cos,好,這種東西,∴你這邊呢?跟這個連結之後,產生這個東西,aaa.exe檔,這叫Executable Program,可執行程式,你會產生,經過link之後,產生這個東西,產生口個東西之後,要注意哦,link做什麼?我們看link,來,link在這裡,連結程式,或者叫連接程式,將主、副程式的目的碼,與系統程式庫連結成一個可執行程式,就是在這裡哦,來來來,看這個圖,這個圖都有意義的,將主、副程式的目的碼,與系統程式庫連結成一個可執行程式,好,∴這是他的目的,那注意哦,這個在哪裡?喂,這個上禮拜講過,這個是不是線上磁碟?這在磁碟裡面,注意聽哦,這在磁碟裡面,∴你要從磁碟,是不是抓出來?∴要做一個動作,叫什麼?LOAD。∴抓出來,LOAD做什麼?LOAD在這裡,loader,叫載入程式。將可執行的目的程式。這個叫做aaa點什麼?exe。這個檔案要放在哪裡?∵你要放到主記憶體,要放到主記憶體哦,你要run程式的話,要放到主記憶體才能執行,∴要把他放到主記憶體,以便執行,這個最後這一個步驟叫執行,執行,要有輸入資料檔,∴input data file,然後會產生呢?output data file。會產生output data file,假設,有錯,這個時候很淒慘,這個時候錯叫什麼錯?邏輯錯。那就要回到什麼點?A點。你就要回到A點,再修改程式,再經過翻譯,沒有錯可下來,連結之後再run,run沒有錯,再離開,是不是離開?∴要幾個步驟?很慘,1、2、3、4、5,5個步驟,∴這邊有5個步驟,∴這種操作過程,不適合初學者,∴初學者玩這個,他就不玩了,不想玩了,電腦太難玩了,那幾個檔案?1、2、3、4、5,5個檔案,∴我這邊寫了5個檔案,好,你抄一抄,我擦掉了,我把上禮拜跟這禮拜做一個比較,…cut…,這個題目考古題,第一個,請寫出Compiler方式與Interpreter方式高階語言的執行流程,這個我們就不寫答案了,我這邊寫什麼?參考筆記。什麼叫參考筆記?這就是這一個,對不?這是Compiler,那Interpreter是不是上禮拜寫過了?好,第二個要說明啊,Compiler跟高階語言的,Interpreter高階語言的差異,這個很重要,這個相當重要,這要做比較啊,你們今天是不是考卷拿到了?是不是有一個東西就在講這個?有沒有?考卷啊,有沒有?考卷啊,16題是不是講這個?有沒有?16題講這個東西,16題。然後,17題是不是也講這個東西?16題、17題,有沒有?你們這邊可以寫啊,到13題都可以寫啊,13題,然後14題不能寫,14題要慢一點,15題、16題、17題,18題慢一點,19題慢一點,20題慢一點,21題慢一點,好,22題慢一點,23、24、25都可以寫,有沒有?這些都可以寫,這個可以擦嗎?那個流程圖可以擦嗎?那考卷不會很難哦,這考卷很簡單哦,好,這考卷很簡單哦,這是我們考試比較容易的一回,比較容易的一回啊,…cut…開始,他接受高階語言,這interpreter也是接受高階語言,但是要注意哦,這個接受高階語言,像FORTRAN、PASSCAL、C、COBOL,那這個接受高階語言,像BASIC、LISP,人工智慧語言,LISP跟什麼?PROLOG。對不對?這個上次講過嘛,人工智慧語言,那注意哦,我再問你一個問題哦,這個是屬於哪一種?VB屬於哪一種?第一種還第二種?Compiler還是Interpreter?哪一個?我上個禮拜才講過哦,有沒有?他屬於Compiler。這個VB屬於Compiler,記不記得VB是什麼?QBASIC。再加什麼?物件嘛。物作對不對?物件。記不記得?OOD,物件,對不對?這是不是教過了啊?忘記了,這不能忘記啊,這個講…講,完全忘記了,考試不能槓龜哦,∴VB啊是屬於這個Compiler,好,那再注意聽哦,第二個,Compiler呢?Compiler他的輸出是什麼?目的程式。這考古題,這好像你今天考卷有哦,那interpreter呢?interpreter是邊譯邊執行,∴邊譯邊執行,我註解,邊譯邊執行,∴會得到什麼?這考古題,執行結果。然後,再注意哦,Compiler執行速度快,為什麼快?這也考古題,∵他執行0或1,當然他執行速度快啊,那這邊要注意哦,這邊速度怎樣?慢。為什麼慢?上面這一段話。邊譯,邊執行,上面這一段話。還有Compiler發展所需時間較長,為什麼較長?編輯、翻譯、連結、載入、執行。那注意,這邊時間比較短,為什麼比較短?他只有兩個步驟,一個編輯,馬上就執行。還有,這邊要注意,他比較浪費記憶體空間,為什麼浪費空間?他5個檔案。記不記得?有5個檔案。哪5個檔案?他有AAA.C、AAA.OBJ、AAA.EXE、AAA.IN,還有一個叫AAA.OUT,要注意,這邊比較節省空間,節省空間,然後有3個檔案,他只有3個檔案,哪3個檔案?上禮拜講過,AAA點什麼?BAS。還有什麼?AAA.IN。跟什麼?AAA.OUT。他有3個檔案,那注意哦,這邊僅翻譯一次,為什麼僅翻譯一次?∵他有什麼檔?他有AAA點什麼?OBJ。是不是我只要翻一次就好了,AAA點什麼?EXE。∴要不要再翻譯?不要了。但是這邊要注意,為什麼每次執行,均需翻一次?∵剛講那一段話,邊譯邊執行,∴每次執行一定要先怎樣?翻譯。∴我們上次是不是講過?中序式轉成什麼?後序式。記不記得?那就是用來執行嘛。∴我們今天拿到這張考卷,那一題可不可以解?16題。來,先看一下,先看一下,考試的目的不是要整你啊,16題,答案是什麼?下列有關compiler跟interpreter之敘述,何者正確?你看A,程式經由interpreter解釋後會產生可執行碼,錯,interpreter不會產生可執行碼;然後B呢?compiler方式為每次執行時都需重新編譯程式,錯,他只翻譯一次;C呢?interpreter方式較compiler方式適用於開發完成後之程式,interpreter應該是什麼?比較適合什麼?開發的。對不對?那compiler比較適合什麼?開發後的。對不對?開發後是不是只要執行就好?∴這題答案應該誰?我沒有講哦,答案應該誰?答案應該誰?我沒有講啊,好,答案應該知道嘛;D呢?同一種語言可以有compiler及interpreter兩種方式,沒有錯,BASIC是不是可以compiler?也可以什麼?interpreter。這沒有錯嘛;然後E呢?compiler方式在翻譯時,compiler方式,compiler翻譯,compiler方式在翻譯的時候,一有錯誤立即停止執行,好,這個是不對的,BASIC才立即停止,我剛才有講說哪個正確,我還沒講完嘛,有沒有?我沒講la,C,C是不對的la,A是不對的la,B是不對的la,C是不對la,E是不對的嘛,對不對?我沒講啊,我沒有講,我剛才講過哦,這裡很重要一個觀念,interpreter適合什麼?開發。對不對?喂!這個啊,interpreter是不是適合開發?發展是不是開發?但是compiler適合什麼?開發以後。為什麼?∵他執行速度怎樣?快。開發以後。你不要看這個哦,這條題目很長哦,我剛剛說的題目是好幾個考古題合併起來變成一個題目,然後再17題喔,有關編譯器的敘述,下列何者是錯誤?可偵測語法錯?沒有錯。可產生目的程式,沒有錯;可以偵測邏輯錯誤嗎?我上禮拜有講過,可以找出邏輯錯誤嗎?不行啊。邏輯錯誤是要利用什麼來除錯?Debug。記不記得?好,可連結函式庫,沒有錯。他可以Link,沒有錯哦。 …cut…這compiler他是可與其他語言彼此呼叫compiler有什麼?喂!compiler有什麼?有Link。有Link,他可以把他連結起來,好,把那個…不管是什麼語言寫的,副程式,把他連結起來,那第7個,這個BASIC無法與其他語言彼此呼叫,∵他沒Link,他沒有Link,∴沒有Link可以呼叫。好,第8個啊,這個compiler一定要全部編輯完,全部都編輯完,都打完,都打進去才能夠翻譯,但是BASIC,假設你有玩過對不對?你打兩行也可以執行嘛,∴這邊部份程式編輯完,∴這邊部份,剛才這邊全部。好,第9個,compiler一定都是全部,全部都翻譯完才顯示錯誤訊息,翻譯完才能顯示錯誤訊息,那這個BASIC不是哦,一有錯誤,注意哦,BASIC你們應該都玩過,若有錯誤,然後立即怎樣?停止執行。立即停止執行,然後,且顯示錯誤。 好,第4個要注意,組合語言啊,組合語言的執行流程哦,他類似compiler的方式,類似Compiler方式,僅需將Compiler改成什麼?Assembler即可完成。∴Compiler改成Assembler,∴在這邊,這邊啊,這邊本來Compiler啊,我現在改成什麼?Assembler。叫什麼?組譯器。組譯器。那這邊左邊是組合語言哦,什麼叫組合語言?由助記憶字,幫助你記憶字的,像加、減、MOV組成的語言,像這種就是組合語言,由助記憶字組成的語言叫組合語言,組合語言經過什麼?組譯器。變成呢?機器語言。∴我們剛開始在畫那個詳細執行流程喔,這個差不多了,…cut…他的詳細執行流程啊,這個詳細執行流程,我們不要畫全部啊,畫部份就可以了,像這裡,這裡START,這個是編輯,編輯完之後,產生一個東西,這個是叫做Source,這Source叫做來源程式,還是叫來源程式,但是這個檔案變了,這個檔案叫AAA,3個A,這個名字隨便取的啊,點ASM,然後再經過一個步驟,再經過一個步驟啊,這個步驟叫Assemble,Assemble叫什麼?組譯。剛才上面這個叫什麼?編輯。那底下完全一樣,底下我們就不寫了,完全一樣,∴哪裡不一樣?這兩個不一樣。好,這邊產生的程式叫AAA.ASM,這叫source program,這邊經過什麼?組譯。∴他的步驟有幾個?編輯、組譯、連結,連結、載入、執行。要幾個步驟?5個步驟。要5個步驟,跟compiler一樣,有幾個檔案啊?也是一樣。有幾?5個檔案。 好,這個你抄一抄,我們這個主題結束掉了,我們要進入下一個主題,我要講那個剖析。 …cut…這個主題滿難的,這叫做剖析,要判斷法是否正確,…cut…這叫剖析啊,要注意啊,這個,什麼叫剖析?這叫parsing,他就是檢查語法是否正確,檢查這語法是否正確啊,那注意,這個第一個啊,我們先定義一個東西叫BNF,這叫Backus Normal Form,他是由一個非終端符號,非終端符號在左邊,好,這是可展開的,要注意,這邊是可展開的,定義到終端符號,注意,到終端符號,這是不可展開的,注意,可展開到不可展開的語法規則,∴左邊這種,像這種,你看這種啊,有這種符號的,有這種小於、大於的,注意,這叫非終端符號,有小於、大於的,這叫非終端符號啊,有小於、大於的,叫非終端符號啊,那這種也是非終端符號啊,這也是非終端符號,這翻成”或者”,好,這翻成”或者”,那這個要注意,這個大括號,是翻成”重覆”,可重覆多次,那多少次?這邊是從0次到無窮多次,0次到無窮多次,∴表示可有可無,好,可有可無,就這個是可有可無,那這邊要注意,這邊也是非終端符號,這個4點什麼?這個4點的意思就是可展開為…,或者可展開成…,那或者,這樣寫,或者定義為…,定義為…,也就是說左邊定義為右邊的東西,好,左邊定義為右邊這個東西,那letter,定義為A,或者B,或者C,或者到什麼?Z。那這是語法哦,digit,digit是數字,定義為0,或1,或2,或3,或,或到9,好,那這,這我們底下已經註解了,這考試他不會給你註解,這邊可以重覆多次,0到無窮多次,那你這個也一條線,一條線啊,你,他意思是這一個啊,但是你在鍵盤上找不到一條線,就有了斷的線,叫破折,這很像C語言啊,這個有小於、大於,叫nonterminal symbol,叫非終端符號,沒有這種小於、大於的這種就terminal symbol,叫終端符號,好。要注意聽哦,我們要辨別喔,下列各識別字是否合法?注意聽哦,這在語言裡面,大部份都會規定第一個字一定要什麼字?英文字。後面這個是可有可無,有的話可以當英文字,可以當什麼?數字。好,這在語言告訴我們,像這個就不對了,注意聽哦,第一個字一定要什麼字?英文字。好,這個字錯掉了,我們來檢查這個,∴電腦怎麼檢查?電腦從這邊開始,注意聽哦,從這邊開始,這個我還沒有解釋完哦,語法有4個要素,聽好哦,語法有4個要素,語法4個要素,哪4個要素?這一個字,你注意看,這個字,是不是只出現一次?這個字,是不是只出現一次?你看這個字,可以出現幾次?好幾次。好幾次,有沒有?這種出現一次的,大部份都是叫Starting Symbol,Starting Symbol,什麼叫Starting Symbol?叫起始符號,這叫起始符號,這叫起始符號,∴這邊有一個例子喔,這邊有一個例子很重要,語法的4個主囡元素啊,第一個元素,叫Starting Symbol,好,這要記下來,第一個叫Starting Symbol,叫起始符號,第二個要注意,這語法上一定會這樣規定,一定會有一個非終端符號,∴第二個,一定要有一個元素,叫Nontermainal Symbol,Nontermainal Symbol,這叫非終端符號,這叫起始符號,那第三個要注意,第三個要有什麼?要有這種東西,第三個要有這個東西,像這種東西,這種東西叫什麼?叫Terminal Symbol,Terminal Symbol,∴第三固,一定要有這種東西,∴第三個叫Terminal Symbol,Terminal Symbol叫什麼?終端符號。一定要有終端符號,第4個,這種一條,這樣一條,就是第4個,叫做Production rule,Production rule,什麼叫做Production rule?這叫產生規則。∴第4個叫Production,Production rule,這叫產生規則,你一定要有4個這種東西,才能夠叫一個Grammar,好,這叫語法,那我們來解這一個啊,這要注意聽哦,這邊其實滿難的,但是要聽懂就好了,第一個,A1,注意聽,A1哦,不要抄了la,等一下,A1,從哪裡開始?從這邊開始。從這個字開始,IDENTIFIER,注意哦,IDENTIFIER,這叫識別字,從這邊開始,展成什麼?展成右邊。展成這個,那我剛才講這個東西可有可無,∴展成這樣,那注意,未來我們會看到什麼?A1。我們希望看到A跟1嘛,∴這邊一定要有個字,這邊要有個字,那我們要先嚐試,這兩個,一定要先嚐試這個,∴我們要做try error嚐試,∴這邊有個letter,你到letter去找,有個”A”字,你到letter去找,有個”A”字,letter去找,喂!真的有”A”字,是不是對了?好。再看,letter去找,有”1”字,去找,letter裡面有”1”,letter裡面沒有”1”,好,是不是沒有”1”?∴不對了,不對怎麼辦?不對了,那表示這個錯了,錯了怎麼辦?我們剛講了,可以是這一個,也可以是…,或者是這一個,∴這個失敗,我們嚐試什麼?第二次。∴嚐試第二次。那叫什麼?DIGIT。DIGIT裡有”1”,好,去找,DIGIT裡面有”1”,”0”,不是,或者”1”,有啊,是不是找到?全找到了,∴可見得這是什麼?合法的識別字。這是合法的識別字,電腦就不會講話,電腦不會罵人,你看第二個,來,我寫在這裡,第二個,也是同樣這個字開始,IDENTIFIER,然後,下來之後,有個letter,到後面這邊可能是letter,可能是什麼?DIGIT。對不對?那我們未來是要求什麼?1A。你去找這個,letter裡面有1,去找,letter裡面有1,letter裡面沒有1啊,letter裡面只有什麼?A、B、C這種東西。∴沒有1,肯定他是什麼?錯的。∴電腦就會罵人了,罵什麼?語法錯誤。不要講太複雜的語言la,我講這個語言就好了la,你把他LET 1A等於3、你看能執行下去嗎?能行下去嗎?打RUN,電腦馬上罵人了,syntax error,in第幾行?第10行。為什麼錯?這個錯。但是你把這個去掉呢?電腦這句話就馬上怎樣?消失。是不是消失?對不對。那剛才那個叫語法錯誤,∴電腦就是這樣檢查的,好,你要抄,你先抄,我等你喔。 …cut…考的題目比這個更難,好,看下一個,你臉會黑掉,你的臉會歪掉,比這個更難,這邊跟你講下列的語法哦,注意聽哦,下列語法,有一個叫,non,這 N是什麼?N叫非終端,非終端符號。那這個T叫什麼?終端符號。那P叫什麼? Production rule。產生規則。那請問你,還差一個在哪裡?還差一個在哪裡?起始符號在哪裡?非終端符號是不是兩個?這個出現幾次?兩次。這個出現幾次?一次。∴這叫什麼?起始符號。你們看得懂嗎?就是語法,要構成一個語法,一定要構成4個要素,非終端、終端、產生規則跟起始。然後我們從這裡開始,他說generates是產生,字串,注意聽哦,這一題是複選題,可產生哪些字串?可產生哪些字串?∴你從這邊開始寫,這邊只有3條路,第一條,我們給他算成第一條,這個,我們給他算成第2條,這個,我們給他算成第3條,好,從哪裡開始?從這邊開始。等一下,不要抄,同學不要抄,這邊開始,對不對?這邊會產生什麼?第一條。 用第一條規則,產生a、B,大B,對不對?大B。等一下哦,不要抄哦,等一下,然後呢,這個大B可以產生什麼?大B可以產生什麼?大B可以產生這個或者這個,對不對?∴我們代第2條,或者代什麼?第3條。b,代abb,∴小a,放著,B,代aBB,aBB,從以下開始,都是兩個a開始,這個a留者,這個大B代什麼?小b。這個結束了,這個不能再了,這已經沒救了,沒辦法展了。 好,再看底下,這個BB,你可以怎麼代?我們這樣代啊,我們這樣代,這個先不動,我們先代這個,這個不動,∴我們代這個,這個不動哦,∴這邊是aab,這邊是aab,那代誰?這邊可以代第二個。也可以代什麼?第三個。這樣子看得懂嗎?其實很簡單la,這個題型很簡單la,一直寫,一直寫,一直寫嘛,那你不會寫,就用選的嘛,對不對?不會寫一定要猜哦,∵明年不會倒扣嘛,就不管他的,猜了。 好,B,aBB,aBB,B,B代什麼?這個B。趕快展,是不是越長越像?這個沒救了,注意聽,這個沒救了,為什麼沒救?只有ab。以後應該什麼?沒有。這個沒救了。 aabB,好像滿有前途的,在這裡,好像滿有前途的,對不對?看得懂嗎?好像滿有前途的。再看這一個,aaaBBB,好像也滿有前途的,aaaBBB,看得懂嗎? 好,再來,aabaBB,好像也滿有前途的,aabaBB,對不對?我們展,我們展,展了再說,這個代誰?代第二個、代第三個。aaB,B代什麼?ab。這個B代什麼?aab。這個B代什麼?b。對不對?好,這個答案誰?B。是不是B?對不對?好,這個,哇!這個可怕了,3個變出幾個狀態來?啊?2的3次方嘛,8個狀態。對不對?2的3次方,8個狀態,你可以怎麼辦?這個啊,代這個啊。222、232、233、322、333,聽得懂我在說什麼嗎?332。要發瘋了,對不對?不要理他,不要理他。點、點、點、點、點,他家的事,我們代什麼?我們代333。聽得懂嗎?333。聽得懂嗎?什麼叫333?bbb嘛。對不對?∴這出來叫aaabbb。其餘的 還是很多啊,什麼323、322,是不是還是很多?我們點、點、點,不管啦。∴這代誰?這是答案。答案是誰?答案是C。那還沒完哦,還沒完哦,這個還有,這個,這有幾種?兩個變數幾種?4種嘛。22、33、23、32嘛。對不對?我們代,不管了,我們代什麼?33。聽得懂哦,代33啊,我這邊不可能那麼多點,還有3點對不對?那這邊會有…不能少點,還有5點,對不對?聽得懂嗎?這5點哦,5個,6、7、8,8個嘛,那這邊要幾個?1、2、3、4嘛。好,代出來是aab,a什麼?bb。答案是誰?答案D。∴這一題答案複選題啊,B、C、D。 …那我預告了,我剛才預告過了,這個是什麼?插大跟什麼?研究所。才會有複選嘛。 你抄一抄,我講一個二技,…cut…,上完課再考吧,結果他考完試,太盡責了,他先發,好,沒有關係啊,沒有寫完…,不是要整你們,要看你會不會而已,不然我教得要死,你們都不會,那不就都白教,對不對? 來,我們看這個來,我先講哦,我先講,∴為什麼上課一定要聽課啊,我會把很多題目奇奇怪怪的都拿出來講,像剛才那是標準題目,你看這題目,這題目多怪啊,這個擦掉了啊,我們看,這邊注意聽哦,…cut…,這邊翻成什麼?或者A。好,那注意聽哦,可產生什麼樣的語言啊?這個告訴我們,這個,這個啊,我沒有講,你看不懂哦,aibj,這什麼意思知道嗎?這邊跟你講說i,i大於j,a的個數會比b的個數怎樣?多。∴他的意思像這樣,這樣,這樣,這看懂嗎?a的3次方,b。這聽懂嗎?或者怎麼講?a的,aaa,bbb,bb,這是a的3次方,這是a的3次方,b的2次方。這一句話是說a比b多,a比b多,聽懂嗎?a比b多。 那這個意思剛好怎樣?這剛好ij,i大於j,i小於j,a比b少,對不對?那這個呢?ai,bi。這是說a比b,一樣多,那什麼叫一樣多?一樣多像這個,aaa、bbb。是不是一樣多?這個東西就是a3次方,b的3次方,那注意,這什麼意思?ai,bj,I等於什麼?j+1。這邊是2,這邊也可以什麼?3。∴這邊告訴我們說,a比b多一個,他的規定是一個,這邊是可以一個或多個,對不對?好,∴這邊像這樣,這個是aab,這邊多一個,或者是aaabb,叭能多一個哦,注意聽,只能多一個,那就看這個題目要怎麼做,不要抄,先等一下哦,一開始是不是叫起始符號?是不是a?a展成兩種,一種,一種叫aA,一種叫什麼?aB。這應該沒問題吧?然後,再來,aA又變成了什麼?a又展成aA,或者aB,這個a又展成aaA,或者什麼?aaB。對不對?好,那這個,這可以展成什麼?B可以展成什麼?aBb。B哦,可以展成aaBb,或者展成什麼?ab。aab。肯定一件事,根據這個觀念,去掉誰?去掉B、C。是不是去掉B、C?為什麼去掉B、C?A比B少,錯了;A與B一樣多,錯了。現在問題是到底多一個,還是多一個,或者多很多個,對不對?在來討論了…change b…還有一個,ab,aa,這個小b,中間這個B,abb,abb, 對不對?那再來後面這個呢?aab。這代什麼?ab。對不對?看懂嗎?這個是a,ab。沒錯啊,abb。現在這個還看不出來,對不對?是不是這個還看不出來?好,那這樣,走這裡,走這裡,走這裡,走這裡,這個最實在,這邊再走下去,a,a還可以變什麼?aa。aa。那這個a又可以變什麼?ab。好,幾個…聽不清楚…?這個B,這 個B可以走哪裡?這個B,B可以走abb。B對不對?abb。對不對?那這個B可以走哪裡?ab。好,結束了,ab,是不是結束了?∴這個階段需要誰?需要什麼?需要D。∴答案誰?3a嘛,這題答案是誰?慢且,慢且,慢一點,我們講特解, 好,先抄,先抄,你先抄,你先抄…cut…。 【下卷A面】 這裡A啊,注意哦,這裡,這裡A,可以產生這個東西,∴展成aa,然後再展,∵這個一直呼叫,一直呼叫自己,就稱為遞迴,一直呼叫自己,叫遞迴,∴一直叫啊,你a,a又變成什?a又變成aa。∴這個a就變成什麼?aa。∴注意看哦,一直做,做到什麼?做到aa,a,一堆a,然後最後還是a,這應該看得懂嘛,然後,再來,a,我要讓他停哦,這個一直run,一直run,要讓他停,是不是跑到這邊來就會停?∴變成什麼?aa,aa,a。那這個代什麼?這代ab。∴這代ab,好,最後,aaaa,a,這個a對不對?好,這b代什麼?ab。代ab。這樣看得懂嗎?∴a比b多n個,對不對?n是什麼意思?n是從1到什麼?無窮多個。這個看得懂嗎?好,你把他抄一抄,這個數字更多,喂!先等一下,再讓我講下一題。這一題更好做啊,這一題啊,不用解,注意聽,不用解,sentence是什麼?A開頭。或者什麼?現在這一題,灌功力給你哦,不匚去解哦,或者什麼?B結尾。只要A開頭、B結尾都可以,是不是A開頭?∴這是可以。這是可以。A開頭,∴這也是可。沒有A開頭,注意聽哦,沒有A開頭,但是誰結尾?B結尾。可以,對不對?B結尾。這個不是A開頭,不是什麼?B結尾。不行,∴這一題答案是誰?答案是D。這能不能聽得懂?這看得懂嗎?然後你說,我一定要剖,好,來剖,來剖,來,你一定要剖,我剖一個給你看,我剖一個A給你看,sentence,要注意,sentence,sentence就是什麼?sentence就是…,∵你的目標是誰?abc。∴目標是abc,∴sentence一定是什麼開頭?A。跟誰?PHRASE。PHRASE啊,∴A是達到目的了,注意看,A是不是達到目的了?不要抄,A達到目的了。那PHRASE呢?PHRASE,PHRASE可以什麼?跟,PHRASE、LETTER,PHRASE,那這邊是什麼?LETTER。那PHRASE要注意,PHRASE又是什麼?再看,你的目標是B跟C嘛,PHRASE也許是什麼?LETTER。他可以是LETTER,∴這是LETTER,好,那LETTER可以是什麼?LETTER可以是什麼?LETTER可以是A或B或C,∴B可以,好,是不是可以?這邊也是可以什麼?C是不是可以?∴這個答案是什麼?就是這個啊。聽得懂我在說什麼嘛,那剩下的自己做la,剩下的自己剖啊,好,這個你趕快抄,我等你。 有一個叫模稜兩可的語法啊,…cut…,我講完你再看啊,能不能做出來,…cut…,語法可以畫出喔,你看這個語法啊,假設這個語法可以繪出喔,畫出兩個或兩個以上不同的剖析樹,∴兩個或兩個以上,或兩個以上不同的剖析樹,那這個語法就是模稜兩可的語法,模稜兩可的語法,可以畫出兩個或兩個以上不同的剖析樹,這個就是,我用這個例子告訴你這個就是,好,待會馬上解,我先抄,這邊可以擦嗎?擦掉啊,…cut…好,等下先聽我講啊,先聽我講,先等一下,我先把這講一講啊,今天我要判斷啊,注意哦,判斷這個語法是不是模稜兩可的語法,注意聽哦,判斷這個,∴這一個怎麼做?一開始喔,E,expration,注意,expration可以變什麼?E加 E。∴這有E加E,E加E,好,注意,這E加E啊,那再注意聽哦,E加E可以展成什麼?∵我們末來是要展成什麼?展成6加3乘以8。∴展成6加3乘以8,∴你這樣看喔,這個加已經產生了?注意,這個加,已經產生了,這個加是不是有拿掉?好,加產生了,那再來喔,再來這個怎麼做?這個E,可以產0、1、2、3、4,0或1或2或3嘛,∴這邊可以展開成這樣子,這應該沒問題吧,E,裡面有多少?6嘛。好,那這邊要注意哦,再來這個式子怎麼展?這個式子要展的時候,E,可以展成什麼?E乘以E嘛。可以展成E乘以E,∴這邊E,E乘以E,這應該沒問題了哦,那這個E要注意,E呢?要展成3啊,是不是展成3?∴這邊展成3。好,那這個乘,應該沒問題,這個乘沒問題,那這個呢?可以展成什麼?8嘛。對不對?好,那這個是一種展法哦,喂!這是一種展法,我這個要拿那個…聽不清楚…,這個,…聽不清楚…,好,∴他可以變成呢?6加3乘以8,我們看第二種展法,怎麼展?6加3乘以8,E,我不要先展加,我先展什麼?注意聽,我不要先展這個,我先展這個乘,∴這裡,變成E,乘以,這裡呢?E。這應該聽得懂吧?那這個乘是不是在這裡?∴這個乘拿掉,這個乘拿掉,好,那這個乘拿掉,注意哦,這個乘拿掉,那表示說這裡,E,我們再展,展成什麼?E加E。對不對?用第一個式子嘛,那這個E,是不是就是可以產生什麼?一樣嘛。E,E可以產生0或1或2或3,或6嘛,∴產生這個問題,這個假使存在,這個過來,可以吧,這個是不是可以變這個,對不對?那糟糕了。這個語法是不是可以展成兩個樹?∴這叫什麼?模稜兩可的語法。∴這是模稜兩可的語法,∴假設這,這…這個語法是錯的,還有啊,等一下啊,等一下,你看這個語法啊,誰先做?注意看,誰先做?6加3乘以8,誰先做?這誰先做?3乘以8。做完是多少?24。24再來多少?6。∴這個做出來是什麼?30。這應該聽得懂吧,那我們看這邊,這邊剖出來變成什麼樣子?6加3,乘以8,這誰先做?6加3。再乘以什麼?8。∴這個第一個做,這是第二個,那表示這邊有一個什麼?括號。是不是隱形的括號?∴這裡變多少?72。∴請問這兩個有答案都一樣嗎?不一樣。電腦瘋了,已經電腦瘋了,你到底叫我做這一個,還是做這一個?對不對?電腦會罵人la,他會跟你講什麼?模稜兩可的什麼?語法。好,這個你先抄,然後我們再解釋這個怎麼去解決他, <<以下空白>> 你一要心收回來,那有一個禮 拜天來找我,下完課不是有一個女孩子來找我嗎?…有的沒的…那個元智不錯啊,這個記得哦,記得這個,我們看這個啊,這邊有一個啊,ambigous grammar,模稜兩可的,模稜兩可喔,模稜兩可的語法,這底下要注意哦,這底下,這一個,那就是所謂模稜兩可,你注意看有沒有模稜兩可?E,E加F,有沒有?沒有。我們剛才講什麼時候才能模稜兩可?E加什麼?E。現在是E加F,他不會模稜兩可,∴像這一顆樹,他只能剖出唯一的,好,唯一的剖析樹,∴請仔細看這怎麼剖,這是E,E,任何E加F,E加F,注意聽哦,E加F,那注意哦,這裡哦,底下是不是有6加3?6加3乘以8。6加3乘以8,等一下哦,6加3乘以8,這個加,是不是也出現了?這個加要拿掉,好,這個加要拿掉,這個加出現了,好,然後,再來,這個E,E可以變什麼?E可以變F。F可以變什麼?G。G可以變什麼?6。∴E可以變F,你看,E變F,F變成G,那G變什麼?6。這合理嘛,對不對?這個加,他已經做完了,那F,這個F可以做什麼?看底下,F可以做什麼?F乘以G。∴F,乘以,G,對不對?F乘以G。這個乘,解決了,現在這個怎麼辦?這個3,跟這個8怎麼辦?F可以變什麼?G。G可以變什麼?3。F可以變G、G可以變3。這個,F可以變G、G可以變什麼?8。聽懂嗎?這是不是唯一的一顆?能不能剖出第二顆?不可以。為什麼不能剖出第二顆?我們講到的,他建立的優先權,誰的優先權最高?誰的優先權最高?3乘以8。再加6,也就是他建立優先權,誰最高?先乘除,後什麼?加減。聽懂嗎?先乘除,後加減。怎麼看?注意聽,怎麼看?F,你注意看F可以變什麼?你這樣寫看不懂的F不是就是F乘以G嗎?你就寫這樣就好了,∴先做什麼?F乘以G,加什麼?E。先乘除後什麼?加減。這應該看得懂嘛,∴才會比加的優先權高,∴建立什麼?優先權。這個告訴我們,乘除比加減高,建立優先權,好,你先抄,我們再講第二個,如何去破解他,其實你學那個管四喔,沒辦法出來,你在RUN程式喔,是不是常常跑出一堆文法錯誤告訴你?你那個時候是不是搞不清楚在講什麼?有沒有?那一堆文字有沒有?現在你慢慢會懂啊,他常常跟你講說,這裡不應該是識別字,有沒有?或者不該是什麼?運算子。有沒有?你寫的後面,莫名奇妙跑出一堆東西出來,不相信,你回去打一個東西,等一下就會冒出來了,你不要跟我說你家的電腦不對哦,∴隨便講一個,假設這樣,假設這樣哦,你看這個,你看,你去說看看,你家電腦難道有錯嗎,電腦馬上罵這個啊,對不對?他馬上罵這個東西啊,為什麼要罵這個東西,∵語法裡面,根據語法告訴我們,兩個運算元中間只能有一個什麼?運算子。除非你打成這樣子,電腦就不會罵人了,為什麼?這是什麼東西?負號。是不是負號?電腦可以接受la,你打這個,電腦馬上罵人,在這裡,打這個東西,你打這個東西,你打C對不對?電腦會罵什麼?有這個東西嘛,他底下會寫一段話,有沒有?對不對?那段話你聽不懂la,他那段話的意思是說叫你回去多讀書la,請問有這個冒號嗎?對不對?有冒號嗎?聽懂嗎?有冒號嗎?∴假設做得很好的那種compiler喔,他會跟你怎麼講,你知道嗎?做得很好的compiler,那種compiler還沒出來la,做得很好的compiler會說,這樣,這樣,他會打這個,他,他會跟你講說,你聽得懂我在說什麼嗎?是這樣嗎?應該這樣才對嘛,對不對?你聽得懂我在說什麼嗎?對不對?這就是應該要做的這種compiler,應該是這樣嗎?應該這樣才對嘛,對不對?我不要寫英文la,寫英文你們看不懂la,這邊跟你們講說,是A,冒號,等於,還是這個,等於,這個就有人工智慧la,這個好像還沒有人去做啊,應該做到這種東西,你讀上去可以做啊,你讀碩士可以做啊,大學不需要做任何論文啊,大學寫報告就好了啊,那個讀上去,碩士可以做那種論文,我們講那個第二個啊,建立運算子的結合,我還是用剛才那個例子好了,我們用別的喔,我們用別的來,像這個,解這個啊,1加2加3la,這個用,這個假設用左邊那個來剖析,是不是模稜兩可?對不對?現在我們用這個來剖析,來,1加2加3,E,剖怎麼剖?這個還是要1,加2加3加什麼,E是什麼la?E就是F加什麼?E。F加E。這應該沒問題吧,好,那這個要注意,這個加,這個加就是誰?這個加就是這個加。有沒有?這個加嘛。對不對?這個加。好,那再注意,來,F可以得到什麼?G。G可以得到什麼?1。∴這個,好,G,好,這邊可以得到什麼?E。E可以得到什麼?E可以得到再加一次。∵你這邊不是還有一個加?∴再加一次,這個什麼?F加E。∴這個加不見了,對不對?F可以變什麼?F可以變成或者是G,我用G,用G,這邊喔,G可以得到什麼?G可以得到2。這應該聽得懂嘛,那這個E,E可以變什麼?E可以變F。E變F,F是G。G可以變什麼?3。這樣…的嗎?鐵定不會la,為什麼不會?這種屬於什麼結合?先做哪邊,2加3,再加什麼?1嘛。∴這個一定先做這,∴這種什麼結合?右結合。右結合。那你會說”喂!那語言大部份都左結合,怎麼辦?”沒關係啊,左結合抇這兩個怎樣?對調就好了嘛。對不對?∴註解,這是不是很簡單?聽得懂在說什麼嗎?∴你們在學校補習補到鼻青臉腫,對不對?…,來這裡聽la,來這裡聽la,來這裡聽就對la,這邊要注意,為什麼會這樣做?我教你們一個怪招la,這是什麼?你不要跟我說迴圈哦,會抓狂哦,你現在要跟我說什麼?遞迴嘛。∴一直展開、展開,哪一邊?右邊。∴出來都是右結合,現在我們把他放在左邊,會產生什麼?左結合。聽得懂我在說什麼嗎?遞迴是左,左邊,∴左結合,你要左結合、右結合都你自己決定la,∴你能不能寫語法?可以啊。可以寫語法,但是語法怎麼寫?你要照這種來寫,∴你把那個compiler看得很神奇的,沒什麼,好,後面都可以做出來,…cut…,高階語言的箽類啊,這第一個就會考,注意,這第一個就會考哦,FORTRAN啊,你們先等一下哦,我先講哦,先等一下哦,我先把他講一講,FORTRAN啊,這個字啊,注意,這個字,這個FOR啊,這個FOR叫做formula,這叫公式,這個TRAN,這個TRAN應該叫translator,這叫轉換,∴這叫公式轉換語言,∴公式轉換語言,應用於哪裡?科學、工程。這要注意哦,∵他大部份是做什麼?公式計算嘛。像那個什麼,房子,房子要蓋幾層、地基要打幾層,好,像說飛機啊,在飛的時候,他的翅膀的張力,可以承受多少,好,要去計算啊,太空船,修正航道,好,∴這個,科學跟工程,那注意哦,他可以處理複數,什麼叫複數?3加4i。這個要注意,這是實數,這叫虛數,這叫複數,他可以處理這個,好像很少語言可以處理這種,∴這種啊,最早的影像處理是用這一個,最早的影像處理用這一個,那計算能力很強啊,我剛才講這是公式啊,∴計算能力很強,庫存函數很完整,什麼叫庫存函數?今天講過了哦,什麼Sin啦,Cos啦,好,還有指數啊,Log啊,很多啊,好,這就完整。他的特性如下啊,有固定格式,假設你有打過Fortran,你就知道了,Fortran他是這樣,1到6,是行號,行號,好,行號啊,好,GOTO什麼東西呢?GOTO什麼東西?像說這一個呢?1。假設這樣,7,好,1到5,1到5,管他,6是連接,好,連接,然後7到72,這邊是敘述,敘述,你這邊可以怎麼打?這邊假設打一個20,READ,2,這邊30I,點、點、點、點、點,這邊呢?有一個,有一條,GOGO 20,這應該看懂嘛,READ,2,機器號碼,30,他的格式…I,點、點、點、點、點,GOTO什麼?20。20是行號,對不對?這是他固定的格式,1到5是行號,6是連接,好,那7是什麼?7到72是他的敘述,為什麼會有連接?∵我們可能寫一個數學式,很長很長很長,怎麼辦?寫不完怎麼辦?這邊7,這邊到72,寫不夠時,是不是寫到下一行?那下一行怎麼辦?打個記號。打個記號什麼意思?這一個就是連在什麼?後面。聽得懂我說什麼嗎?連在後面。萬一你又打…打,又打不完怎麼辦?再連。是不是再連?也就是數學公式這樣、這樣、這樣,聽得懂ho,好,他有固定格式,然很最早最早,有format,就是這一種啊,什麼叫format?像我舉個例子講,這個30,這邊是format,format注意哦,format像這裡,I2,什麼意思知道嗎?I是什麼?喂!這是格式la,I是什麼?整數。那這個是什麼?2位。2位,這樣聽得懂嗎?就像什麼?來…來,我們現在講這個來,你說看不懂啊,這老掉牙的東西,這看懂了吧,會了吧,這看懂嗎?什麼意思?這是什麼意思?要幾位來印?2位嘛。是不是有2位?今天假設這邊3的話,什麼意思?2位的話,就是什麼?空3。對不對?聽得我說什麼嗎?空3。那萬一我來一個這樣的話,變什麼?變什麼?負哦,負什麼意?這叫做start code,什麼意思?負號叫做靠左印。聽得懂嗎?靠左印。沒有負號叫靠左印,聽得懂嗎?那這裡是什麼意思?2就是他的格式,D什麼意思?教過哦,第一天上課就講過哦,decimal,什麼叫decimal?十進制嘛。對不對?十進制嘛。Decimal。 不要緊,這C語言以後再講,C也有一章,好,這是他的格式,∴輸,輸入輸出,格式是在這裡,格式是在這裡,好,你要抄,你先抄,我等你,你先抄,…cut…,要注意,隱含性是什麼意思?只要這些開頭的,這些開頭的,全部都是整數,都是整數,∴你常常聽到什麼?像說I1。是整數。I1,是整數、I21,也是整數、IJK也是整數,J也是整數,這些都是整數,整數的變數,那我,隨便寫一個,ZOO,什麼開頭?Z開頭。什麼數?實數。只有I、J、K、L、N是整數,其實的是實數,這個實數變數,他有這些規定,C語言,就沒這規定了C語言,管你的,你要什麼數,你自己要怎麼樣?自己要講話。對不對?你自己要講話。你這要是integer,你這樣宣告,a就是什麼?整數。你這樣宣告,b就是什麼?實數。是不是實數?浮點數。你這樣宣告,c就是什麼?也是實數。但是什麼?倍精度。對不對?倍精度,這應該聽得懂嘛,倍精度。你這樣宣告,d就是什麼?長整數。整數嘛,兩個byte,長整數呢?4個byte,double嘛。好,那這邊,實數,4個byte,double就變什麼?8個byte。∴C是自己宣告啊,那FORTRAN是他自己訂好了一些,啊,一些規則,其實最重要的是這一個,最重要是這一個,∴FORTRAN會考應該是考這一個,應該是考這一個,還有common area,這個什麼叫common area?共用區間。共用區間。他有共用區間,像這個東西到底是什麼東西?common area就是宣告陣列,這邊宣告列,好,這邊有陣列啊,什麼陣列?A,有三個,B,要注意,二維,這是一維陣列,二維陣列,這A啊,A是這樣,這邊有三個,這叫A1、A2、A3,那注意,這種東西,注意聽哦,這個陣列是這樣,B,有這麼多,這是B,11,一列一行,一列一行;B12,第一列第二行,好,B21,第2列第1行,B22但是注意聽哦,電腦有這種放立體的嗎?沒有。∴電腦怎麼放?∴Fortran,注意聽,Fortran喔,是採用column major,採用column major,什麼叫column major?column major是以行為主。以行為主,∴他是這樣子的啊,電腦記憶體都是這樣子,我們在禮拜天有提過嘛,一個位置一個嘛,對不對?禮拜天不是講過嗎?∴他怎麼擺?什麼叫column major?以行為主。以行為主,∴這邊怎麼放?B11、B21、B12、B22。這應該聽得懂嘛,對不對?聽得懂沒?好,這樣放啊,∴糟糕了,現在要怎麼寫?這C6不要畫了,好,C6不要畫,好,這個,這個做什麼?共用。那這要怎麼畫?你畫的時候啊,畫一個,記憶體,∴這是一個記憶體,這裡誰最長?等一下,這誰最長?這邊三個位置,這邊四個位置,這邊幾個?6個。∴你這樣畫,你故意畫7個,1、2、3、4、5、6、7,後面不管了,留著,你從,你從哪裡開始寫ho,隨便la,你要從哪裡開始寫都可以,反正C6嘛,先寫C6,C6從哪開始寫?C6從這裡好了,C1、C2、C3、C4、C5,好,C6,好,那這裡怎麼講?注意看哦,這裡,這裡有講話哦,他說我們,這不是有括號嗎?括號,對不對?我們三個共用一個位置,C4在哪裡?C4在這裡。對不對?跟誰共用?等一下,跟誰共用?A2。A2。 還跟誰共用?B12。好,那注意聽哦,A2前面叫什麼?A幾個?3個。A2前面叫什麼?A1。A2後面叫什麼?A3啦。那注意哦,B12,B12前面叫什麼?B21。B21前面叫什麼?B11。∴這叫B21,B11,那這個位置當然叫什麼?B22。這應該聽得懂嘛。好,那這個講完,再看這個,這個怎麼說?A跟誰共用?D共用。A1在哪裡?在這裡。又跟誰共用?D共用。∴你看,好可怕喔,這個位置給誰用?4個用。但是我們說共用會造成什麼效應?邊際效應。記不記得?好,這邊要注意,這裡,這裡跟這裡,哇,太可怕了,誰又共用?D、E、F。這個有夠省了,省得實在是…,對不對?∵以前記憶體喔,太少了,以前的記憶體,你們現玩的記憶體,太可怕了,現在32Mega,你知道在…以前的記憶體多少嗎?64K。64K,64K是不是系統又佔掉一部份?∴真正你能用的大概只有20幾K而已,20幾K啊,當然要斤斤計較啊,你現在32K是不是有比以前好用?對不對?∴再看這裡哦,GH,GH,好,G跟H你自己要找一個位置,這邊叫G,H,∴電腦要儲存這些,要用幾個位置啊?從這邊算起,1個、2個、3個、4個、5個、6個、7個,∴這一題答案選誰?答案選C。這個能不能聽得懂?能不能聽得懂?共用位置,C語言有沒有共用位置?有。C語言有共用位置,知道不知道?C語言有共用位置,知道不知道?除了指標以外,還有,還有哦,指標以外還有哦,還有共用位置,以後再講,C語言發下來再講,有共用位置。 …cut…,我們講那個第二個語言啊,等一下哦,我先講第二個語言,那邊放棄,那邊不擦,不擦,我先講這邊,我先講這邊,這裡有一個語言叫ALGOL,注意,這第二語言叫ALGOL,ALGOL叫ALGOrithm,這個演算法,演算法語言,他是跟FORTRAN類似,要注意,這個不是美國用的,這種語言不是美國,這個是在歐洲,歐洲用的語言,好,這個是ALGOL,∴他跟FORTRAN的功能類似,但是,要注意,比FORTRAN更有效率,∴他速度更快,但是注意哦,這種語言跟FORTRAN一樣,處理非數值資料的能力很差,非數值資料,什麼叫非數值資料?就是這種東西,這種東西,他的能力很差,像BASIC,你看BASIC多強,BASIC很強耶,你不要去懷疑他啊,BASIC相當強,你看不起喔,你知道這什麼意思嗎?這什麼意思?好,看英文啊,看英,你一定要看英文,LEFT,LEFT什麼意思?左邊啊。左邊。左邊,那這邊起初幾個?兩個。左邊起初兩個,∴抓出誰?AB啊,抓出AB。這個能不能聽得懂?但是,注意聽,這種,在FORTRAN,沒有;在ALGOL,沒有,但是在C語言有沒有?有。C語言有。PASCALL有沒有?有。PASCALL跟C都有,好;這個FORTRAN跟ALOGO都沒有,∴這種叫非數值,他的分析,第一個,區塊結構,這種什麼叫區塊結構?這裡一塊、一塊,一個block、一個block,這是C語言,有啊,對不對?C語言有block、block結構,這個記號叫什麼?那這邊要注意哦,有邊迴副程式,遞迴副程式,這個,可以呼叫自己,可以呼叫自己,稱為呢,遞迴,注意,可以呼叫自己稱為遞迴,∴下禮拜一,我先把這個,十幾種語言先講完,然後我們就先講遞迴,好,有十幾種語言,然後我們就先講遞迴,注意,下禮拜一講遞迴,遞迴滿重要的,那注意,第三個要注意,call by name,他有個特性,喔,那個ALOGO有個特性叫call by 什麼?call by name。我在第一次上課的時候是不是講過?對不對?那個FORTRAN,call by adderss,記不記得?PASSCALL,call by adderss,跟call by value,ALGOL是三種都有,記不記得?好,他有call by name。好,你先抄,你先抄,我等你,…cut…,第4個,把他解決掉,第4個啊,第4個,RPG啊,對你們資管這應該是滿有用的,但是這個語言現在也變得很少,在學校有沒有玩過這個?有玩過這個嗎?這商科用的,這個商科用的,RPG啊,叫Report, 報表,Program,這是程式,Generator,是產生,∴主要做什麼?報表印出的,做報表印出的,這語言對,對我們很重要啊,但是很奇怪,現在學校怎麼教的?現在學校都教什麼?Access。對不對?Access的東西。或者教VB啊,教VB,Access裡面要教到SQL啊,好,SQL語言,這個上次有提過啊,SQL,SQL你要會哦,SQL要會,不灰到時候考試考資料庫,會出問題哦,第三個叫COBOL,好,COBOL這個已經被淘汰了,但是要知道哦,COBOL是Common Business,這CO、B、O、L,拜託,全名要<哦,這個有人去考什麼插大的,交大有一年考出20個,把他寫成全名,然後翻譯成中文,結果你就會槓在那一題,20分沒有,20分沒有就不用考了,好,∴注意,這個商用語言,這是商用語言,∵這個是Business,他是用在商用,主要,特性是於處理大量資料,為什麼善於處理大量資料?要注意哦,這一句話就是這個哦,他的檔案功能強,我們後面會講到檔案啊,假設你玩過COBOL啊,你就知道他有4種檔案,別的語言還不見得有哦,有4種檔案,第一種檔案叫做循序檔,第一種檔案叫循序檔,這什麼語言都有,第二個叫做相關檔,相關檔,第3個我們叫做索引循序檔,這個,一般語言是不是只有這兩個啊?對不對?就沒有這個檔嘛,索引循序檔,微電腦應該沒有索引循序檔,但是大電腦就有,好,第4個叫隨機檔,∴他檔案功能非常的強,他檔案功能非常強,∴既然檔案功能強,∴應該用在,輸入輸出,他用在輸入輸出,∴商用為什麼會用COBOL?就是要用他的檔案,功能,他的特性,要注意,啊,對不起,這裡少一個字,具有雜別字,這種東西叫noise word,雜訊字,什麼叫雜訊字?雜訊字就是不該有的字la,但是他放在那邊有什麼好處?雜訊字的用途是用來增進程式的可讀性,其實你注意看啊,我只要看到go,我就可以知道跳,是跳到哪去?跳到TO。不要TO,這個TO就是什麼?雜訊字。COBOL有很多雜訊字ne,move A to B,有沒有?有沒? ,A From B,看過沒?有沒有看過? ,A by B,有沒有?等一下,等一下,同學這不要抄,看一下就好了啦,這看一下就好了啦,先等一下,move a to b,A,…這個要不要?不要la,move就好了嘛,這就是,根本就學英文嘛, A From B,啊?那個誰減誰?B等於B減A。對不對?讀那麼多做什麼?subtract a b就好了la,對不對?這個multiply a by b,a乘以b,那這個是要做什麼?這都是noise嘛,∴叫你玩這個語言,你想不想玩?不想玩。∴後來就有人很聰明,那怎麼辦,這個不好玩了,乾脆有compute,你要A,A等於B就A等於B嘛;你要,你要,A乘以B就A乘B嘛,A等於A乘B嘛,那不跟我們現在…不是一樣嗎?喔,∴有了這個之後,這就變垃圾,∴noise word很多,COBOL的noise word很多,我把你擦掉哦,你知道就好了,∵你背也是背,你不要做那windows裡的垃圾筒,garbage,那個聽一聽就好了,∵那個東西喔,你聽一聽就好了,那個考的機率滿低旳,會考的就是說以下何者語言具有雜訊字?很多雜訊字,那記得誰?COBOL。聽懂嗎?記得COBOL就好了,他不會問你move什麼,MUL什麼什麼,哪些雜訊字,那個就不寫了,對不對?不可能考那個啊。好,那注意,這個語言比較傾向什麼?自然語言。為什麼寫剛才那一段?那個很像外國人在講嘛,move什麼,to什麼,有沒有?好,∴他傾向什麼?自然語言。好,你抄一抄,我們今天上班這裡了,今天上到這裡了,你抄一抄好了。
相簿設定
標籤設定
相簿狀態