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(     )機器語言所用之指令完全由01編碼而成的。

132(     )高階語言所寫的程式都必須翻譯成機器語言,電腦才能執行。

133(     )機器語言是由01兩種符號所組合而成,為電腦所認識之唯一語言,所以電腦是直接執行機器語言。

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(     ) COBOLFORTRANBASIC以上三種程式語言,皆是高階語言。

       (四) 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(     )JavaJavaScript兩種程式語言,在執行前均須先編譯過才可執行。

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(     )一般高階語言(如:COBOLPASCALC等)所編寫出來的程式,要經過數道程序才能轉換成可執行的機器語言程式,其最後一道程序為編譯(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)百萬分之一秒。 

﹝課後測驗﹞ 

﹝回首頁﹞