1-4計算機程式語言 ﹝回首頁﹞
由於電腦唯一所看得懂的語言是由二進位『01010001』所組成的機器碼,因此早期的程式設計者必須使用機器語言來撰寫程式,他們必須將每個指令轉換成二進位碼,相當辛苦並且容易出錯,所以後來有許多電腦科學家,發展出組合語言以及高階語言。波姆(Bohm)及賈可皮尼(Jacopini)曾證明循序性、選擇性、重複性等三種敘述,就可用來描述程式邏輯的所有形態結構。是目前流行結構程式的依據。
49( )波姆(Bohm)及賈可皮尼(Jacopini)曾證明循序性、選擇性、重複性等三種敘述,就可用來描述程式邏輯的所有形態結構。
我們都直接將電腦語言直接分為低階語言(low level language)和高階語言(High level language)二種。
而低階語言:我們又可分為機器語言(Machine language)和組合語言(Assembly language)二種。
116( )Assembly,一般而言是屬於低階電腦語言。
120( )機器語言在電腦語言中是屬於低階語言。
(一) 機器語言(Machine language)
機器語言是一種電腦唯一能直接識別的語言,它係由”0”與”1”兩種符號所組成。
85 ( )高階語言是電腦內部唯一能夠辨識執行的語言。
114( )機器語言所用之指令完全由0與1編碼而成的。
132( )高階語言所寫的程式都必須翻譯成機器語言,電腦才能執行。
133( )機器語言是由0與1兩種符號所組合而成,為電腦所認識之唯一語言,所以電腦是直接執行機器語言。
644( )可以直接被電腦接受的語言是(1)機器語言(2)組合語言(3)C語言(4)高階語言。
機器語言之優點:
1. 程式執行速度最快,效率也最高。
2. 程式佔用主記憶體空間會較高階語言所佔的空間少。
3. 機器語言不需經過編譯即可執行。
106( )高階語言的特性為不需經過編譯即可執行。
108( )在電腦語言中除了機器語言外,其餘均須經過翻譯才能為電腦所接受。
130( )一般而言,採用低階語言所編寫的程式,所佔記憶體空間會較高階語言所佔的空間少,且執行速度會比較快。
但相對地缺點是:
1. 程式難以撰寫,容易出錯且修改及維護都困難。
2. 程式之可攜性最差。以機器語言撰寫完成的程式,在不同機型的電腦上,不能執行。
3. 程式設計人員,須具有相當深入的電腦硬體知識才能勝任。
147( )電腦低階語言具有結構簡單、容易學習且適合初學者學習的特性。
(二) 組合語言(Assembly Language)
組合語言是一種以英文字縮寫來表達人類語言含意的符號碼語言。所謂的符號碼代表助憶指令
(Mnemonics Instructions)。
組合語言的優點:
1. 因使用助憶指令,比機器語較易學習。
2. 低階語言程式執行效率高。
104( )在程式執行的效率上高階語言較低階語言為佳。
3. 程式執行速度快。
4. 最易表現計算機具有的功能。
組合語言的缺點:
1. 組合語言,因機種不同,所以不同的CPU,其相容性差。
121( )不同的CPU,其組合語言就會有所差異。
2. 組合語言撰寫的程式比較長且繁瑣。
3. 程式人員需備硬體的相關知識。
4. 程式維護及修改均不易。
122( )操作系統一定要全部用組合語言撰寫。
136( )組合語言程式比高階語言程式較容易維護。
(三)高階語言 (High-level Language)
高階語言是一種接近人類語法表達的語言。
119( )人類對高階語言較易了解,而電腦對低階語言較易了解。
高階語言具有以下之優點:
1. 接近人類語法,易學易懂。
2. 程式撰寫較簡短與除錯均較容易。
3. 程式之可攜性(Portability)高。
124( )同樣功能的程式,高階語言來設計通常較低階語言簡短。
139( )程式可攜性(Portability)高不是高階語言的優點。
148( )高階語言具有易寫易懂的特性。
相反地,其缺點為:
1. 程式的執行效率較低階語言差。
2. 佔用主記憶體空間較大。
常見的高階語言
(一) BASIC (Beginner's All-purpose Symbolic Instruction Code)
為一種簡單易學,很適合初學者學習的直譯程式。其轉換為機器語言和JavaScript一樣是採用直譯式。其程式如:10 SUM=0 20 FOR I=1 TO 10 30 SUM = SUM + I 40 NEXT I 50 PRINT SUM 上列程式片段的執行結果為55。又 BASIC語言中,DATA敘述所供應的資料個數,如果小於READ敘述的變數個數,則程式會出現 OUT FOR DATA,將無法執行。
111( )10 SUM=0 20 FOR I = 1 TO 10 30 SUM= SUM + I + I 40 NEXT I 50 PRINT SUM 上列程式片段的執行結果為55。
112( )BASIC語言中,DATA敘述所供應的資料個數,大於READ敘述的變數個數,則程式無法執行。
115( )Turbo C是屬於直譯式(interpretive)的高階語言。
555( )BASIC語言是屬於(1)自然語言(2)機器語言(3)低階語言(4)直譯程式。
(二) FORTRAN (Formula Translation)
為一種用於科學,工程及數學上的語言。
(三) COBOL (Common Business-Oriented Language)
為一種適於資料多,計算少的商業應用語用。〕
134( ) COBOL、FORTRAN、BASIC以上三種程式語言,皆是高階語言。
(四) PASCAL
為一種具結構化,適合多用途使用的語言。
(五) C
是一種相當結構化,具速度快可攜性高的語言,C語言不但是結構化語言,同時具有組合語言及高階語
言的優點,最適合設計系統程式。若需處理低階的位元或主記憶體內容,通常採用C或組合語言設計程
式較為理想。
103( )C語言不但是結構化語言,同時具有組合語言及高階語言的優點。
118( )若需處理低階的位元或主記憶體內容,通常採用C或組合語言設計程式較為理想。
128( )C語言是具可攜帶性之程式語言,適合用來設計系統程式。
137( )高階電腦語言中 C 比 COBOL較為適合發展系統軟體。
(六) RPG
為適應商務上大量編製報表需要而設計出之語言。
109( )RPG語言是為適應商務上大量編製報表需要而設計出之語言。
117( )BASIC語言是專供編製報表製作的程式語言。
(七) LISP
也是用於人工智慧上的語言,主要專門處理字串等非數字資料的程式語言。
(八) Java與JavaScript
此二種語言具有跨平台,是目前常用在動態網頁設計上的語言。Java是一種物件導向(Object-Oriented)的
程式語言。Java也是屬於一種高階語言,程式編寫後,需經編譯後才可執行,相反的,JavaScript是直譯
描述高階語言,它是邊翻譯邊執行,不需先編譯即可執行。
131( )Java電腦語言的特色是可跨平台作業。
171( )程式語言Java是一種物件導向(Object-Oriented)的程式語言。
179( )Java及JavaScript兩種程式語言,在執行前均須先編譯過才可執行。
123( )UNIX是屬於高階電腦語言中的一種。
語言的翻譯程式(Language Translator)又可分:
(一) 組譯程式(Assembler)
是一種將組合語言的原始程式,翻譯成機器語言組成的目的程式。
例如:組合語言的組譯程序為:
組合語言原始程式 --------> 組譯程式 --------> 目的程式
Assembly Assembler (機器語言)
105( )組譯程式(Assembler)為語言翻譯程式(Language Translator)的一種。
107( )將組合語言翻譯成機器語言的軟體稱為直譯器(Interpreter)。
126( )組合語言經組譯(Assembler)後,會成為機器語言。
(二) 編譯程式 (Compiler)
是將高階語言所寫的原始程式,譯成機器語言組成的目的程式。
138( )鏈結程式(Linker)將高階語言的原始程式轉換為目的程式。
例如:C語言的編譯程序為:
原始程式 --------> 編譯程式 --------> 目的程式
(C語言) (Compiler) (OBJ機器碼)
其特點:
1. 執行速度較快。
2. 可單獨執行程式,不須依附於軟體才能夠執行。
3. 需過濾整個程式無訛後,才全部翻譯成機器語言(目的程式),並經連結(Link)與載入後產生可執行模組(Executable Module)才可被執行程式的工作。
633( )程式經編譯(Compile)後,不會產生下列那一種輸出?(1)診斷訊息(Diagnostic Message) (2)列印原始程式(Source Program Listing) (3)可執行模組(Executable Module) (4)目的模組(Object Module)。
4. 資料型態不合與語法錯誤在原始程式編譯過程中是會被發現的。
125( )語法錯誤在原始程式編譯過程中會被發現。
135( )資料型態不合為編譯程式(Compiler)所無法找出的錯誤。
5.一般寫程式的流程為:編譯-連結-載入-執行
129( )一般高階語言(如:COBOL、PASCAL、C等)所編寫出來的程式,要經過數道程序才能轉換成可執行的機器語言程式,其最後一道程序為編譯(Compiler)。
634( )一般編寫程式的流程為(1)編譯(Compile),執行(Execution),連接/載入(Link/Load) (2)編譯,執行,連結/載入(3)編譯,連結/載入,執行(4)連結/載入,編譯,執行。
(三)直譯程式(Interpreter)
是將程式依行號順序,依序一邊翻譯一邊執行,若遇程式錯誤,即停於錯誤處,否則繼續往下執行,一次只能讀取、翻譯、執行一列程式敘述。是一種交談式的翻譯程式,程式本身並不會產生目的程式 (機器碼)。
例如:BASIC的直譯過程為:
原始程式 --------> 直譯程式 --------> 程式執
(.BAS) (Interpreter) 行結果
127( )編譯程式(Compiler)對高階語言的處理,一次只能讀取、翻譯、執行一列程式敘述。
784( )使用直譯器(Interpreter)將程式翻譯成機器語言的方式,下列敘述何者正確?(1)直譯器與編譯器(Compiler)翻譯方式一樣(2)先翻譯成目的碼再執行之(3)在鍵入程式的同時,立即翻譯並執行(4)依行號順序,依序翻譯並執行。
在程式設計中,堆疊的資料結構 (Stack) 是一個有順序的資料儲存體,其存取資料的方式為先進後出(First In Last Out)。相反的串列(Queue)資料結構是,其存取資料的方式為先進先出(First In First Out),像排隊買票一樣。
48 ( )先進先出(First In First Out)的資料結構是串列(Queue)。
57 ( )堆疊(STACK)的資料結構特性是First In First Out。
150( )堆疊(Stack)是一個有順序的資料儲存體,其存取資料的方式為先進先出。
微秒(Microseconds)是計量電腦速度的微小時間單位之一,一微秒等於百萬分之一秒(10-6)。
651( )微秒(Microseconds)是計量電腦速度的微小時間單位之一,一微秒等於(1)千分之一秒(2)十萬分之一秒(3)萬分之一秒(4)百萬分之一秒。