欢迎来到天天文库
浏览记录
ID:57269097
大小:4.27 MB
页数:44页
时间:2020-08-08
《計算機概論第二版弘光科技大學.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、計算機概論第二版FoundationsofComputerScienceChapter9程式語言9.1演化電腦語言(computerlanguage)就是根據事先定義好的規則〔語法(syntax)〕,將一組事先定義好的文字組合成程式。機器語言在電腦剛發明的年代,唯一可使用的程式語言就是機器語言(machinelanguages)。每種電腦都有它自己的機器語言,是由一堆的0與1位元流所構成。p.226電腦唯一懂的語言就是機器語言。p.226表9.1二整數相加的機器語言碼16進制值機器語言碼組合語言隨著程式設計的進展,二進位碼被指令取代,而記憶體位址則被符號或助憶碼
2、所取代。因為助憶碼集合經組合後取代原機器語言,所以之後這些助憶碼式語言就被歸類為組合語言(assemblylanguages)。組譯器(assembler)是用來將符號碼轉譯為機器碼的一個特殊的程式。p.227p.227表9.2二整數相加的組合語言程式碼組合語言碼描述高階語言為了增進程式設計師的效能與將焦點由電腦硬體轉為專注於解決問題本身,於是引導了高階語言(high-levellanguages)的發展。高階語言撰寫的程式可移植到不同電腦執行,這讓程式設計師可以專注於應用而非錯綜複雜的電腦結構,同樣也可以避免程式設計師陷入組合語言的細節。高階語言也具有一項組合
3、語言的特徵,就是都必須轉譯成機器語言,這樣的處理被稱為直譯或編譯。p.227p.228程式9.1使用C++撰寫的加總程式9.2轉譯程式一般而言都會以某種高階語言撰寫而成,因此若欲在某電腦上執行此程式,就必須先轉譯為此電腦相對應的機器語言。這種以高階語言撰寫的程式被稱為原始程式(sourceprogram),而轉譯後的程式稱為目的程式(objectprogram)。有兩種轉譯方法:編譯(compilation)與直譯(interpretation)。編譯一般編譯器(compiler)會將整個原始程式轉譯為目的程式。p.228直譯逐行將原始程式轉譯為對應的目的程式並
4、加以執行的處理過程。某些電腦語言會使用直譯器(interpreter)將原始程式轉譯為目的程式。第一種直譯早於Java語言前的直譯語言,每一行的原始程式會被轉譯為對應電腦的機器語言並立即執行。第二種直譯隨著Java出現,採用了新型態的直譯處理。將原始程式轉譯為目的程式分為兩步驟:編譯與直譯。Java原始程式首先被編譯為Java位元組碼(bytecode),而位元組碼可以在任何執行JVM模擬器的電腦上進行編譯或直譯。p.229p.229圖9.1原始程式的轉譯處理語彙分析器(lexicalanalyzer)將原始碼一個符號接著一個符號讀入,並產生一串符記(token
5、s)。語法分析器(syntaxanalyzer)將一組符記剖析為指令。語意分析器(semanticanalyzer)檢查由語法分析器產生的句子,以確保語意不會產生混淆。由語意分析器所產生的明確指令,每一條都會被轉換為一組機器語言所構成的指令,以供電腦執行,這項工作會在程式碼產生器(codegenerator)完成。p.2309.3程式設計類型p.230圖9.2程式設計語言的種類程序式類型程序式類型〔proceduralparadigm;或規則式類型(imperativeparadigm)〕可將程式視為主動的代理人,能主動處理被動的物件。被動的物件無法自行啟動,但
6、可以接受主動代理人發出的動作。在程序式類型中的程式是屬於主動代理人,將資料或資料項視為被動的物件。資料項被儲存於電腦的記憶體中,以供程式處理。p.231p.231圖9.3程序式類型的觀念p.232圖9.4程序式程式的組成單元若干程序式語言FORTRAN〔方程式轉譯程式語言(FORmulaTRANslation)是第一個高階語言。COBOL〔共通商業導向程式語言(COmmonBusiness-OrientedLanguage)是用來當做商業程式設計語言使用。Pascal的設計目標在教導程式設計初學者時,可用以強調結構化程式設計的方法。C語言(Clanguage)是
7、為了用來寫作業系統與系統軟體。Ada是由美國國防部(DoD)契約承包商所使用的統一語言。p.232物件導向式類型物件導向式類型(object-orientedparadigm)以處理主動物件取代被動物件。在日常生中我們經常碰到許多主動物件,執行在這些物件上的動作都被包含於物件裡,所以物件僅需要接收外界傳來的適當刺激,就會去執行相關的某個動作。物件導向式類型的檔案中會包含所有的程序,稱為方法(methods),也就是會對檔案執行的動作:列印、複製、刪除等。p.234p.234圖9.5物件導向式類型的概念p.235圖9.6類別組成單元方法(method):其格式非常
8、近似於某些程序式語言中的
此文档下载收益归作者所有