15-1.1程式(Program)
程式 |
一連串邏輯性指令的集合。 |
撰寫程式的目的 |
解決問題。 |
程式設計的步驟 |
定義問題→設計解決方案→撰寫程式→測試程式[編譯(Compile)、連結(Link)、載入、測試、除錯(Debug)]→編寫程式文件(維護) |
15-1.2程式語言(Programming Language)的種類
15-1.2.1程式語言的類型與世代
第一代 |
低階語言 |
機器語言(0與1組成) |
第二代 |
組合語言(Assembly Language) |
|
第三代 |
高階語言 |
程序導向:Fortran、Cobol、Basic、Pascal、C 物件導向:C#、C++、Common Lisp、Delphi、Java、JavaScript、Objective-C、Perl、PHP、Python、Ruby、Smalltalk、Swift、VB |
第四代 (4GL) |
問題導向:資料庫查詢語言:SQL |
|
第五代 |
自然語言 |
人工智慧:Lisp、Prolog |
15-1.2.2低階語言與高階語言的比較
項目 |
低階語言 |
高階語言 |
撰寫難度 |
難 |
易 |
除錯難度 |
難 |
易 |
維護難度 |
難 |
易 |
執行速度 |
快 |
慢 |
可攜性 |
低 |
高 |
可讀性 |
低 |
高 |
跨平台性 |
低 |
高 |
佔用記憶體空間 |
小 |
大 |
15-1.2.3語言翻譯工具
分類 |
組譯器(Assembler) |
編譯器(Compiler) |
直譯器(Interpreter) |
|
適用 |
組合語言 |
高階語言 |
高階語言 |
|
功能 |
組合語言轉譯成機器語言 |
高階語言轉譯成機器語言 |
高階語言轉譯成機器語言 |
|
目的程式 |
有 |
有 |
無 |
|
執行速度 |
最快 |
快 |
慢 |
|
翻譯執行 |
組譯1次執行多次 |
編譯1次執行多次 |
每次執行須直譯1次 |
|
翻譯過程 |
組合程式→組譯程式→目的程式→連結程式→機器語言(可執行檔)→載入程式→執行→結果 |
高階程式→編譯程式→目的程式→連結程式→機器語言(可執行檔)→載入程式→執行→結果 |
高階程式→直譯程式→機器語言(可執行檔)→執行→結果 |
|
翻譯方式 |
翻譯後,若有錯誤,產生錯誤訊息。 若完全正確,產生目的程式。 |
執行翻譯、執行,若有錯誤則停止。 |
||
15-1.3物件導向程式設計(OOP, Object Oriented Programming)
元素 |
類別(Class) |
相同類別生成的物件,具有相同的屬性、事件、方法。 |
屬性(Attribute) |
描述物件具體的特徵。 |
|
事件(Event) |
事件:物件可對事件進行辨識。 事件程序(Event Procedure):物件對事件的回應。 |
|
方法(Method) |
物件的執行功能。 |
|
物件(Object) |
具體實際存在的物品。 |
|
特性 |
封裝性(Encapsulation) |
將物件內部的屬性與方法加以封裝,只能透過物件的介面(interface)來取得。 |
繼承性(Inheritance) |
子類別會繼承父類別的屬性與行為。 可簡化重複撰寫程式,減少錯誤。 繼承性是多型性得以實現的基礎。 |
|
多型性(Polymorphism) |
一個方法將依照呼叫物件的不同,而有不同的操作。 |
|
抽象性(Abstraction) |
將變數抽象化,讓使用者更容易使用。 |
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。