版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電子課件數據與計算(第4版)Ch5 語言與程序CS, ZJU八月 222Data and Computation 4Th, CS of ZJU, PHEI Chapter 5 語言、程序概述編程語言翻譯系統(tǒng)高級編程語言怎樣編寫程序軟件工程Data and Computation 4Th, CS of ZJU, PHEI 3Overview重要的概念計算的對象是數據數據有各種形,抽象表達計算需要程序實現(xiàn)不同的數據有不同的程序實現(xiàn)算法是程序的基礎程序需要計算機語言編寫通用語言專業(yè)語言程序和軟件盡管被認為是類似,但有不同Data and Computation 4Th, CS of ZJU, PHE
2、I 4Review專業(yè)角度程序和軟件是兩個不同的概念程序設計過程是軟件開發(fā)的一部分程序加上該程序的文檔就是軟件程序設計需要使用程序設計語言顧名思義:Program and Programing/Coding可視化程序設計編程的過程、執(zhí)行結果都是基于GUI熟悉的節(jié)目、按鈕、工具欄Data and Computation 4Th, CS of ZJU, PHEI 5概述系統(tǒng)軟件解決計算機系統(tǒng)問題應用軟件解決特定的應用問題每個大學生都需要學習程序設計?NoBut:理解并描述問題,提出編程任務 - Everyone!語言、程序的特點形式化 and 抽象Data and Computation 4Th,
3、 CS of ZJU, PHEI 6概述The truth計算機最終執(zhí)行的是機器代碼,二進制指令程序范式編程風格和模式由編程語言確定程序執(zhí)行某種任務的一系列操作步驟 - 類似于算法算法是通用表達,程序與語言結合程序設計者選擇語言,實現(xiàn)算法Data and Computation 4Th, CS of ZJU, PHEI 7概述編程用計算機能夠“明白”的語言告訴計算機如何去做算法是通用表達,而程序則是與具體的編程語言結合的程序=算法+語言特點:抽象,形式化表達程序設計范式(Paradigm)范式就是模式和方法命令范式、面向對象式、函數式和邏輯式目前程序都是可視化(Visible)的程序操作更加貼
4、近人的習慣-良好的用戶體驗程序特定的數據集,測試程序測試這個數據集,以確定被測程序的正確性和可靠性Data and Computation 4Th, CS of ZJU, PHEI 8概述機器語言匯編語言高級語言面向過程面向對象其他高級語言函數型說明型超文本標記語言-網絡編程關系數據庫語言組建(中間件)Data and Computation 4Th, CS of ZJU, PHEI 95.2 編程語言Truth:計算機只能執(zhí)行機器語言程序,因此任何語言編寫的程序,最終都要轉化為機器語言程序機器語言:二進制代碼CPU都有一整套的專門操作-指令和指令系統(tǒng)指令與CPU類型相關,例如 x86, x6
5、4Data and Computation 4Th, CS of ZJU, PHEI 10機器語言和匯編語言數據傳輸類指令:將數據源傳輸到目的(存儲器等)算術邏輯類指令:包括算術運算和邏輯、比較運算,操作對象是數據控制操作類指令:實現(xiàn)程序的不同執(zhí)行結構有條件轉移和無條件轉移;Data and Computation 4Th, CS of ZJU, PHEI 11指令系統(tǒng)的主要類型MemoryInputOutput控制器ALUFor Example:2+3=5命令:輸入222命令:輸入333Write Write ReadRead235OutAdd+Data and Computation 4T
6、h, CS of ZJU, PHEI 12用文字符號來表示指令-助記符CPU所有指令助記符的集合以及使用規(guī)則匯編語言(Assemble Language)。例子(匯編語言的一條加法語句) ADD A,B將存儲地址A和B的內容相加,結果存儲在A中特點匯編語言可讀性較二進制指令好。必須熟悉計算機硬件結構、指令系統(tǒng)和指令格式等面向計算機硬件的語言,程序移植性差匯編程序將匯編語言源程序翻譯為機器語言程序Data and Computation 4Th, CS of ZJU, PHEI 13匯編語言在Windows命令行狀態(tài)下執(zhí)行 debug(x64需要加裝DOSBox和Debug)輸入:-a-mov
7、ax,1 -mov cx,2 -add ax,cx 退出編程狀態(tài)(直接回車) -u 100 (以匯編語言顯示-上述窗口)Data and Computation 4Th, CS of ZJU, PHEI 14Example匯編語言(Assemble Language)就是CPU所有的指令助記符以及相應的編程規(guī)則匯編語言源程序用匯編語言編寫的程序源程序需要翻譯為機器語言程序-匯編匯編程序完成匯編任務匯編程序是把匯編語言源程序轉換為機器語言程序的程序-awkward-sounding移植性較差匯編語言與硬件密切相關的語言Data and Computation 4Th, CS of ZJU, PH
8、EI 15匯編語言High Level Language 與機器硬件關系密切的,叫做 Low level, 如匯編語言與機器硬件幾乎無關的,叫做 High level介于之間的,叫做Middle Level 高級語言20世紀60年代表達形式更接近與被描述問題的語言(English)Now:面向過程、面向對象Great Progress!有程序員這個職業(yè)了!軟件成為專業(yè)、學科Data and Computation 4Th, CS of ZJU, PHEI 16高級語言命令型范式,強制性語言每個語句都是為完成一個特定的任務而對計算機發(fā)出執(zhí)行的命令BasicC有高級語言的優(yōu)點,又有匯編語言的效率,
9、So -“中級語言”可操作對內存單元,適合編寫硬件操作又要求處理速度的程序Fortran第一個高級語言:IBM公司在1957年開發(fā)的,解決數學計算 Cobol商用程序設計語言Ada語言美國國防部開發(fā)署(DoD)專用Data and Computation 4Th, CS of ZJU, PHEI 17面向過程的高級語言系統(tǒng)軟件開發(fā)首選語言應用很廣Java C+ 源于C很多系統(tǒng)為C語言保留接口如各種統(tǒng)計軟件流行效率高表達簡潔適合表述和實現(xiàn)算法Data and Computation 4Th, CS of ZJU, PHEI 18C語言面向對象型范式Object-Oriented Paradigm
10、/Programming,OOPData and Computation 4Th, CS of ZJU, PHEI 19面向對象的編程語言什么是編程(從算法的角度)?最簡單的答案:定義數據,對這些數據操作數據是屬性(Property),操作是行為(Action)什么是對象?一個駕駛者準備開車(對象),需要對車(對象)了解些什么?Data and Computation 4Th, CS of ZJU, PHEI 20Whats OBJECT答案:需要了解車的基本數據(排量、郵箱、車長),了解車的操控(自動、手動、剎車、油門)數據是對象(車)的屬性,后者是車(對象)的行為And, 駕駛者不需要了解
11、車是如何開起來的如果一個程序被定義為Class-程序單元其內有其屬性和行為使用者通過Class就可以使用程序單元Class(類),一個獨立的程序單元,包括屬性及行為Object通過Class定義,就可以使用Class的數據和操作不需要知道實現(xiàn)的細節(jié)面向對象的編程語言提供了定義對象、使用對象的語句Data and Computation 4Th, CS of ZJU, PHEI 21Class 和 Object另一個例子動漫產品是類,給出其公共特性(材質、產地)和行為(如售價)Kitty、加菲貓、哆啦愛夢就是有這個動畫產品的“對象”封裝(Encapsulation)類(對象)的屬性和操作構成一個
12、獨立體Data and Computation 4Th, CS of ZJU, PHEI 22面向對象的特點繼承(Inheritance)子類可以擁有父類的屬性和行為提高了軟件代碼的復用性多態(tài)性(Polymorphism)對象可以具有不同的行為多態(tài)是一種運算特性,例如”(減,符號)OOP擴展了多態(tài)機制-方法可以有多種實現(xiàn)結構設計提供了靈活性減少了信息冗余,提高了軟件的可擴展性Max(a,b)Max(a,b,c)Max(a,b,c,d)Visual Basic簡稱VB,BASIC引入面向對象的設計方法已經淡出Data and Computation 4Th, CS of ZJU, PHEI 23
13、常用的OOP語言Python可以通過發(fā)出命令執(zhí)行程序任務提供了大數據處理的許多功能JAVA基于CSun Microsystem公司開發(fā)純面向對象、平臺無關、多線程、高安全性解決了困擾軟件界多年的軟件移植問題C+基于C語言的面向對象的擴展它在C語言的基礎上增加了面向對象程序設計的支持SQL 數據庫語言(Next Chapter)。Data and Computation 4Th, CS of ZJU, PHEI 24其他編程語言函數型語言主要有LISP和Scheme大數據平臺采用的程序設計方法源于此說明型語言 Prolog也叫邏輯語言,根據邏輯推理的原則回答問題人工智能語言超文本鏈接標記語言(h
14、tml) 由一種格式標記何超鏈接組成的“偽語言”主要用于網絡上的信息服務。翻譯程序本身也是程序,任務是把源程序翻譯為目標程序翻譯程序功能解釋程序 - 同聲翻譯逐句翻譯,翻譯一句執(zhí)行一句(類型命令模式)編譯程序 - 書面翻譯源程序一次性翻譯成目標程序代碼,生成可執(zhí)行文件編譯完成,程序就可以被單獨執(zhí)行Data and Computation 4Th, CS of ZJU, PHEI 25程序的程序-翻譯系統(tǒng)高級語言程序(源)機器語言程序(目)翻譯系統(tǒng)高級語言運算數據類型語句編程工具,集成(編輯、調試)開發(fā)環(huán)境程序員更注重程序邏輯函數/方法Data and Computation 4Th, CS o
15、f ZJU, PHEI 26高級編程語言編程區(qū)輸入/輸出區(qū)編程文件瀏覽存儲器單元常量(Constant)常量在程序執(zhí)行過程中,固定不變的量常量兩種:文字常量(1,3.0)、符號常量(PI, MAX)變量(Variable)變量:可被改變的量,使用標識符(變量名)標記在內存的位置程序只需要對這個變量進行賦值、運算即可變量:先定義后使用Maybe:使用變量前必須先給變量賦一個初值Data and Computation 4Th, CS of ZJU, PHEI 27數據類型數據存放在存儲器,標識其存放位置標識符(Label)命名運算對象mX1,2,1301.0, 2.0, -0.05,A, a,
16、x, 9,基本數據類型: 整數,實數,字符Data and Computation 4Th, CS of ZJU, PHEI 28構造數據類型構造數據類型,派生數據類型基本類型+數據結構 新的、復雜數據類型語句 Statement程序執(zhí)行的動作,被翻譯程序翻譯成一條或幾條指令 賦值語句 x 3 按規(guī)則將一個值存入到變量名所代表的存儲單元中表達式語句: 不同(運算符連接)表達式構成的語句復合語句用大括號將多行語句定義為一個語句稱為復合語句(語句塊)程序將復合語句當做一個語句進行處理轉移語句: 著名的goto語句返回語句 子程序使用Return語句可以將運算結果返回調用程序。輸入、輸出語句Data
17、 and Computation 4Th, CS of ZJU, PHEI 29基本語句實現(xiàn)分支結構的語句根據條件決定程序下一步該執(zhí)行程序的哪一條語句或語句塊Data and Computation 4Th, CS of ZJU, PHEI 30分支語句實現(xiàn)循環(huán)結構的語句大多數高級語言有多種循環(huán)語句Data and Computation 4Th, CS of ZJU, PHEI 31循環(huán)語句(Loop)子程序,一段能夠完成某種功能的代碼函數(Function)- 大多數語言使用的名詞方法(Method) - 主要是Java使用的名詞Data and Computation 4Th, CS o
18、f ZJU, PHEI 32函數和方法主程序調用返回子程序函數/方法主程序調用參數實參( Actual parameter )子程序接收參數形參( Formal parameter )規(guī)則:實參和形參三個一致類型、數量、順序子程序的類型就是返回值的類型程序設計是一個系統(tǒng)過程通常把這個過程分為6個步驟問題的定義設計方案編碼測試編寫文檔運行維護Data and Computation 4Th, CS of ZJU, PHEI 33怎樣編寫程序No.1清晰、明確的定義是解決問題過程中最重要的一步25% 30% and More幾個問題:程序目標是什么?可能需要輸入哪些數據?數據具體的處理過程和要求是
19、什么?程序可能產生的數據輸出以及輸出形式是什么?Data and Computation 4Th, CS of ZJU, PHEI 34理解問題No.2 程序設計設計具體的解決方案關鍵-設計算法、合適的邏輯結構確定程序范式,選擇編程技術(語言)程序運行在網絡中還是單臺機器上如有舊的程序在運行,新程序如何與之兼容No.3Coding!Data and Computation 4Th, CS of ZJU, PHEI 35程序設計和編碼調試已編好的程序找出程序中的邏輯錯誤和語法錯誤違反語法規(guī)則,就會發(fā)生語法錯誤程序結果不對,這是邏輯錯誤程序測試測試程序中的錯誤, 而不是使得程序中沒有錯誤”。常用的
20、測試方法有:黑盒測Beta()版(測試版)白盒測-專業(yè)測試,輸入一組特意設計的數據讓程序執(zhí)行,測試程序是否按照設計流程要求執(zhí)行Data and Computation 4Th, CS of ZJU, PHEI 36尋找錯誤:程序測試Grace Hoppe程序文檔設計文檔使用說明文檔形式有兩種:一種是在代碼行后面加注釋一種是按照一定規(guī)則專門編寫運行與維護程序的安裝、系統(tǒng)配置對用戶的培訓軟件維護Data and Computation 4Th, CS of ZJU, PHEI 37文檔、運維程序開發(fā)到最后不再使用的時間ExampleWindows的版本更新,Windows 1.0Windows10查看你的微信版本?搜索一下,微信有多少個版本?And,版本維護?Data and Computation 4Th, CS of ZJU, PHEI 38軟件的生命周期時尚?Dispute:YESNO In factMost people are not suitable
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保護地球建議書15篇
- 中秋節(jié)國旗下講話稿(11篇)
- 人性的弱點讀后感(15篇)
- 仲夏夜之夢的讀后感范文
- 中學秋季田徑運動會開幕詞
- 英語代詞課件教學課件
- 探究新課改下高中數學有效教學的幾點策略
- 影像科危急值報告制度
- 影響心理挫折承受能力的因素
- 聯(lián)考協(xié)作體八年級上學期語文12月月考試卷
- 水稻病蟲害綠色防控技術培訓課件
- 《PCBA樣品承認書》模版
- 《設計制作-家用電器要維護(第1課時)》(說課稿)四年級上冊小學綜合實踐活動蘇少版
- 畢業(yè)設計(論文)-長鍵軸加工工藝及銑槽夾具設計
- 設備維保施工組織設計
- 2023年高中學業(yè)水平測試計算機考試操作練習題
- 醫(yī)院出入口安檢工作記錄表范本
- 婦科VTE防治小組成員及職責
- 《如何實現(xiàn)目標》
- 安徽壹石通化學科技有限公司年產5萬噸氫氧化鎂、5萬噸堿式碳酸鎂、1萬噸氧化鋯、1000噸硼酸鋅、1000噸五硼酸銨和100噸鈦酸鋇產品項目環(huán)境影響報告書
- 2020阿里云產品圖標
評論
0/150
提交評論