程序設(shè)計(jì)語言原理課件_第1頁
程序設(shè)計(jì)語言原理課件_第2頁
程序設(shè)計(jì)語言原理課件_第3頁
程序設(shè)計(jì)語言原理課件_第4頁
程序設(shè)計(jì)語言原理課件_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第1頁程序設(shè)計(jì)語言原理第2頁程序設(shè)計(jì)語言原理 一門理論性較強(qiáng)的提高型課程,從更高的層次來理解各種語言機(jī)制,指導(dǎo)對計(jì)算機(jī)語言的學(xué)習(xí)和程序設(shè)計(jì)分析并理解各類高級程序設(shè)計(jì)語言范型與理論模型;掌握程序設(shè)計(jì)語言各主要成分設(shè)計(jì)中的關(guān)鍵問題、主要步驟、表示法的基本技能;學(xué)會(huì)分析、選擇、調(diào)合、折中、設(shè)計(jì)語言的特征。第3頁程序設(shè)計(jì)語言原理教材:程序設(shè)計(jì)語言原理 麥中凡 北航出版社參考書:程序語言原理(第五版),Robert W.Sebesta,機(jī)械工業(yè)出版社;程序設(shè)計(jì)語言:原理與實(shí)踐(第二版),Kenneth C. Louden,電子工業(yè)出版社;程序設(shè)計(jì)語言:設(shè)計(jì)與實(shí)現(xiàn)(第四版),Terrence W. Pra

2、tt,Marvin V. Zelkowitz,電子工業(yè)出版社;程序設(shè)計(jì)語言:概念和結(jié)構(gòu)(第二版),Ravi Sethi,機(jī)械工業(yè)出版社。參考教材程序設(shè)計(jì)語言原理(第八版),Robert W.Sebesta,機(jī)械工業(yè)出版社(¥75)編程語言原理(第十版),¥68.32012年600p討論語言構(gòu)成的設(shè)計(jì)問題分析常見語言的設(shè)計(jì)選擇比較各種備選方案第4頁參考教材程序設(shè)計(jì)語言 概念和結(jié)構(gòu)(第二版)¥452002年460p貝爾實(shí)驗(yàn)室/國外大學(xué)教材以命令式/OO為基礎(chǔ)常規(guī)語言的基本問題與程序語言有關(guān)的理論問題第5頁參考教材程序設(shè)計(jì)語言:設(shè)計(jì)與實(shí)現(xiàn)(第四版)¥43Programming LanguagesDe

3、sign and Implementation2001年460p語法語義編譯之間的關(guān)系語言機(jī)制多種語言的編程案例第6頁參考教材七周七語言 理解多種編程范型(¥59)Seven Languages in Seven WeeksA Pragmatic Guide to Learning Programming LanguagesRuby(OO)Io(原型/并發(fā))Prolog(邏輯)Scala(OO+函數(shù))Erlang(函數(shù))Clojure(混搭/并發(fā))Haskell(純涵)第7頁參考教材設(shè)計(jì)實(shí)現(xiàn)類的參考書,以編譯為基礎(chǔ)編譯程序設(shè)計(jì)藝術(shù) 理論與實(shí)踐(2009)偏概念和理論程序設(shè)計(jì)語言的形式語義(20

4、03)以語義為基礎(chǔ),理論很強(qiáng)編程語言實(shí)現(xiàn)模式(2011)要點(diǎn)案例,虛擬機(jī)原理兩周自制腳本語言(2012/日)實(shí)戰(zhàn)性進(jìn)階指導(dǎo)第8頁課程內(nèi)容第0章 緒論第1章 程序設(shè)計(jì)語言發(fā)展與分類第2章 程序設(shè)計(jì)語言設(shè)計(jì)概述第3章 過程式程序設(shè)計(jì)語言第4章 面向?qū)ο蟪绦蛟O(shè)計(jì)語言第5章 函數(shù)式程序設(shè)計(jì)語言第6章 邏輯式程序設(shè)計(jì)語言第7章 并發(fā)程序設(shè)計(jì)語言第8章 平臺無關(guān)程序設(shè)計(jì)語言第9章 描述性程序設(shè)計(jì)語言第10章 指稱語義的原理與應(yīng)用第11章 代數(shù)語義學(xué)第9頁第0章 導(dǎo) 論什么是程序設(shè)計(jì)語言(PL)為什么研究PL語言規(guī)范與處理器本課程內(nèi)容與要求第10頁0.1 什么是程序設(shè)計(jì)語言(PL)?人機(jī)通信媒體(介),軟件

5、的載體人工語言 機(jī)器識別,方便人使用形式語言 無二義性必須可執(zhí)行它是計(jì)算機(jī)科學(xué)與計(jì)算機(jī)工程的交匯點(diǎn)計(jì)算機(jī)科學(xué)是在符號學(xué)、集合論、離散數(shù)學(xué)、組合數(shù)學(xué)基礎(chǔ)上發(fā)展的以符號語言表達(dá)的軟件還要滿足正確性、可靠性、安全性、可擴(kuò)充、可移植、方便性第11頁第12頁1900193019401950196019701980199019101920自動(dòng)數(shù)學(xué) POSTAlfred North Whitehead BertrandRussell 符號邏輯(1910)不完全理論 , Goedel(1931)Giuseppe Peano集合論(1895)POST系統(tǒng)遞歸函數(shù)論Church,Rosser(1930s)可計(jì)算理

6、論Turing(1936)信息論Shannon形式語法定義Backus 和Naur隨機(jī)算法形式語言理論 Chomsky自動(dòng)化理論電子學(xué)開關(guān)理論復(fù)雜性理論計(jì)算機(jī)密碼學(xué)(1976)Diffie,Hellman公共密鑰系統(tǒng)(1978)Rivest,Shamir,AdelmanKnuth:詞法分析方法編譯理論編譯的編譯EL/1:可擴(kuò)展式語法第13頁1930194019501960197019801990POST 系統(tǒng)遞歸函數(shù)理論 Church,Rosser(1930s)可計(jì)算理論Turing(1936)演算 Church(1941)程序正確性和驗(yàn)證(1960s)引用透明,Strachey形式語義定義S

7、ECD機(jī),Landin(1964)PL/1的Vienna定義(1967)指稱語義學(xué)(1971)Scott,Strachey)Milner:類型理論(1978)函數(shù)式語言:ML Miranda Haskell并發(fā)性 Dijkstra(1968)Hoare:CPS(1978)分布式計(jì)算Lamport協(xié)作計(jì)算1988第14頁重要性程序設(shè)計(jì)語言的研究和開發(fā)處于計(jì)算機(jī)科學(xué)技術(shù)發(fā)展的中心:計(jì)算機(jī)理論和方法的研究,許多是由于語言發(fā)展的需求許多理論研究成果體現(xiàn)到程序語言的設(shè)計(jì)中實(shí)際應(yīng)用中最本質(zhì)的需要常反映到程序語言里,推動(dòng)語言的演化和發(fā)展語言實(shí)現(xiàn)的需要是推動(dòng)計(jì)算機(jī)體系結(jié)構(gòu)演化的一個(gè)重要因素(如RISC)計(jì)算機(jī)

8、硬件的能力和特征也對程序語言的發(fā)展變化有著重要影響(今天和明天,并行性問題)理解程序設(shè)計(jì)語言,有助于提高對整個(gè)計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域的認(rèn)識推動(dòng)語言演化發(fā)展的要素:實(shí)際應(yīng)用的需要,硬件的發(fā)展和變化,人們對于程序設(shè)計(jì)工作的認(rèn)識發(fā)展,實(shí)現(xiàn)技術(shù)的開發(fā),理論研究的成果第15頁重要性:圖靈獎(jiǎng)1966-2010,45屆圖靈獎(jiǎng),有15屆由于與程序設(shè)計(jì)語言有關(guān)的工作而獲獎(jiǎng)1966,Alan J.Perlis,早起語言和Algol 60的貢獻(xiàn),圖靈獎(jiǎng)第一位獲獎(jiǎng)?wù)?971,John McCarthy,LISP語言,程序語義,程序理論1972,E.W.Dijkstra,Algol編譯,結(jié)構(gòu)化程序設(shè)計(jì),并發(fā)概念和原語,形式

9、化推到,衛(wèi)式命令等1977,John Backus,Fortran語言,F(xiàn)P語言,BNF等1978,Robert Floyd,Algol編譯,編譯技術(shù),程序優(yōu)化,歸納斷言法和前后斷言,程序正確性,編譯生成1979,K.E.Iverson,APL語言1980,C.A.R.Hoare,結(jié)構(gòu)化程序設(shè)計(jì),case語句,公理語義學(xué),并發(fā)程序的理論,CSP等1983,Dennis Ritchie和Thompson,C語言和UNIX1984,Niklaus Wirth, Alogl W, PL360, Pascal, Modula-1/2, Oberon,逐步求精,結(jié)構(gòu)化程序設(shè)計(jì),語法圖1991,Robin

10、 Milner, ML語言,并發(fā)理論,CCS2001,Ole-Johan Dahl和Kristen Nygaard, Simula語言,OO概念2003,Alan Kay, Smaltalk語言,OO概念、語言和程序設(shè)計(jì)2005,Peter Naur, Algol 60語言的設(shè)計(jì)和定義,編譯,程序設(shè)計(jì)的原理和實(shí)踐2006,F(xiàn)rances Allen,優(yōu)化編譯和并行化2008,Barbara Liskov,數(shù)據(jù)抽象/OO/容錯(cuò)/分布式計(jì)算程序的基礎(chǔ)和語言第16頁第16頁新趨勢:并行狹義的摩爾定律已失效,提高主頻的趨勢已停止并行環(huán)境已逐漸成為我們周圍最常見計(jì)算機(jī)的基本結(jié)構(gòu)的一部分如何做并行程序設(shè)計(jì)

11、的問題變成對每個(gè)計(jì)算機(jī)工作者的挑戰(zhàn)程序設(shè)計(jì)語言也需要反應(yīng)這方面的需求有關(guān)并行語言、程序和程序設(shè)計(jì)的問題,將在今后很多年里成為程序設(shè)計(jì)語言研究領(lǐng)域里最重要的問題第17頁第17頁第17頁新趨勢:并行有關(guān)并行系統(tǒng)和并行程序設(shè)計(jì)的研究已經(jīng)進(jìn)行了近40年,但對并行系統(tǒng)和如何設(shè)計(jì)實(shí)現(xiàn)并行系統(tǒng)的認(rèn)識仍很不成熟:已開發(fā)的并行系統(tǒng)(及分布式系統(tǒng))經(jīng)常出現(xiàn)意料之外的錯(cuò)誤并行系統(tǒng)的開發(fā)方法很難使用,開發(fā)低效,對開發(fā)人員缺乏良好支持描述并發(fā)系統(tǒng)的記法形式過于低級和細(xì)節(jié),缺乏有效抽象手段 并發(fā)系統(tǒng)的驗(yàn)證技術(shù)不成熟,系統(tǒng)缺乏可靠性的保證對于上述問題的研究和并發(fā)程序開發(fā)實(shí)踐將未來語言的發(fā)展影響有重大影響許多新語言里加入了并

12、行特征,包括Java、C# 等一些并行理論的研究成果被用于實(shí)踐,如JCSP人們重新開始重視無狀態(tài)的程序設(shè)計(jì),函數(shù)式程序設(shè)計(jì)(如Erlang 語言受到許多人推崇),提出了一些新想法這方面的理論和實(shí)際技術(shù)研究將成為很長時(shí)間的研究熱點(diǎn)第18頁第18頁第18頁第18頁新趨勢:腳本語言近年腳本語言在計(jì)算機(jī)應(yīng)用盛行起來,重要實(shí)例:用于開發(fā)Web 服務(wù)端的PHP、ASP、JSP 等用于Web 客戶端網(wǎng)頁嵌入應(yīng)用的JavaScript 等用于更廣泛的應(yīng)用開發(fā)的Perl、Python、Ruby 等其他各種專門用途的腳本語言,如描述圖形界面的Tcl/tk與通用程序設(shè)計(jì)語言相比,通用腳本語言有如下特點(diǎn):豐富的基礎(chǔ)數(shù)

13、據(jù)結(jié)構(gòu),靈活的使用方式,支持快速的應(yīng)用開發(fā)基于解釋器的執(zhí)行,或者解釋和編譯的結(jié)合,可以立即看到開發(fā)的效果通常都沒有標(biāo)準(zhǔn)化,隨著應(yīng)用的發(fā)展變化和很快地?cái)U(kuò)充一些語言形成了很好的社團(tuán),開發(fā)了大量有用的庫腳本語言將如何發(fā)展?其發(fā)展趨勢怎樣?第19頁新趨勢:從語言本身的角度近幾年編程語言呈內(nèi)部發(fā)展趨勢:(1) 前十大熱門編程語言都借鑒了其他語言的功能,作為新功能引入。重要實(shí)例:Java 8 引入函數(shù)式編程;C+ 11 引入函數(shù)式編程、多線程、泛型編程;PHP 7 標(biāo)量類型和返回類型聲明、AST(抽象語法樹)、Native TLS(原生線程本地存儲);(2) 面向標(biāo)準(zhǔn)的編程程序語言有各自的工業(yè)標(biāo)準(zhǔn)準(zhǔn)則;(

14、3) 第三方模塊各種語言的框架和庫,推動(dòng)語言的發(fā)展。重要實(shí)例:JavaScript的jQuery框架,C#的MVC框架,Python的Caffe、Theano等深度學(xué)習(xí)庫,R的darch、deepnet等深度學(xué)習(xí)庫;第20頁新趨勢:從工程方面的角度近幾年編程語言的工具呈現(xiàn)以下發(fā)展趨勢:工具化代碼風(fēng)格檢查、工業(yè)標(biāo)準(zhǔn)檢查、代碼整理、無用代碼檢查等代碼管理功能工具化日益突出;(2) 工程化代碼質(zhì)量檢測、代碼壓縮、代碼合并、代碼優(yōu)化、代碼編譯、單元測試等代碼管理功能呈現(xiàn)流程自動(dòng)化趨勢;(3) 自動(dòng)化版本控制庫構(gòu)建測試報(bào)告持續(xù)集成;最新的自主編碼研究,已經(jīng)實(shí)現(xiàn)自動(dòng)完成代碼補(bǔ)全和修復(fù)1,正在向進(jìn)一步的完全

15、自動(dòng)化的代碼編寫發(fā)展。1 /kootenpv/neural_complete第21頁第21頁From www.T程序設(shè)計(jì)語言流行程度第22頁程序設(shè)計(jì)語言流行程度1、蘋果宣布Swift代替Objective-C之后,Objective-C迅速下滑;2、2016年漲幅上升最快的語言: GO語言;3、由于WordPress 8在網(wǎng)頁開發(fā)中占據(jù)27.3%的份額,它依舊被收編為PHP;第23頁第23頁續(xù)Programming LanguagePositionAug 2013PositionAug 2008PositionAug 1998PositionAug 1988Java114-C2211C+342

16、3Objective-C441-PHP55-C#68-(Visual) Basic7337Python8628-JavaScript91026-Ruby109-Lisp1617142Very Long Term HistoryFrom www.T近三年排名前20語言的初創(chuàng)和發(fā)行時(shí)間第24頁語言誕生商用/應(yīng)用JAVA1995 1996C19721973PHP19951997C+19831990Visual Basic19911991Perl19871991C#20002002Python19912000JavaScript19951996Ruby19952011Delphi19951999Pas

17、cal19701983Lisp/Scheme19581962PL/SQL19851985SAS19761985ABAP19851985D19992007Objective-C19831992Lua19931993MATLAB1970末1984Delphi/Object Pascal19861994Lisp19581962Transact-SQL1992+Visual Basic .NET20012002Ada19801983Assembly第25頁定義:可以編制軟件的機(jī)器可識別可執(zhí)行的表示法(或符號)系統(tǒng)第26頁續(xù)0.2 為什么研究PL人機(jī)交互界面永存 過去現(xiàn)在未來軟硬件技術(shù)窗口發(fā)展新語言 提

18、高軟件人員素質(zhì)通向理論的形式方法通用語言標(biāo)準(zhǔn)化與規(guī)范化第27頁0.3 語言規(guī)范與處理器PL語言不是軟件它只是一規(guī)范參考手冊(LRM)規(guī)定符號元素語法語義(形式的 非形式的)按它的規(guī)定寫出的程序是軟件PL翻譯器也是軟件一種語言到另一種語言:翻譯器一種語言到目標(biāo)碼 編譯器 先翻譯、優(yōu)化后執(zhí)行 高效解釋器 即譯即執(zhí)行 低效 靈活第28頁0.4 本課程內(nèi)容與要求第29頁本書分為四部分PL的一般概述,形式語法復(fù)習(xí) 0-2章各種PL范型 3-10章語義理論 10-11章要求習(xí)題作業(yè)平時(shí)占50%計(jì)分 考試占50%計(jì)分0.5 計(jì)算學(xué)科命名的背景如何認(rèn)知計(jì)算學(xué)科,有著不少爭論:1984年7月,美國計(jì)算機(jī)科學(xué)與工

19、程博士單位評審部的領(lǐng)導(dǎo)們,在猶他州召開的會(huì)議上對計(jì)算認(rèn)知問題進(jìn)行了討論;這一討論以及其他類似討論促使(美國)計(jì)算機(jī)協(xié)會(huì)(ACM)與(美國)電氣和電子工程師學(xué)會(huì)計(jì)算機(jī)分會(huì)(IEEE/CS)于1985年春聯(lián)手組成任務(wù)組;經(jīng)過近4年的工作,任務(wù)組提交了在計(jì)算教育史上具有里程碑意義的“計(jì)算作為一門學(xué)科”(Computing as a Discipline)報(bào)告。0.5 計(jì)算學(xué)科命名的背景“計(jì)算作為一門學(xué)科”報(bào)告論證了計(jì)算作為一門學(xué)科的事實(shí)回答了計(jì)算學(xué)科長期以來一直爭論的一些問題;并將當(dāng)時(shí)的計(jì)算機(jī)科學(xué)、計(jì)算機(jī)工程、計(jì)算機(jī)科學(xué)和工程、計(jì)算機(jī)信息學(xué)以及其他類似名稱的專業(yè)及其研究范疇統(tǒng)稱為計(jì)算學(xué)科。0.5 計(jì)

20、算學(xué)科的定義“計(jì)算”的定義“計(jì)算”是從一個(gè)符號行得出另一個(gè)符號行的變換;“計(jì)算”的概念可以用符號簡潔地表示如下:: 當(dāng)然,符號和各自表示了某種信息,因此也可以說,計(jì)算是一種信息變換。0.5 計(jì)算學(xué)科的定義從“計(jì)算”的定義可知,它至少涉及兩個(gè)方面:用計(jì)算機(jī)求解問題的時(shí)候,首先需要用適當(dāng)?shù)臄?shù)據(jù)表示問題,然后再用適當(dāng)?shù)乃惴▽χ@些數(shù)據(jù)進(jìn)行變換,進(jìn)而獲得問題的求解結(jié)果;這種所謂的“問題抽象、形式化描述、自動(dòng)化(計(jì)算機(jī)化)”的解題思路,實(shí)際上就是具有“抽象能力與形式化描述能力” 的“計(jì)算機(jī)思維”;因此,就“計(jì)算機(jī)思維”而言,有兩門課是計(jì)算機(jī)專業(yè)的大學(xué)生必須學(xué)習(xí)的:形式語言與自動(dòng)機(jī)和算法設(shè)計(jì)與分析。0.5

21、 計(jì)算學(xué)科的定義計(jì)算學(xué)科是對描述和變換信息的算法過程進(jìn)行的系統(tǒng)研究,包括理論、分析、設(shè)計(jì)、效率、實(shí)現(xiàn)和應(yīng)用等。計(jì)算學(xué)科包括對計(jì)算過程的分析以及計(jì)算機(jī)的設(shè)計(jì)和使用。學(xué)科的廣泛性在下面一段來自美國計(jì)算科學(xué)鑒定委員會(huì)發(fā)布的報(bào)告摘錄中得到強(qiáng)調(diào):計(jì)算學(xué)科的研究包括從算法與可計(jì)算性的研究到根據(jù)可計(jì)算硬件和軟件的實(shí)際實(shí)現(xiàn)問題的研究。這樣,計(jì)算學(xué)科包括從總體上對算法和信息處理過程進(jìn)行的研究,也包括滿足給定規(guī)格要求的有效而可靠的軟硬件設(shè)計(jì)它包括所有科目的理論研究、實(shí)驗(yàn)方法和工程設(shè)計(jì)。0.5 計(jì)算學(xué)科的根本問題計(jì)算學(xué)科的根本問題是:“什么能被(有效地)自動(dòng)進(jìn)行”;計(jì)算學(xué)科來源于對算法理論、數(shù)理邏輯、計(jì)算模型、自動(dòng)

22、計(jì)算機(jī)器的研究,并與存儲式電子計(jì)算機(jī)的發(fā)明一起,形成于20世紀(jì)40年代初期。0.5 計(jì)算學(xué)科的發(fā)展計(jì)算學(xué)科現(xiàn)已成為一個(gè)龐大的學(xué)科無論是教師,學(xué)校,還是學(xué)生和家長都希望有一份權(quán)威性的報(bào)告來了解學(xué)科的相關(guān)情況。為此,IEEE/CS和ACM任務(wù)組作了大量的工作,并于2001至2005年,分別提交了:計(jì)算機(jī)科學(xué)(Computer Science ,簡稱CS)信息系統(tǒng)(Information System,簡稱IS)軟件工程(Software Engineering,簡稱SE)計(jì)算機(jī)工程(Computer Engineering,簡稱CE)信息技術(shù)(Information Technology ,簡稱I

23、T)5個(gè)學(xué)科分支(專業(yè))的教程以及相應(yīng)的總報(bào)告,報(bào)告還給出了5個(gè)分支學(xué)科的知識體以及相應(yīng)的核心課程,為各專業(yè)教學(xué)計(jì)劃的設(shè)計(jì)奠定了基礎(chǔ),同時(shí)也為公眾認(rèn)知和選擇這些專業(yè)提供幫助。第37頁Computing Curricula 2005第37頁不同類型教學(xué)計(jì)劃的問題空間示意圖理論應(yīng)用組織與系統(tǒng)行為CS計(jì)算機(jī)科學(xué)方向IT信息技術(shù)方向SE軟件工程方向CE計(jì)算機(jī)工程方向摘自CC2005第39頁0.6 計(jì)算機(jī)科學(xué)與技術(shù)體系CC2001一.DS. Discrete Structures主要內(nèi)容包括集合論,數(shù)理邏輯,近世代數(shù),圖論以及組合數(shù)學(xué)等。該領(lǐng)域與計(jì)算學(xué)科各主領(lǐng)域有著緊密的聯(lián)系,CC2001為了強(qiáng)調(diào)它的重

24、要性,特意將它列為計(jì)算學(xué)科的第一個(gè)主領(lǐng)域。該主領(lǐng)域以“抽象”和“理論”兩個(gè)學(xué)科形態(tài)出現(xiàn)在計(jì)算學(xué)科中,它為計(jì)算學(xué)科各分支領(lǐng)域解決其基本問題提供了強(qiáng)有力的數(shù)學(xué)工具。第39頁第40頁0.6 計(jì)算機(jī)科學(xué)與技術(shù)體系二. PF. Programming Fundamentals主要內(nèi)容包括程序設(shè)計(jì)結(jié)構(gòu),算法,問題求解和數(shù)據(jù)結(jié)構(gòu)等。它考慮的是如何對問題進(jìn)行抽象。它屬于學(xué)科抽象形態(tài)方面的內(nèi)容。并為計(jì)算學(xué)科各分支領(lǐng)域基本問題的感性認(rèn)識(抽象)提供方法。基本問題主要包括:1.對給定的問題如何進(jìn)行有效的描述并給出算法?2.如何正確選擇數(shù)據(jù)結(jié)構(gòu)?3.如何進(jìn)行設(shè)計(jì),編碼,測試和調(diào)試程序?第40頁第41頁0.6 計(jì)算機(jī)科

25、學(xué)與技術(shù)體系三.AL. Algorithms and Complexity 主要內(nèi)容包括算法的復(fù)雜度分析,典型的算法策略,分布式算法,并行算法,可計(jì)算理論,P類和NP類問題,自動(dòng)機(jī)理論,密碼算法以及幾何算法等.基本問題主要包括:1.對于給定的問題類,最好的算法是什么?要求的存儲空間和計(jì)算時(shí)間有多少?空間和時(shí)間如何折衷?2.訪問數(shù)據(jù)的最好方法是什么?3.算法最好和最壞的情況是什么?4.算法的平均性能如何?5.算法的通用性如何?第41頁第42頁0.6 計(jì)算機(jī)科學(xué)與技術(shù)體系四.PL. Programming Languages主要內(nèi)容包括程序設(shè)計(jì)模式,虛擬機(jī),類型系統(tǒng),執(zhí)行控制模型,語言翻譯系統(tǒng),程

26、序設(shè)計(jì)語言的語義學(xué),基于語言的并行構(gòu)件等.第42頁第43頁0.6 計(jì)算機(jī)科學(xué)與技術(shù)體系四.PL. Programming Languages理論形態(tài)的主要內(nèi)容:包括形式語言和自動(dòng)機(jī),圖靈機(jī)(過程式語言的基礎(chǔ)),POST系統(tǒng)(字符串處理語言的基礎(chǔ)),lamda-演算(函數(shù)式語言的基礎(chǔ)),形式語義學(xué),謂詞邏輯,時(shí)態(tài)邏輯,近世代數(shù)等. 第43頁第44頁0.6 計(jì)算機(jī)科學(xué)與技術(shù)體系四.PL. Programming Languages基本問題主要包括:1.語言(數(shù)據(jù)類型,操作,控制結(jié)構(gòu),引進(jìn)新類型和操作的機(jī)制)表示的虛擬機(jī)的可能組織結(jié)構(gòu)是什么?2.語言如何定義機(jī)器?機(jī)器如何定義語言?3.什么樣的表示法

27、(語義)可以有效地用于描述計(jì)算機(jī)應(yīng)該做什么?第44頁第45頁0.6 計(jì)算機(jī)科學(xué)與技術(shù)體系五.AR. Architecture and Organization六.OS. Operating Systems 七.NC. Net-Centric Computing 八.HC. Human-Computer Interaction九.GV. Graphics and Visual Computing 、十.IS. Intelligent Systems 十一.IM. Information Management 十二.SE. Software Engineering 十三.SP. Social an

28、d Professional Issues十四.CN. Computational Science 第45頁“計(jì)算機(jī)科學(xué)與技術(shù)”專業(yè)劃分教育部高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會(huì)在“計(jì)算機(jī)科學(xué)與技術(shù)”專業(yè)名稱下,鼓勵(lì)不同學(xué)校根據(jù)社會(huì)需求和自身的實(shí)際情況,為學(xué)生提供不同類型的、本科水平的教學(xué)計(jì)劃考慮三種不同的類型:科學(xué)型(CS)、工程型(CE和SE)、應(yīng)用型(信息技術(shù)型IT) 其中工程型又分為計(jì)算機(jī)工程與軟件工程兩類軟件工程一級學(xué)科群體軟件工程軟件服務(wù)工程軟件工程管理與技術(shù)領(lǐng)域軟件工程“計(jì)算機(jī)科學(xué)與技術(shù)”專業(yè)劃分CS2013的產(chǎn)生背景為順應(yīng)計(jì)算機(jī)科學(xué)前沿理論和技術(shù)發(fā)展以及工業(yè)界的需求,每十年,

29、ACM和IEEE-CS會(huì)共同發(fā)起制定關(guān)于“計(jì)算機(jī)科學(xué)”學(xué)科的課程大綱目的是為全球“計(jì)算機(jī)科學(xué)”專業(yè)的教學(xué)提供最新的課程指導(dǎo)已分別于1968、1978、1991和2001發(fā)布了前期版本最近的CS2008版本,是臨時(shí)版自2001年起,“計(jì)算機(jī)科學(xué)”分為計(jì)算機(jī)科學(xué)(CS),計(jì)算機(jī)工程(CE),信息系統(tǒng)(IS),信息工程(IT)以及軟件工程(SE)最新完整版于2013發(fā)布,命名為CS2013該版本的制定工作從2010年秋季開始CS2013遵循的理念大帳棚策略(Big Tent)涵蓋包括最新發(fā)展在內(nèi)的計(jì)算機(jī)科學(xué)各領(lǐng)域起到橋梁作用,關(guān)聯(lián)相關(guān)交叉學(xué)科控制學(xué)時(shí)總數(shù)與CS2001相比,學(xué)時(shí)總數(shù)不增加提供真實(shí)課程

30、范例給出包含各知識點(diǎn)的真實(shí)范例課程兼容習(xí)俗和文化的需要兼容不同的培養(yǎng)目標(biāo)、資源和限制條件兼容不同的學(xué)院規(guī)模、學(xué)院類型以及可利用的資源CS2013知識點(diǎn)(Knowledge Area)與學(xué)時(shí)安排Knowledge Area CS2013 Tier1CS2013Tier2 CS2008Core CC2001Core AL-Algorithms and Complexity 19 9 31 31 AR-Architecture and Organization 0 16 36 36 CN-Computational Science 1 0 0 0 DS-Discrete Structures 37

31、4 43 43 GV-Graphics and Visual Computing 2 1 3 3 HC-Human-Computer Interaction 4 4 8 8 IAS-Security and Information Assurance 2 6 - - IM-Information Management 1 9 11 10 IS-Intelligent Systems 0 10 10 10 NC-Networking and Communication 3 7 15 15 OS-Operating Systems 4 11 18 18 PBD-Platform-based Dev

32、elopment 0 0 - - PD-Parallel and Distributed Computing 5 10 - - PL-Programming Languages 8 20 21 21 SDF-Software Development Fundamentals 42 0 47 38 SE-Software Engineering 6 21 31 31 SF-Systems Fundamentals 18 9 - - SP-Social and Professional Issues 11 5 16 16 Total Core Hours 163 142 290 280 CS201

33、3的特點(diǎn)操作靈活順應(yīng)發(fā)展順應(yīng)前沿理論和技術(shù)發(fā)展以及工業(yè)界的需求新增知識點(diǎn)做出調(diào)整的知識點(diǎn)重視系統(tǒng)、重視基礎(chǔ)保留經(jīng)典強(qiáng)調(diào)交叉新增知識點(diǎn)2010年12月,ACM/IEEE CS2013工作組對全球計(jì)算機(jī)系系主任進(jìn)行問卷調(diào)查,收到201份有效反饋。反饋表明關(guān)于計(jì)算機(jī)專業(yè)核心知識,排名前三的是計(jì)算思維、程序設(shè)計(jì)基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)建議加入課程體系的新內(nèi)容,排名前三的是信息安全、分布和并行計(jì)算、移動(dòng)計(jì)算在新的課程體系CS2013中,將加入分布和并行計(jì)算、信息安全、系統(tǒng)基礎(chǔ)、基于平臺的編程這四大塊核心知識模塊CS2013 & CS2008 Knowledge Areas 2013: 18 KAAL - Algo

34、rithms and Complexity AR - Architecture and OrganizationCN - Computational ScienceDS - Discrete StructuresGV - Graphics and Visual ComputingHC - Human-Computer InteractionIAS - Information Assurance and Security IM - Information Management IS - Intelligent SystemsNC - Networking and CommunicationsOS

35、 - Operating SystemsPBD - Platform-based DevelopmentPD - Parallel and Distributed ComputingPL - Programming LanguagesSDF - Software Development FundamentalsSE - Software Engineering SF - Systems FundamentalsSP - Social and Professional Issues 2008: 14 KAAlgorithms and Complexity (AL) Architecture an

36、d Organization (AR) Computational Science (CN)Discrete Structures (DS)Graphics and Visual Computing (GV)Human-Computer Interaction (HC)Information Management (IM)Intelligent Systems (IS)Net-Centric Computing (NC) Operating Systems (OS) Programming Fundamentals (PF) Programming Languages (PL) Softwar

37、e Engineering (SE)Social and Professional Issues (SP)新增知識點(diǎn)PD. Parallel and Distributed Computing (5 Core-Tier1 hours, 9 Core-Tier2 hours,14 total) IAS. Information Assurance and Security (2 Core-Tier1 hours, 6 Core-Tier2 hours ,8 total) SF. Systems Fundamentals (18 core Tier 1, 9 core Tier 2 hours,

38、27 total) NC. Networking and Communication (3 Core-Tier1 hours, 7 Core-Tier2 hours, 10 total) PBD. Platform-Based Development (Elective)這兩個(gè)知識點(diǎn)原來涵蓋在“Net-Centric Computing(NC)”知識點(diǎn)中,現(xiàn)在NC更名為“Networking and Communication”,新增PDB知識點(diǎn)講述基于平臺的編程第15屆全國高校計(jì)算機(jī)系主任院長論壇PD. Parallel and Distributed Computing除此之外,強(qiáng)調(diào)在其它

39、課程中也需要滲透并行計(jì)算知識,比如在算法課程中介紹并行算法,體系結(jié)構(gòu)課程中介紹多核的內(nèi)容,等等Core-Tier1hours Core-Tier2hours IncludesElectives PD/Parallelism Fundamentals 2 N PD/Parallel Decomposition 1 3 N PD/Communication and Coordination 1 3 Y PD/Parallel Algorithms, Analysis, and Programming 3Y PD/Parallel Architecture 1 1 Y PD/Parallel Per

40、formance Y PD/Distributed Systems Y PD/Formal Models and Semantics Y total510IAS. Information Assurance and SecurityCore-Tier1 hoursCore-Tier2HoursIncludesElectivesIAS/Fundamental Concepts 1 2 N IAS/Network Security 1 4 N IAS/Cryptography Y IAS/Risk Management Y IAS/Security Policy and Governance Y

41、IAS / Digital Forensics Y IAS / Security Architecture and Systems Administration Y IAS/Secure Software Design and Engineering Y total26SF. Systems FundamentalsCore-Tier 1hours Core-Tier 2hours SF/Computational Paradigms 3 SF/Cross-Layer Communications 3 SF/State-State Transition-State Machines 6 SF/

42、System Support for Parallelism 3 SF/Performance 3 SF/Resource Allocation and Scheduling 2 SF/Proximity 3 SF/Virtualization and Isolation 2 SF/Reliability through Redundancy 2 total189首次提出,需要從系統(tǒng)的觀點(diǎn)介紹軟件的基礎(chǔ)原理與策略PBD. Platform-Based Development NC. Networking and CommunicationNC. Networking and Communica

43、tionCore-Tier1hours Core-Tier2hours NC/Introduction 1.5 NC/Networked Applications 1.5 NC/Reliable Data Delivery 2 NC/Routing And Forwarding 1.5 NC/Local Area Networks 1.5 NC/Resource Allocation 1 NC/Mobility 1 total37CS 2008 NC. Net-Centric Computing (15 core hours)NC/Introduction(2)NC/Network Commu

44、nication (7)NC/Network Security (6)NC/Web OrganizationNC/Networked ApplicationsNC/Network ManagementNC/CompressionNC/Multimedia TechnologiesNC/Mobile ComputingPBD. Platform-Based DevelopmentIncludes ElectivesPBD/Introduction Y PBD/Web Platforms Y PBD/Mobile Platforms Y PBD/Industrial Platforms Y PBD

45、/Game Platforms Y 不再過多的強(qiáng)調(diào)網(wǎng)絡(luò)通訊知識,強(qiáng)調(diào)從網(wǎng)絡(luò)應(yīng)用軟件的角度給出相關(guān)知識適應(yīng)移動(dòng)互聯(lián)網(wǎng)的發(fā)展,單獨(dú)形成PBD知識點(diǎn)做出調(diào)整的知識點(diǎn)SDF. Software Development Fundamentals (42 Core-Tier1 hours,42 total)由Programming Fundamentals (PF)精煉改進(jìn)而得AR. Architecture and Organization (0 Core-Tier 1 hours, 16 Core-Tier 2 hours , 16 total) PL. Programming Languages (

46、8 Core-Tier1 hours, 20 Core-Tier2 hours , 28 total) SE. Software Engineering (6 Core-Tier1 hours; 21 Core-Tier2 hours)CN. Computational Science1 Core-Tier1 hours, 0 Core-Tier2 hoursSDF. Software Development FundamentalsCore-Tier1hours Includes Electives SDF/Algorithms and Design 11 N SDF/Fundamental

47、 Programming Concepts 10 N SDF/Fundamental Data Structures 12 N SDF/Development Methods 9 N total42CS 2008 PF. Programming Fundamentals (47 core hours)PF/Fundamental Constructs (9)PF/Algorithmic Problem Solving (6)PF/Data Structures (10)PF/Recursion (4)PF/Event Driven Programming (4)PF/Object Orient

48、ed (8)PF/Foundations Information Security (4)PF/Secure Programming (2)從軟件開發(fā)的觀點(diǎn)介紹軟件的基礎(chǔ)原理與制作策略AR. Architecture and OrganizationCore-Tier 2Hours IncludesElectiveAR/Digital logic and digital systems 3 N AR/Machine level representation of data 3 N AR/Assembly level machine organization 6 N AR/Memory syst

49、em organization and architecture 3 N AR/Interfacing and communication 1 N AR/Functional organization Y AR/Multiprocessing and alternative architectures Y AR/Performance enhancements Y total16CS 2008 AR. Architecture and Organization (36 core hours)AR/Digital Logic And Data Representation (7)AR/Compu

50、ter Architecture And Organization (9)AR/Interfacing And I/O Strategies (3)AR/Memory Architecture (5)AR/Functional Organization (6)AR/Multiprocessing (6)AR/Performance EnhancementsAR/Distributed ArchitecturesAR/DevicesAR/Directions In Computing課時(shí)更精練PL. Programming LanguagesCore-Tier1hoursCore-Tier2ho

51、ursIncludesElectivesPL/Object-Oriented Programming 4 6 N PL/Functional Programming 3 4 N PL/Event-Driven and Reactive Programming 2 N PL/Basic Type Systems 1 4 N PL/Program Representation 1 N PL/Language Translation and Execution 3 N PL/Syntax Analysis Y PL/Compiler Semantic Analysis Y PL/Code Gener

52、ation Y PL/Runtime Systems Y PL/Static Analysis Y PL/Advanced Programming Constructs Y PL/Concurrency and Parallelism Y PL/Type Systems Y PL/Formal Semantics Y PL/Language Pragmatics Y PL/Logic Programming Y total820CS2008 PL. Programming Languages (21 core hours)PL/Overview(2)PL/Virtual Machines(1)

53、PL/Basic Language Translation(2)PL/Declarations And Types(3)PL/Abstraction Mechanisms(3)PL/Object Oriented Programming(10)PL/Functional ProgrammingPL/Language Translation SystemsPL/Type SystemsPL/Programming Language SemanticsPL/Programming Language Design適應(yīng)現(xiàn)代編程語言的發(fā)展,以面向?qū)ο缶幊?、函?shù)式編程以及事件驅(qū)動(dòng)式編程為重點(diǎn)內(nèi)容SE. S

54、oftware EngineeringCore-Tier1 hours Core-Tier2hours IncludesElectives SE/Software Processes 1 2 Y SE/Software Project Management 3 Y SE/Tools and Environments 2 N SE/Requirements Engineering 1 3 Y SE/Software Design 4 4 Y SE/Software Construction 2 Y SE/Software Verification Validation 3 Y SE/Softwa

55、re Evolution 1 Y SE/Formal Methods Y SE/Software Reliability 1 Y total621CS2008 SE. Software Engineering (31 core hours)SE/Software Design (8)SE/Using APIs (5)SE/Tools And Environments (3)SE/Software Processes (2)SE/Requirements Specifications (4)SE/Software Verification Validation (3)SE/Software Ev

56、olution (3)SE/Software Project Management (3)SE/Component Based ComputingSE/Formal MethodsSE/Software ReliabilitySE/Specialized SystemsSE/Risk AssessmentSE/Robust And Security-Enhanced Programming適應(yīng)現(xiàn)代軟件工程的內(nèi)容,更加強(qiáng)調(diào)軟件項(xiàng)目管理、需求分析、軟件架構(gòu)等內(nèi)容CN. Computational ScienceCore-Tier1 hours Includes Electives CN/Funda

57、mentals 1 N CN/Modeling and Simulation Y CN/Processing Y CN/Interactive Visualization Y CN/Data, Information, and Knowledge Y total1CS2008 CN. Computational Science (no core hours)CN/Modeling And SimulationCN/Operations ResearchCN/Parallel Computation除了精煉了1個(gè)學(xué)時(shí)的fundamentals以外,按照建模、處理、交互以及數(shù)據(jù)(信息和知識)的軟件

58、框架重新組織知識內(nèi)容重視系統(tǒng)、重視基礎(chǔ)分別從軟件開發(fā)和系統(tǒng)兩個(gè)層面,強(qiáng)調(diào)基礎(chǔ)原理與方法策略,學(xué)時(shí)數(shù)高,概括性廣SDF. Software Development Fundamentals (42 Core-Tier1 hours,42 total)includes fundamental concepts and skills that could appear in other software-oriented KAs (e.g., programming constructs from Programming Languages, simple algorithm analysis fr

59、om Algorithms and Complexity, simple development methodologies from Software Engineering)Core-Tier1hours Includes Electives SDF/Algorithms and Design 11 N SDF/Fundamental Programming Concepts 10 N SDF/Fundamental Data Structures 12 N SDF/Development Methods 9 N total42重視系統(tǒng)、重視基礎(chǔ)SF. Systems Fundamenta

60、ls (18 core Tier 1, 9 core Tier 2 hours, 27 total)The new Systems Fundamentals KA presents a unified systems perspective and common conceptual foundation for other KAs (notably Architecture and Organization, Network and Communications, Operating Systems, and Parallel and Distributed Algorithms)Core-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論