




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、電子課件數(shù)據(jù)與計算(第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重要的概念計算的對象是數(shù)據(jù)數(shù)據(jù)有各種形,抽象表達計算需要程序?qū)崿F(xiàn)不同的數(shù)據(jù)有不同的程序?qū)崿F(xiàn)算法是程序的基礎(chǔ)程序需要計算機語言編寫通用語言專業(yè)語言程序和軟件盡管被認為是類似,但有不同Data and Computation 4Th, CS of ZJU, PHE
2、I 4Review專業(yè)角度程序和軟件是兩個不同的概念程序設(shè)計過程是軟件開發(fā)的一部分程序加上該程序的文檔就是軟件程序設(shè)計需要使用程序設(shè)計語言顧名思義:Program and Programing/Coding可視化程序設(shè)計編程的過程、執(zhí)行結(jié)果都是基于GUI熟悉的節(jié)目、按鈕、工具欄Data and Computation 4Th, CS of ZJU, PHEI 5概述系統(tǒng)軟件解決計算機系統(tǒng)問題應用軟件解決特定的應用問題每個大學生都需要學習程序設(shè)計?NoBut:理解并描述問題,提出編程任務 - Everyone!語言、程序的特點形式化 and 抽象Data and Computation 4Th,
3、 CS of ZJU, PHEI 6概述The truth計算機最終執(zhí)行的是機器代碼,二進制指令程序范式編程風格和模式由編程語言確定程序執(zhí)行某種任務的一系列操作步驟 - 類似于算法算法是通用表達,程序與語言結(jié)合程序設(shè)計者選擇語言,實現(xiàn)算法Data and Computation 4Th, CS of ZJU, PHEI 7概述編程用計算機能夠“明白”的語言告訴計算機如何去做算法是通用表達,而程序則是與具體的編程語言結(jié)合的程序=算法+語言特點:抽象,形式化表達程序設(shè)計范式(Paradigm)范式就是模式和方法命令范式、面向?qū)ο笫?、函?shù)式和邏輯式目前程序都是可視化(Visible)的程序操作更加貼
4、近人的習慣-良好的用戶體驗程序特定的數(shù)據(jù)集,測試程序測試這個數(shù)據(jù)集,以確定被測程序的正確性和可靠性Data and Computation 4Th, CS of ZJU, PHEI 8概述機器語言匯編語言高級語言面向過程面向?qū)ο笃渌呒壵Z言函數(shù)型說明型超文本標記語言-網(wǎng)絡編程關(guān)系數(shù)據(jù)庫語言組建(中間件)Data and Computation 4Th, CS of ZJU, PHEI 95.2 編程語言Truth:計算機只能執(zhí)行機器語言程序,因此任何語言編寫的程序,最終都要轉(zhuǎn)化為機器語言程序機器語言:二進制代碼CPU都有一整套的專門操作-指令和指令系統(tǒng)指令與CPU類型相關(guān),例如 x86, x6
5、4Data and Computation 4Th, CS of ZJU, PHEI 10機器語言和匯編語言數(shù)據(jù)傳輸類指令:將數(shù)據(jù)源傳輸?shù)侥康模ù鎯ζ鞯龋┧阈g(shù)邏輯類指令:包括算術(shù)運算和邏輯、比較運算,操作對象是數(shù)據(jù)控制操作類指令:實現(xiàn)程序的不同執(zhí)行結(jié)構(gòu)有條件轉(zhuǎn)移和無條件轉(zhuǎn)移;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的內(nèi)容相加,結(jié)果存儲在A中特點匯編語言可讀性較二進制指令好。必須熟悉計算機硬件結(jié)構(gòu)、指令系統(tǒng)和指令格式等面向計算機硬件的語言,程序移植性差匯編程序?qū)R編語言源程序翻譯為機器語言程序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ī)則匯編語言源程序用匯編語言編寫的程序源程序需要翻譯為機器語言程序-匯編匯編程序完成匯編任務匯編程序是把匯編語言源程序轉(zhuǎn)換為機器語言程序的程序-awkward-sounding移植性較差匯編語言與硬件密切相關(guān)的語言Data and Computation 4Th, CS of ZJU, PH
8、EI 15匯編語言High Level Language 與機器硬件關(guān)系密切的,叫做 Low level, 如匯編語言與機器硬件幾乎無關(guān)的,叫做 High level介于之間的,叫做Middle Level 高級語言20世紀60年代表達形式更接近與被描述問題的語言(English)Now:面向過程、面向?qū)ο驡reat Progress!有程序員這個職業(yè)了!軟件成為專業(yè)、學科Data and Computation 4Th, CS of ZJU, PHEI 16高級語言命令型范式,強制性語言每個語句都是為完成一個特定的任務而對計算機發(fā)出執(zhí)行的命令BasicC有高級語言的優(yōu)點,又有匯編語言的效率,
9、So -“中級語言”可操作對內(nèi)存單元,適合編寫硬件操作又要求處理速度的程序Fortran第一個高級語言:IBM公司在1957年開發(fā)的,解決數(shù)學計算 Cobol商用程序設(shè)計語言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語言面向?qū)ο笮头妒絆bject-Oriented Paradigm
10、/Programming,OOPData and Computation 4Th, CS of ZJU, PHEI 19面向?qū)ο蟮木幊陶Z言什么是編程(從算法的角度)?最簡單的答案:定義數(shù)據(jù),對這些數(shù)據(jù)操作數(shù)據(jù)是屬性(Property),操作是行為(Action)什么是對象?一個駕駛者準備開車(對象),需要對車(對象)了解些什么?Data and Computation 4Th, CS of ZJU, PHEI 20Whats OBJECT答案:需要了解車的基本數(shù)據(jù)(排量、郵箱、車長),了解車的操控(自動、手動、剎車、油門)數(shù)據(jù)是對象(車)的屬性,后者是車(對象)的行為And, 駕駛者不需要了解
11、車是如何開起來的如果一個程序被定義為Class-程序單元其內(nèi)有其屬性和行為使用者通過Class就可以使用程序單元Class(類),一個獨立的程序單元,包括屬性及行為Object通過Class定義,就可以使用Class的數(shù)據(jù)和操作不需要知道實現(xiàn)的細節(jié)面向?qū)ο蟮木幊陶Z言提供了定義對象、使用對象的語句Data and Computation 4Th, CS of ZJU, PHEI 21Class 和 Object另一個例子動漫產(chǎn)品是類,給出其公共特性(材質(zhì)、產(chǎn)地)和行為(如售價)Kitty、加菲貓、哆啦愛夢就是有這個動畫產(chǎn)品的“對象”封裝(Encapsulation)類(對象)的屬性和操作構(gòu)成一個
12、獨立體Data and Computation 4Th, CS of ZJU, PHEI 22面向?qū)ο蟮奶攸c繼承(Inheritance)子類可以擁有父類的屬性和行為提高了軟件代碼的復用性多態(tài)性(Polymorphism)對象可以具有不同的行為多態(tài)是一種運算特性,例如”(減,符號)OOP擴展了多態(tài)機制-方法可以有多種實現(xiàn)結(jié)構(gòu)設(shè)計提供了靈活性減少了信息冗余,提高了軟件的可擴展性Max(a,b)Max(a,b,c)Max(a,b,c,d)Visual Basic簡稱VB,BASIC引入面向?qū)ο蟮脑O(shè)計方法已經(jīng)淡出Data and Computation 4Th, CS of ZJU, PHEI 23
13、常用的OOP語言Python可以通過發(fā)出命令執(zhí)行程序任務提供了大數(shù)據(jù)處理的許多功能JAVA基于CSun Microsystem公司開發(fā)純面向?qū)ο?、平臺無關(guān)、多線程、高安全性解決了困擾軟件界多年的軟件移植問題C+基于C語言的面向?qū)ο蟮臄U展它在C語言的基礎(chǔ)上增加了面向?qū)ο蟪绦蛟O(shè)計的支持SQL 數(shù)據(jù)庫語言(Next Chapter)。Data and Computation 4Th, CS of ZJU, PHEI 24其他編程語言函數(shù)型語言主要有LISP和Scheme大數(shù)據(jù)平臺采用的程序設(shè)計方法源于此說明型語言 Prolog也叫邏輯語言,根據(jù)邏輯推理的原則回答問題人工智能語言超文本鏈接標記語言(h
14、tml) 由一種格式標記何超鏈接組成的“偽語言”主要用于網(wǎng)絡上的信息服務。翻譯程序本身也是程序,任務是把源程序翻譯為目標程序翻譯程序功能解釋程序 - 同聲翻譯逐句翻譯,翻譯一句執(zhí)行一句(類型命令模式)編譯程序 - 書面翻譯源程序一次性翻譯成目標程序代碼,生成可執(zhí)行文件編譯完成,程序就可以被單獨執(zhí)行Data and Computation 4Th, CS of ZJU, PHEI 25程序的程序-翻譯系統(tǒng)高級語言程序(源)機器語言程序(目)翻譯系統(tǒng)高級語言運算數(shù)據(jù)類型語句編程工具,集成(編輯、調(diào)試)開發(fā)環(huán)境程序員更注重程序邏輯函數(shù)/方法Data and Computation 4Th, CS o
15、f ZJU, PHEI 26高級編程語言編程區(qū)輸入/輸出區(qū)編程文件瀏覽存儲器單元常量(Constant)常量在程序執(zhí)行過程中,固定不變的量常量兩種:文字常量(1,3.0)、符號常量(PI, MAX)變量(Variable)變量:可被改變的量,使用標識符(變量名)標記在內(nèi)存的位置程序只需要對這個變量進行賦值、運算即可變量:先定義后使用Maybe:使用變量前必須先給變量賦一個初值Data and Computation 4Th, CS of ZJU, PHEI 27數(shù)據(jù)類型數(shù)據(jù)存放在存儲器,標識其存放位置標識符(Label)命名運算對象mX1,2,1301.0, 2.0, -0.05,A, a,
16、x, 9,基本數(shù)據(jù)類型: 整數(shù),實數(shù),字符Data and Computation 4Th, CS of ZJU, PHEI 28構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型,派生數(shù)據(jù)類型基本類型+數(shù)據(jù)結(jié)構(gòu) 新的、復雜數(shù)據(jù)類型語句 Statement程序執(zhí)行的動作,被翻譯程序翻譯成一條或幾條指令 賦值語句 x 3 按規(guī)則將一個值存入到變量名所代表的存儲單元中表達式語句: 不同(運算符連接)表達式構(gòu)成的語句復合語句用大括號將多行語句定義為一個語句稱為復合語句(語句塊)程序?qū)秃险Z句當做一個語句進行處理轉(zhuǎn)移語句: 著名的goto語句返回語句 子程序使用Return語句可以將運算結(jié)果返回調(diào)用程序。輸入、輸出語句Data
17、 and Computation 4Th, CS of ZJU, PHEI 29基本語句實現(xiàn)分支結(jié)構(gòu)的語句根據(jù)條件決定程序下一步該執(zhí)行程序的哪一條語句或語句塊Data and Computation 4Th, CS of ZJU, PHEI 30分支語句實現(xiàn)循環(huán)結(jié)構(gòu)的語句大多數(shù)高級語言有多種循環(huán)語句Data and Computation 4Th, CS of ZJU, PHEI 31循環(huán)語句(Loop)子程序,一段能夠完成某種功能的代碼函數(shù)(Function)- 大多數(shù)語言使用的名詞方法(Method) - 主要是Java使用的名詞Data and Computation 4Th, CS o
18、f ZJU, PHEI 32函數(shù)和方法主程序調(diào)用返回子程序函數(shù)/方法主程序調(diào)用參數(shù)實參( Actual parameter )子程序接收參數(shù)形參( Formal parameter )規(guī)則:實參和形參三個一致類型、數(shù)量、順序子程序的類型就是返回值的類型程序設(shè)計是一個系統(tǒng)過程通常把這個過程分為6個步驟問題的定義設(shè)計方案編碼測試編寫文檔運行維護Data and Computation 4Th, CS of ZJU, PHEI 33怎樣編寫程序No.1清晰、明確的定義是解決問題過程中最重要的一步25% 30% and More幾個問題:程序目標是什么?可能需要輸入哪些數(shù)據(jù)?數(shù)據(jù)具體的處理過程和要求是
19、什么?程序可能產(chǎn)生的數(shù)據(jù)輸出以及輸出形式是什么?Data and Computation 4Th, CS of ZJU, PHEI 34理解問題No.2 程序設(shè)計設(shè)計具體的解決方案關(guān)鍵-設(shè)計算法、合適的邏輯結(jié)構(gòu)確定程序范式,選擇編程技術(shù)(語言)程序運行在網(wǎng)絡中還是單臺機器上如有舊的程序在運行,新程序如何與之兼容No.3Coding!Data and Computation 4Th, CS of ZJU, PHEI 35程序設(shè)計和編碼調(diào)試已編好的程序找出程序中的邏輯錯誤和語法錯誤違反語法規(guī)則,就會發(fā)生語法錯誤程序結(jié)果不對,這是邏輯錯誤程序測試測試程序中的錯誤, 而不是使得程序中沒有錯誤”。常用的
20、測試方法有:黑盒測Beta()版(測試版)白盒測-專業(yè)測試,輸入一組特意設(shè)計的數(shù)據(jù)讓程序執(zhí)行,測試程序是否按照設(shè)計流程要求執(zhí)行Data and Computation 4Th, CS of ZJU, PHEI 36尋找錯誤:程序測試Grace Hoppe程序文檔設(shè)計文檔使用說明文檔形式有兩種:一種是在代碼行后面加注釋一種是按照一定規(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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中信銀行重慶分行招聘真題2024
- 安全生產(chǎn)應知應會采煤部分模擬試題(含參考答案)
- 浙江嘉善農(nóng)商銀行招聘真題2024
- 四川宜賓三江新區(qū)招聘真題2024
- 偏關(guān)縣招聘殯儀館工作人員真題2024
- 濟寧市金鄉(xiāng)縣公證處招聘真題2024
- 東莞銀行韶關(guān)分行招聘真題2024
- 安徽杜集區(qū)公益性崗位招聘真題2024
- 腕管綜合征術(shù)后護理
- 廣東省深圳市福田區(qū)2022-2023學年七年級上學期期末考試數(shù)學試題(原卷版)
- 計算機應用基礎(chǔ)(Windows10+Office2016)
- 支氣管肺炎個案護理查房
- 九年級數(shù)學一輪復習全部教案
- 調(diào)車作業(yè)和安全管理
- 學校消防防火月檢查記錄表
- 外墻水包砂施工方案模板
- 特許經(jīng)營管理手冊范本(餐飲)
- 旅游急救知識教案完整版
- 混床計算書(新)
- 王陽明與心學
- 標準檢驗指導書(SIP)-(格式模板)
評論
0/150
提交評論