程式发展
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
為紀念十七世紀的大數學家Blaise Pascal而命名 由瑞典Institut fur Informatik in Zurich的電腦科學家 Niklaus Wirth在1968年所發展出來 承襲ALGOL的優點,並簡化繁複的語法、擴充許 多頗具彈性的資料型式與資料結構 是一種優良的結構化程式(Structural Program)語言 結構化、易學易懂、可讀性高 適合商業及學術領域使用,常作為教學語言 亦適合一般使用者學習程式語言之用
程式 語言
程式編譯工具程式
編輯程式 (editor)
編輯原始檔案的工具程式 如PE2,MS EDIT
參數 傳遞
連結程式 linker
結構 程式
將一個以上的目的程式與程式庫連結合併成一個 可執行檔
載入程式 loader
物件 程式
將可執行檔從輔助記憶體中讀入主記憶體使執行 的程式
偵錯程式 debugger
第五代:自然語言(Natural Language)
物件 程式
程式 語言
第一代語言
機器語言(Machine Language)
由 0 與 1 等二進碼所構成的語言 可直接為計算機接受執行 極不方便撰寫及理解
因為每編寫一行指令, 便頇查表以找出所對應的運算碼
參數 傳遞
結構 程式
物件 程式
人們並不直接學習或使用機器語言 屬低階語言(Low Level Language)
程式語言並非一經撰寫即可在電腦上執行, 而是必頇經過一定程序的轉換,轉換為電 腦所能辨識的執行指令,方可執行。 程式語言轉換的過程亦可稱為翻譯。最終 轉換的結果為機器語言,只有機器語言才 能在電腦上執行
參數 傳遞
結構 程式
物件 程式
程式 語言
程式語言
程式語言的分類 語言編譯程式
參數 傳遞
常見的程式語言
程式 語言
第五代語言
自然語言(Nature Language)
又稱知識庫語言(Knowledge-Based Lang.) 使用者以一般英文語句直接和電腦對話 最近似於人類日常生活所使用的語言 使不懂電腦的人更方便進行資料存取 處理較為複雜,目前尚無法處理複雜邏輯 應用在人工智慧(AI)與專家系統(ES)等領域 Ex: Tell Me All Data In Person Table
參數 傳遞
結構 程式
PL/1
物件 程式
為Program Language/One的縮寫 1964年由 IBM 公司所發展出來的一種多用途語言 能用於工程、科學、商業等各種應用領域
程式 語言
常見的程式語言 -- 3
RPG
為 Report Program Generator 的縮寫 為一種表格化的程式語言 主要的功能在提供大量報表印出之用 1960年由 IBM 所發展出來 廣泛地應用於小型商業電腦上
常見的程式語言 -- 8
GPSS
為General Purpose Simulation System的縮寫 專門應用於模擬工作上
參數 傳遞
結構 程式
APL
為 A Programming Language的縮寫 由 K. Lverson 所發展出來 專門處理數學方面的求解問題,其中以陣 列與向量的處理最有用
程式 語言
其他程式語言小常識 -- 1
具有遞迴(recursive)能力的語言
ALGOL PASCAL C PL/1 QUICK BASIC LISP
參數 傳遞
結構 程式
模擬專用的語言
物件 程式
GPSS SIMSCRIPT DYNAMO
程式 語言
其他程式語言小常識 -- 2
物件導向的程式語言
程式 語言
常見的程式語言 -- 6
ADA
為紀念1800年代的數學家Augusta Ada Byron而命名,此人被許多電腦科學界的人 士認定為第一位電腦程式設計師 為美國國防部基於國防需要所開發的語言 用在處理大型程式和複雜專案 程式很複雜,但可攜性(Portable)十分良好
參數 傳遞
結構 程式
依對硬體設備 的相依性來分
物件導向 語言 機器導向 語言
低階語言 高階語言
組合語言
機器語言
組合語言 程序導向語言 非程序導向語言 一般結構化高階語言 4GL、第五代語言
接右上
問題導向 語言
程式 語言
程式語言
程式語言的分類 語言編譯程式
參數 傳遞
常見的程式語言
結構 程式
物件 程式
程式 語言
程式發展
程式語言 參數傳遞 結構化程式設計 物件導向程式設計
計算機軟體的分類
作業系統 組譯程式 系統軟體 程式語言 處理工具 直譯程式 編譯程式 編輯程式 計算機軟體 工具程式 連結程式
載入程式
偵錯程式
套裝軟體
應用軟體
使用者自行開發的程式
程式 語言
程式語言的定義
又稱計算機語言 是人與電腦間溝通的語言
語言編譯程式
組譯器(Assembler)
將組合語言程式翻譯為目的程式, 再經過連結程式,連結為執行檔*.com 檔案大小小於64K
參數 傳遞
結構 程式
編譯器(Compiler)
將原始程式一次翻譯為目的程式後, 再聯結函式庫或是其他目的程式為執行檔*.exe 檔案大小大於64K
直譯器(Interpreter)
參數 傳遞
結構 程式
物件 程式
計算機語言演進與人類的關係
人類
自然語言(第五代語言)
極高階語言 4GL(第四代語言) 科學導向語言 高階語言 3 GL 組合語言 機器語言 中央處理器 電腦 商務導向語言
低階語言
程式語言分類總覽
機器導向語言 通用程式語言 一般分法 非物件 導向語言 特殊問題導向語言 機器語言 問題導向語言
物件 程式
將原始程式逐行翻譯為機器語言 程式每次執行,皆必頇經過翻譯的手續 亦稱為解譯器
語言編譯程式的比較
比較項目 目的程式 組譯 有 直譯 無 編譯 有
程式執行速度
語言處理與程 式執行
快
慢
編譯一次 執行一次 與機種無關
快
編譯一次 執行n次 與機種無關
編譯一次 執行n次 機器微處理器 原始程式和機 不同,原始程 器的相關性 式敘述就不同
參數 傳遞
結構 程式
COBOL
物件 程式
COmmon Business Oriented Language的縮寫 1959年由美國政府、用戶及廠商所組成的 CODASYL機構所制定 目前在國內仍有很多中小企業使用
程式 語言
常見的程式語言 -- 2
ALGOL
為 ALGOrithmic Language的縮寫 於1957-1960年間被設計出來 以前在歐洲頗為風行 在學術界及國際發表的刊物上,常被用來當作表 達演算法的程式語言
程式 語言
第二代語言
組合語言(Assembly Language)
利用簡單易懂的英文或數字符號(助憶碼) 來取代機器語言二進碼的程式語言 亦稱符號語言 與機器語言指令成一對一的關係 此程式電腦無法直接執行,必頇透過組譯 程式(Assembler)轉成機器語言才行 仍似機器語言不具移植性,因此頇對機器 的組成構造有相當了解才能撰寫程式 屬低階語言(Low Level Language)
協助程式設計師偵測程式錯誤點的程式
程式 語言
程式語言
程式語言的分類 語言編譯程式
參數 傳遞
常見的程式語言
結構 程式
物件 程式
程式 語言
常見的程式語言 -- 1
FORTRAN
為 FORmula TRANslation 的縮寫 由 IBM 公司於1954年所開發出來 是世界上第一種開發成功的高階語言 適合於解決工程與科學上的問題
參數 傳遞
結構 程式
物件 程式
程式 語言
第四代語言(4GL)
極高階語言(Very High Level Language)
參數 傳遞
結構 程式
物件 程式
屬於問題導向語言(Problem Oriented Lang.) 或稱非程序導向語言(Nonprocedure Lang.) 指示電腦去「做什麼」,而不像第一、二、 三代語言(它們屬程序導向語言),必頇指示 電腦「如何去做」 程式的敘述與電腦的執行步驟沒有關連 例如:資料庫查詢語言、應用程式產生器 Select * from person
參數 傳遞
結構 程式
BASIC
物件 程式
Beginner’s All Purpose Symbolic Instruction Code 1965年由Dartmouth學院發展出來 易學易懂,適用於初學者的入門學習 隨個人電腦的推出而風行,中文譯為「培基」
程式 語言
常見的程式語言 -- 4
PASCAL
物件 程式
程式 語言
Oriented symBOlic Language的縮寫 1962年由美國貝爾實驗室所發展出來 專門應用在字串資料的處理上
參數 傳遞
結構 程式
PILOT
Programmed Inquiry, Learning Or Teaching 1970年代初發展出來 為電腦輔助教學(CAI)的語言 可幫助老師編寫教材
程式 語言
程式語言
程式語言的分類 語言編譯程式
參數 傳遞
常見的程式語言
結構 程式
物件 程式
程式 語言
主副程式的參數串列
主副程序間的資料傳輸,透過參數串列
參數 傳遞
(Parameter List)來進行 主程式
結構 程式
或稱呼叫程式(Calling Program) 擁有實際參數串列(Actual Parameter List)
結構 程式
物件 程式
程式 語言
程式語言的分類
第一代:機器語言(Machine Language) 第二代:組合語言(Assembly Language)
參數 傳遞
第三代:編譯語言(Compile Language)
結構 程式
第四代:極高階語言(Very High Level L.)
物件 程式
程式 語言
常見的程式語言 -- 10
FORTH
於1975年由Charles Moore所發展出來 目的為最佳化電腦記憶體使用及處理速度 在微電腦中的使用比BASIC更具威力 但使用方法較複雜,不易普及
參數 傳遞
結構 程式
Modula-2
物件 程式
與PASCAL語言一樣, 是由Wirth教授所發展出來的程式語言 PASCAL常使用於教學上, 而Modula-2常使用於系統軟體的開發上
參數 傳遞
結構 程式
物件 程式
程式 語言
常見的程式語言 -- 5
C
修改B語言而來,故得名
B語言是Ken Thopson在1970年於PDP-7 電腦的UNIX作業 系統上所建立的
參數 傳遞
結構 程式
物件 程式
Dennis Ritchie於1972年在AT&T貝爾實驗室的 PDP-11電腦的UNIX作業系統上發展出來 最早被發展來撰寫系統軟體,但其在一般的應用 上亦可應付裕如 因和組合語言間有良好的溝通能力,故又被稱為 中階語言(Mid-Level Language) 具有相當強的可攜性(Portability)
SMALLTALK
由全錄 (Xerox) 公司所發展出來的物件導向程式語言
參數 傳遞
結構 程式
物件 程式
C++ ADA Visual Basic (VB) Visual Foxpro (VFP) Delphi (Visual PASCAL) JAVA
具跨平台特性,以C++為基礎所發展 另發展有JavaScript可直接撰寫於網頁中
物件 程式
程式 語言
常見的程式語言 -- 7
LISP
為人工智慧(Artificial Intelligence)常用語言 效率高,但不好懂
參數 傳遞
結構 程式
PROLOG
為人工智慧常用語言,由法國人發明 經英國人改良,成為一種具推理性的語言 效率低,但易學習
物件 程式
Scheme
程式 語言
參數 傳遞
結構 程式
物件 程式
程式 語言
第三代語言
編譯語言(Compile Language)
又稱高階語言(High Level Language)或程序 導向語言(Procedure-Oriented Language; POL) 語法接近人類日常所使用的語言 盡量不與電腦的構造相關,以增加可攜性 需透過編譯程式將其編譯為機器語言 程式中的每一句稱為一道敘述(Statement) 每一道敘述通常對應多個指令 目的在促使電腦的普及
副程式
物件 程式
或稱被呼叫程式(Called Program) 擁有形式參數串列(Formal Parameter List)
程式 語言
參數傳遞方式
傳值呼叫(Call By Value) 傳址呼叫(Call By Address)
程式 語言
程式編譯工具程式
編輯程式 (editor)
編輯原始檔案的工具程式 如PE2,MS EDIT
參數 傳遞
連結程式 linker
結構 程式
將一個以上的目的程式與程式庫連結合併成一個 可執行檔
載入程式 loader
物件 程式
將可執行檔從輔助記憶體中讀入主記憶體使執行 的程式
偵錯程式 debugger
第五代:自然語言(Natural Language)
物件 程式
程式 語言
第一代語言
機器語言(Machine Language)
由 0 與 1 等二進碼所構成的語言 可直接為計算機接受執行 極不方便撰寫及理解
因為每編寫一行指令, 便頇查表以找出所對應的運算碼
參數 傳遞
結構 程式
物件 程式
人們並不直接學習或使用機器語言 屬低階語言(Low Level Language)
程式語言並非一經撰寫即可在電腦上執行, 而是必頇經過一定程序的轉換,轉換為電 腦所能辨識的執行指令,方可執行。 程式語言轉換的過程亦可稱為翻譯。最終 轉換的結果為機器語言,只有機器語言才 能在電腦上執行
參數 傳遞
結構 程式
物件 程式
程式 語言
程式語言
程式語言的分類 語言編譯程式
參數 傳遞
常見的程式語言
程式 語言
第五代語言
自然語言(Nature Language)
又稱知識庫語言(Knowledge-Based Lang.) 使用者以一般英文語句直接和電腦對話 最近似於人類日常生活所使用的語言 使不懂電腦的人更方便進行資料存取 處理較為複雜,目前尚無法處理複雜邏輯 應用在人工智慧(AI)與專家系統(ES)等領域 Ex: Tell Me All Data In Person Table
參數 傳遞
結構 程式
PL/1
物件 程式
為Program Language/One的縮寫 1964年由 IBM 公司所發展出來的一種多用途語言 能用於工程、科學、商業等各種應用領域
程式 語言
常見的程式語言 -- 3
RPG
為 Report Program Generator 的縮寫 為一種表格化的程式語言 主要的功能在提供大量報表印出之用 1960年由 IBM 所發展出來 廣泛地應用於小型商業電腦上
常見的程式語言 -- 8
GPSS
為General Purpose Simulation System的縮寫 專門應用於模擬工作上
參數 傳遞
結構 程式
APL
為 A Programming Language的縮寫 由 K. Lverson 所發展出來 專門處理數學方面的求解問題,其中以陣 列與向量的處理最有用
程式 語言
其他程式語言小常識 -- 1
具有遞迴(recursive)能力的語言
ALGOL PASCAL C PL/1 QUICK BASIC LISP
參數 傳遞
結構 程式
模擬專用的語言
物件 程式
GPSS SIMSCRIPT DYNAMO
程式 語言
其他程式語言小常識 -- 2
物件導向的程式語言
程式 語言
常見的程式語言 -- 6
ADA
為紀念1800年代的數學家Augusta Ada Byron而命名,此人被許多電腦科學界的人 士認定為第一位電腦程式設計師 為美國國防部基於國防需要所開發的語言 用在處理大型程式和複雜專案 程式很複雜,但可攜性(Portable)十分良好
參數 傳遞
結構 程式
依對硬體設備 的相依性來分
物件導向 語言 機器導向 語言
低階語言 高階語言
組合語言
機器語言
組合語言 程序導向語言 非程序導向語言 一般結構化高階語言 4GL、第五代語言
接右上
問題導向 語言
程式 語言
程式語言
程式語言的分類 語言編譯程式
參數 傳遞
常見的程式語言
結構 程式
物件 程式
程式 語言
程式發展
程式語言 參數傳遞 結構化程式設計 物件導向程式設計
計算機軟體的分類
作業系統 組譯程式 系統軟體 程式語言 處理工具 直譯程式 編譯程式 編輯程式 計算機軟體 工具程式 連結程式
載入程式
偵錯程式
套裝軟體
應用軟體
使用者自行開發的程式
程式 語言
程式語言的定義
又稱計算機語言 是人與電腦間溝通的語言
語言編譯程式
組譯器(Assembler)
將組合語言程式翻譯為目的程式, 再經過連結程式,連結為執行檔*.com 檔案大小小於64K
參數 傳遞
結構 程式
編譯器(Compiler)
將原始程式一次翻譯為目的程式後, 再聯結函式庫或是其他目的程式為執行檔*.exe 檔案大小大於64K
直譯器(Interpreter)
參數 傳遞
結構 程式
物件 程式
計算機語言演進與人類的關係
人類
自然語言(第五代語言)
極高階語言 4GL(第四代語言) 科學導向語言 高階語言 3 GL 組合語言 機器語言 中央處理器 電腦 商務導向語言
低階語言
程式語言分類總覽
機器導向語言 通用程式語言 一般分法 非物件 導向語言 特殊問題導向語言 機器語言 問題導向語言
物件 程式
將原始程式逐行翻譯為機器語言 程式每次執行,皆必頇經過翻譯的手續 亦稱為解譯器
語言編譯程式的比較
比較項目 目的程式 組譯 有 直譯 無 編譯 有
程式執行速度
語言處理與程 式執行
快
慢
編譯一次 執行一次 與機種無關
快
編譯一次 執行n次 與機種無關
編譯一次 執行n次 機器微處理器 原始程式和機 不同,原始程 器的相關性 式敘述就不同
參數 傳遞
結構 程式
COBOL
物件 程式
COmmon Business Oriented Language的縮寫 1959年由美國政府、用戶及廠商所組成的 CODASYL機構所制定 目前在國內仍有很多中小企業使用
程式 語言
常見的程式語言 -- 2
ALGOL
為 ALGOrithmic Language的縮寫 於1957-1960年間被設計出來 以前在歐洲頗為風行 在學術界及國際發表的刊物上,常被用來當作表 達演算法的程式語言
程式 語言
第二代語言
組合語言(Assembly Language)
利用簡單易懂的英文或數字符號(助憶碼) 來取代機器語言二進碼的程式語言 亦稱符號語言 與機器語言指令成一對一的關係 此程式電腦無法直接執行,必頇透過組譯 程式(Assembler)轉成機器語言才行 仍似機器語言不具移植性,因此頇對機器 的組成構造有相當了解才能撰寫程式 屬低階語言(Low Level Language)
協助程式設計師偵測程式錯誤點的程式
程式 語言
程式語言
程式語言的分類 語言編譯程式
參數 傳遞
常見的程式語言
結構 程式
物件 程式
程式 語言
常見的程式語言 -- 1
FORTRAN
為 FORmula TRANslation 的縮寫 由 IBM 公司於1954年所開發出來 是世界上第一種開發成功的高階語言 適合於解決工程與科學上的問題
參數 傳遞
結構 程式
物件 程式
程式 語言
第四代語言(4GL)
極高階語言(Very High Level Language)
參數 傳遞
結構 程式
物件 程式
屬於問題導向語言(Problem Oriented Lang.) 或稱非程序導向語言(Nonprocedure Lang.) 指示電腦去「做什麼」,而不像第一、二、 三代語言(它們屬程序導向語言),必頇指示 電腦「如何去做」 程式的敘述與電腦的執行步驟沒有關連 例如:資料庫查詢語言、應用程式產生器 Select * from person
參數 傳遞
結構 程式
BASIC
物件 程式
Beginner’s All Purpose Symbolic Instruction Code 1965年由Dartmouth學院發展出來 易學易懂,適用於初學者的入門學習 隨個人電腦的推出而風行,中文譯為「培基」
程式 語言
常見的程式語言 -- 4
PASCAL
物件 程式
程式 語言
Oriented symBOlic Language的縮寫 1962年由美國貝爾實驗室所發展出來 專門應用在字串資料的處理上
參數 傳遞
結構 程式
PILOT
Programmed Inquiry, Learning Or Teaching 1970年代初發展出來 為電腦輔助教學(CAI)的語言 可幫助老師編寫教材
程式 語言
程式語言
程式語言的分類 語言編譯程式
參數 傳遞
常見的程式語言
結構 程式
物件 程式
程式 語言
主副程式的參數串列
主副程序間的資料傳輸,透過參數串列
參數 傳遞
(Parameter List)來進行 主程式
結構 程式
或稱呼叫程式(Calling Program) 擁有實際參數串列(Actual Parameter List)
結構 程式
物件 程式
程式 語言
程式語言的分類
第一代:機器語言(Machine Language) 第二代:組合語言(Assembly Language)
參數 傳遞
第三代:編譯語言(Compile Language)
結構 程式
第四代:極高階語言(Very High Level L.)
物件 程式
程式 語言
常見的程式語言 -- 10
FORTH
於1975年由Charles Moore所發展出來 目的為最佳化電腦記憶體使用及處理速度 在微電腦中的使用比BASIC更具威力 但使用方法較複雜,不易普及
參數 傳遞
結構 程式
Modula-2
物件 程式
與PASCAL語言一樣, 是由Wirth教授所發展出來的程式語言 PASCAL常使用於教學上, 而Modula-2常使用於系統軟體的開發上
參數 傳遞
結構 程式
物件 程式
程式 語言
常見的程式語言 -- 5
C
修改B語言而來,故得名
B語言是Ken Thopson在1970年於PDP-7 電腦的UNIX作業 系統上所建立的
參數 傳遞
結構 程式
物件 程式
Dennis Ritchie於1972年在AT&T貝爾實驗室的 PDP-11電腦的UNIX作業系統上發展出來 最早被發展來撰寫系統軟體,但其在一般的應用 上亦可應付裕如 因和組合語言間有良好的溝通能力,故又被稱為 中階語言(Mid-Level Language) 具有相當強的可攜性(Portability)
SMALLTALK
由全錄 (Xerox) 公司所發展出來的物件導向程式語言
參數 傳遞
結構 程式
物件 程式
C++ ADA Visual Basic (VB) Visual Foxpro (VFP) Delphi (Visual PASCAL) JAVA
具跨平台特性,以C++為基礎所發展 另發展有JavaScript可直接撰寫於網頁中
物件 程式
程式 語言
常見的程式語言 -- 7
LISP
為人工智慧(Artificial Intelligence)常用語言 效率高,但不好懂
參數 傳遞
結構 程式
PROLOG
為人工智慧常用語言,由法國人發明 經英國人改良,成為一種具推理性的語言 效率低,但易學習
物件 程式
Scheme
程式 語言
參數 傳遞
結構 程式
物件 程式
程式 語言
第三代語言
編譯語言(Compile Language)
又稱高階語言(High Level Language)或程序 導向語言(Procedure-Oriented Language; POL) 語法接近人類日常所使用的語言 盡量不與電腦的構造相關,以增加可攜性 需透過編譯程式將其編譯為機器語言 程式中的每一句稱為一道敘述(Statement) 每一道敘述通常對應多個指令 目的在促使電腦的普及
副程式
物件 程式
或稱被呼叫程式(Called Program) 擁有形式參數串列(Formal Parameter List)
程式 語言
參數傳遞方式
傳值呼叫(Call By Value) 傳址呼叫(Call By Address)