版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
4.3計算機分類計算機的種類很多,而且分類的方法也很多。用I代表“指令流”,用D代表“數(shù)據(jù)流”,分成:SISD、SIMD、MISD、MIMD共四種CU控制部件PU處理部件MM存儲單元CS為控制流DS為數(shù)據(jù)流IS為指令流1989年11月,美國電器和電子工程師協(xié)會(IEEE)的一個委員會根據(jù)當時的發(fā)展趨勢,提出將計算機劃分為
(1)巨型計算機(Supercomputer)
(2)小巨型機(MiniSupercomputer)
(3)主機(Mainframe)
(4)超級小型計算機(SuperMinicomputer)
(5)工作站(Workstation)
(6)個人計算機(PersonalComputer)
4.3計算機分類巨型機和小巨型機(同時執(zhí)行數(shù)百萬用戶的指令,一般用于科技、國防、軍事)大中型計算機(同時執(zhí)行數(shù)萬用戶的指令,較大網(wǎng)站的服務(wù)器)小型計算機(同時執(zhí)行數(shù)百用戶的指令,一般學校,中小企業(yè)網(wǎng)絡(luò)服務(wù)器)工作站、PC機(電腦)和單片機、單板機(一般單用戶,也可執(zhí)行數(shù)用戶的指令)4.3計算機分類巨型機——主要強調(diào)的是并行計算、共享內(nèi)存,追求性能。巨型機技術(shù)
體系結(jié)構(gòu)
獲得高處理速度的主要手段之一是并行技術(shù)。一是利用流水線原理,多個不同處理站同時以流水線方式加工一批數(shù)據(jù);二是設(shè)置多個相同處理部件合作并行處理。也有的用的不是CPU,而是專用的向量處理機,主要用于計算。主機一般不直接管理I/O設(shè)備,而是通過I/O接口通道聯(lián)結(jié)前端機,由前端機完成。日本電氣公司開發(fā)出世界運算速度最快的超級計算機“SX-8”,其每秒運算次數(shù)可達58萬億次。2004年,曙光4000A成功研制,使中國成為繼美國、日本之后第三個能研制10萬億次商品化高性能計算機的國家。4.3計算機分類單片計算機則只由一片集成電路制成,其體積小,重量輕,結(jié)構(gòu)十分簡單。性能介于巨型機和單板機之間的就是大型機、中型機、小型機、工作站和微型機。它們的性能指標和結(jié)構(gòu)規(guī)模則相應的依次遞減。隨著機器計算能力越來越強,高級的低端可能會與低級的高端重疊,這些提法漸漸不用了。
2.5軟件及程序語言定義:軟件是指用來指揮計算機運行的各種程序的總和以及開發(fā)、使用和維護這些程序所需的技術(shù)資料。
軟件系統(tǒng)的主要任務(wù):提高機器的使用效率、發(fā)揮和擴大機器的功能和用途,為用戶使用計算機系統(tǒng)提供方便。軟件并不只是包括可以在計算機上運行的電腦程序,與這些電腦程序相關(guān)的文檔一般也被認為是軟件的一部分。簡單的說軟件就是程序加文檔的集合體。程序設(shè)計的最終結(jié)果是軟件軟件是用戶與硬件之間的接口界面。用戶主要是通過軟件與計算機進行交流。軟件是計算機系統(tǒng)設(shè)計的重要依據(jù)。為了方便用戶,為了使計算機系統(tǒng)具有較高的總體效用,在設(shè)計計算機系統(tǒng)時,必須全局考慮軟件與硬件的結(jié)合,以及用戶的要求和軟件的要求。軟件實體運行時,能夠提供所要求功能和性能的指令或計算機程序集合。程序能夠滿意地處理信息的數(shù)據(jù)結(jié)構(gòu)。描述程序功能需求以及程序如何操作和使用所要求的文檔。
從軟件存在形式出發(fā),發(fā)現(xiàn)軟件有以下幾個特點:1.軟件是人類智力勞動的成果,它一般存儲在磁盤上,以文本形式提供給用戶。軟件產(chǎn)品形式簡單,但是獲得它要花費若干技術(shù)人員較長的勞動時間,而且產(chǎn)品容易被復制。2.軟件必須進行維護。軟件產(chǎn)品只通過長期使用才能暴露它的隱患,只有通過維護才能使軟件適應外部工作環(huán)境,繼續(xù)工作。3.軟件不會磨損消耗,但是隨著軟硬件技術(shù)的發(fā)展,它會被功能更強,更不容易出錯的軟件所替代。4.軟件產(chǎn)品具有可移植性。為了推廣軟件,讓軟件使用的范圍更廣,絕大部分軟件能夠在不同的系統(tǒng)中使用。5.1軟件特點5.2軟件分類計算機軟件系統(tǒng)軟件操作系統(tǒng)應用軟件語言處理程序數(shù)據(jù)庫管理系統(tǒng)實用程序與工具軟件通用軟件專用軟件軟件是人們?yōu)榱烁嬖V計算機要做什么事而編寫的,是計算機能夠理解的一串指令;手機軟件(a)軟硬件層次(b)語言層次微體系結(jié)構(gòu)層(微程序或硬連邏輯)操作系統(tǒng)層語言處理層(解釋、編譯)用戶程序?qū)樱ㄕZ言編程)系統(tǒng)分析層(數(shù)學模型、算法)硬核級數(shù)字邏輯層(硬件)指令系統(tǒng)層(機器語言指令)應用語言虛擬機高級語言虛擬機匯編語言虛擬機操作系統(tǒng)虛擬機機器語言級微程序級寄存器級(硬件)系統(tǒng)軟件系統(tǒng)軟件泛指為整個計算機系統(tǒng)所配置的,不依賴于特定應用領(lǐng)域的通用性軟件,它充當硬件和應用程序之間的媒介,也是可供所有用戶使用的軟件,即可以認為系統(tǒng)軟件是為了形成一個最終用戶可接受的系統(tǒng)所要求有的全部軟件的總稱。
一般把靠近內(nèi)層、為方便使用和管理計算機資源的軟件,稱為系統(tǒng)軟件。系統(tǒng)軟件的功能:主要是簡化計算機操作,擴展計算機處理能力和提高計算機的效益。兩個主要特點:一是通用性。即無論哪個應用領(lǐng)域的計算機用戶都要用到它們;二是基礎(chǔ)性,即應用軟件要在系統(tǒng)軟件支持下編寫和運行。
系統(tǒng)軟件的核心是操作系統(tǒng)。操作系統(tǒng)是由指揮與管理計算機系統(tǒng)運行的程序模塊和數(shù)據(jù)結(jié)構(gòu)組成的一種大型軟件系統(tǒng),其功能是管理計算機的全部硬件資源和軟件資源,為用戶提供高效、周到的服務(wù)界面。沒有配備任何軟件的硬件計算機稱為裸機。裸機向外部世界提供的界面只是機器指令,為了運行令人費解且難以使用的裸機,用戶及其他程序都利用了系統(tǒng)軟件,即通過操作系統(tǒng)來使用計算機。
操作系統(tǒng)
·語言處理系統(tǒng)程序設(shè)計語言按其發(fā)展的過程和應用級別分為機器語言、匯編語言、高級語言。匯編語言也是一種面向機器的語言。
·數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)就是在具體計算機上實現(xiàn)數(shù)據(jù)庫技術(shù)的系統(tǒng)軟件,用戶用它來建立、管理、維護、使用數(shù)據(jù)庫等。
·軟件工具軟件工具是軟件開發(fā)、實施和維護過程中使用的程序。如輸入階段的編輯程序、運行階段的連接程序、測試階段的排錯程序、測試數(shù)據(jù)產(chǎn)生程序等。應用軟件
應用軟件泛指使用于各類不同應用領(lǐng)域的各種具體的應用程序及其文檔資料,即計算機用戶在各自業(yè)務(wù)領(lǐng)域中所開發(fā)與使用的程序。通常大多應用軟件是指針對某一特定的具體應用而編制成的軟件,它使計算機變得更為實用。應用軟件一般包括用戶程序及其說明性文件資料。隨著計算機應用的推廣與普及,應用軟件將會逐步地標準化、模塊化,并逐步地按功能組合成各種軟件包以方便用戶的使用。應用軟件的存在與否并不影響整個計算機系統(tǒng)的運轉(zhuǎn),但它必須在系統(tǒng)軟件的支持下才能工作。例如,WPS、Word、Excel等。計算機硬件操作系統(tǒng)其他系統(tǒng)軟件應用軟件用戶虛計算機操作系統(tǒng)的作用操作系統(tǒng)在計算機系統(tǒng)中的地位操作系統(tǒng)的地位:緊貼系統(tǒng)硬件之上,所有其他軟件之下(是其他軟件的共同環(huán)境)ROMBIOS硬盤RAM加電自檢執(zhí)行自舉程序讀執(zhí)行引導程序裝入操作系統(tǒng)裝入引導程序執(zhí)行操作系統(tǒng)出引導程序①②③④⑥⑤⑦CPU操作系統(tǒng)在計算機系統(tǒng)中的地位操作系統(tǒng)的目標有效性(系統(tǒng)管理人員的觀點):管理和分配硬件、軟件資源,合理地組織計算機的工作流程方便性(用戶的觀點):提供良好的、一致的用戶接口,彌補硬件系統(tǒng)的類型和數(shù)量差別可擴充性(系統(tǒng)開發(fā)人員的觀點):硬件的類型和規(guī)模、操作系統(tǒng)本身的功能和管理策略、多個系統(tǒng)之間的資源共享和互操作;強調(diào)系統(tǒng)的開放程度操作系統(tǒng)的作用(1)
管理硬件、軟件資源管理對象包括:CPU、存儲器、外部設(shè)備、信息(數(shù)據(jù)和軟件);管理的內(nèi)容:資源的當前狀態(tài)(數(shù)量和使用情況)、資源的分配、回收和訪問操作,相應管理策略(包括用戶權(quán)限)。操作系統(tǒng)的作用操作系統(tǒng)的作用(2)
用戶使用系統(tǒng)硬件、軟件的接口。系統(tǒng)命令(命令行、菜單式、命令腳本式、圖形用戶接口GUI);系統(tǒng)調(diào)用(形式上類似于過程調(diào)用,在應用編程中使用API)。操作系統(tǒng)的作用操作系統(tǒng)的作用(3)
OS是擴展機(extendedmachine)/虛擬機(virtualmachine)在裸機上添加功能:設(shè)備管理、文件管理、存儲管理(針對內(nèi)存和外存)、處理機管理(針對CPU);另外,為合理組織工作流程:作業(yè)管理、進程管理。操作系統(tǒng)的非形式化定義(關(guān)鍵點):系統(tǒng)軟件,程序模塊的集合,資源管理和用戶接口功能操作系統(tǒng)的作用操作系統(tǒng)舉例MSOS:MSDOS,MSWindows3.x,95,98,ME,NT,2000,XP,VESTA,win7UNIX:BSD,SRV4,OSF1,SCOUNIX,AIX,Solaris,LinuxNOS:NovellNetwareRTOS:VxWorks,pSoS,Nucleus……5.3程序設(shè)計語言
計算機語言也叫程序設(shè)計語言,是人與計算機交流和溝通的工具。計算機語言實際上就是人們與計算機打交道的一套規(guī)則,計算機所做的每一動作,每一個步驟,都是按照用計算機語言編好的程序來執(zhí)行的。所以人們要控制計算機,就一定要掌握計算機語言,這樣才能向計算機發(fā)出命令。程序設(shè)計語言
在過去的幾十年間,大量的程序設(shè)計語言被發(fā)明、被取代、被修改或組合在一起。
盡管多次試圖創(chuàng)造一種通用的程序設(shè)計語言,卻沒有一次成功。編寫程序的目的不同;程序員之間技術(shù)的差距非常大。不同程序之間的運行成本。
自然語言:人類相互交流信息所用的語言高級語言:由于當前的計算機還不具備理解自然語言的能力,于是人們希望找到一種和自然語言接近并能為計算機接受的語言,這種語言被稱為計算機的高級語言。匯編語言:符號式程序設(shè)計語言。機器語言:然而目前的通用計算機不會直接執(zhí)行用高級語言編寫的程序,因而要先將其翻譯成機器能執(zhí)行的語言,這種語言被稱為機器語言(由二進制代碼表示的指令組成)。程序設(shè)計語言B87F01BB210203D8B81F042BC3(a)機器語言程序(16進制)(b)匯編語言程序(c)高級語言程序MOVAX383MOVBX545ADDBXAXMOVAX1055SUBAXBXS=1055-(383+545)程序設(shè)計語言機器語言計算機不能識別與執(zhí)行人類的自然語言。計算機內(nèi)部存儲指令和數(shù)據(jù)是采用二進制(0、1)方式,只能識別和接受二進制信息。每一類型的計算機都分別規(guī)定了由若干個二進制位的信息(若干個“0”或“1”組成的信息)組成一條指令。例如:某種計算機(16位機)規(guī)定:1011011000000000加法指令1011010000000000減法指令。給計算機一個指令,實際上是把“16個電子開關(guān)”作為一組,使其中序號為0,2,3,5,6的開關(guān)“導通”,其它的11個開關(guān)的狀態(tài)為“截止”。這個電子電路發(fā)生的電信號使兩個數(shù)據(jù)相加。這種計算機能直接識別和執(zhí)行的二進制形式的指令稱為“機器指令”。一條機器指令產(chǎn)生一個相應的機器操作。每一種計算機都有確定的若干種(加法、減法、傳送、取數(shù)、存數(shù)等)指令,以實現(xiàn)不同的操作。機器語言不同類型的計算機的電路邏輯是不同的,因此,對不同的計算機,即使是執(zhí)行同一種操作,指令是不同的。不同的計算機有不同的指令系統(tǒng)。譬如有的計算機指令長度為16位,有的則為32位。若在A機器上的計算機語言編寫了一個程序(用機器語言),在B機器上就不能使用,需要重新編寫程序。機器語言機器語言是依賴于具體計算機的,它是“面向機器”的語言。用機器語言編寫的程序,能直接被計算機識別和執(zhí)行。但難以推廣,僅在計算機產(chǎn)生初期,專業(yè)人員才能編寫。在這一階段,人類的自然語言與計算機編程語言之間存在著巨大的鴻溝,軟件開發(fā)的難度大、周期長、功能簡單、界面不友好。機器語言匯編語言匯編語言:將機器指令映射為一些可以被人懂的助記符,如ADD(加法)、SUB(減法)等。匯編語言與人類自然語言間的鴻溝略有縮小,但與人類的思維相差甚遠。因為它的抽象層次太低,程序員仍需要考慮大量的機器細節(jié)。盡管如此,從機器語言到匯編語言,仍是一巨大進步。這意味著人與計算機的硬件系統(tǒng)不必非得使用同一種語言。程序員可以使用較適合人類思維習慣的語言,而計算機硬件系統(tǒng)仍只識別機器指令。這兩種語言之間的溝通如何實現(xiàn)呢?因此需要一種翻譯工具(軟件)。匯編語言的翻譯軟件稱為匯編程序。它將程序員寫的助記符轉(zhuǎn)換為機器指令,再由計算機識別和執(zhí)行.高級語言為解決上述缺陷,人們創(chuàng)造了一種各類計算機都能通用的、接近于人類“自然語言”和“數(shù)學語言”的程序設(shè)計語言。譬如寫出以下一條指令:C=sin(a+b)+cos(a-b)+3.6;//以上是一條接近“自然語言”(英文)和“數(shù)學語言”的指令,如果計算機能執(zhí)行這樣的指令,將為使用者提供極大的方便。這種人工創(chuàng)造的的語言稱為“高級語言”,而“機器語言”則稱為“低級語言”。所謂“低級”,指它直接貼近機器。“高級”是指離機器遠一些,不直接面向機器。高級語言是各種計算機都通用的。高級語言世界上最早出現(xiàn)的高級語言是“FORTRAN”(1954年誕生,1956年正式使用)。用于數(shù)值計算。主要目的是實現(xiàn)平臺獨立。規(guī)定使用幾十個英文單詞以及對應的操作,并規(guī)定了必須遵循的語法。計算機不能識別這種“人工語言”,需要有一個“翻譯”,把高級語言編寫的程序翻譯成用二進制形式表示的機器語言程序。這個“翻譯”工作不是由人工來完成的,而是用一個計算機軟件來實現(xiàn)的。高級語言所以,在“創(chuàng)造”一種語言的同時,必須設(shè)計出一個翻譯系統(tǒng),在運行高級語言程序之前,先將這個翻譯系統(tǒng)調(diào)入計算機內(nèi),然后讓它工作,它會將高級語言程序翻譯成機器語言程序,然后計算機執(zhí)行機器語言程序。翻譯系統(tǒng)分為兩類:解釋、編譯類高級語言雖然大多數(shù)的語言可以既可被編譯(compiled)又可被解譯(interpreted),但大多數(shù)只在一種情況下能夠良好運行。編譯:將可閱讀的程序文本(叫做源代碼)作為輸入的數(shù)據(jù),然后輸出可執(zhí)行文件(objectcode)。所輸出的可執(zhí)行文件可以是機器語言,由計算機的中央處理器直接運行,或者是某種模擬器的二進制代碼。大多數(shù)的編程語言都是編譯型。高級語言如果程序代碼是在運行時才即時翻譯,那么這種翻譯機制就被稱作解譯。經(jīng)解譯的程序運行速度往往比編譯的程序慢,但往往更具靈活性,因為它們能夠與執(zhí)行環(huán)境互相作用?!闯绦騨……目標程序n連接庫文件可執(zhí)行目標程序裝入執(zhí)行結(jié)果……c=a+b;……………moveax,[ebp+var_4]……55-8B7D8083EC385356…編譯高級語言程序的編譯、連接、裝入和執(zhí)行過程源程序1目標程序1高級語言六十年代出現(xiàn)的結(jié)構(gòu)化編程語言進一步提高了語言的層次。結(jié)構(gòu)化數(shù)據(jù)、結(jié)構(gòu)化語句、數(shù)據(jù)抽象、過程抽象等概念,使程序更便于體現(xiàn)客觀事物的結(jié)構(gòu)和邏輯含義。這使得編程語言更接近人類的自然語言。但二者之間仍有不少差距。主要問題是程序中的數(shù)據(jù)和操作分離,不能夠有效地組成與自然界中的具體事物緊密對應的程序成份。然后:面向?qū)ο?。。。抽象的進化:從地址(機器語言)到名字(匯編語言),到表達式(第一代高級語言,如Fortran),到過程和函數(shù)(第二代和早期第三代高級語言,如Pascal),最后到對象(基于對象和面向?qū)ο蟮恼Z言)。
常用高級語言
微機常用的高級程序設(shè)計語言。(1)BASIC(4)C/C++
(2)FORTRAN(5)Java
(3)PASCALVisualBasicDelphiVisualC++C++BuilderVisualFortranEclipse&JBuilderBasicObjectPascalC++C++FortranjavaWindowsOperatingSystemWinAPI(WindowsApplicationProgrammingInterface)VCC/C++CRTJVMMFCDelphiC++BuilderVBJavaVCLVBRunTimeBASIC1956年由美國的凱梅尼和卡茨在分時系統(tǒng)中創(chuàng)造,最初是一種解釋語言1975年,比爾·蓋茨創(chuàng)立的Microsoft,并成功的把Basic
語言的編譯器移植到使用Intel處理器的計算機中。icroSoft推出VB-DDE、DLL、GUI2001年VisualBasic.NET2003年推出VisualBasic.NET20032005年在VisualStudio2005內(nèi)推出VisualBasic2005兩種執(zhí)行方式:解釋方式和編譯方式FORTRANFORmulaTRAnslator產(chǎn)生于1956年1957年IBM首先配備到計算機上1966年制定兩級美國標準:基本FORTRAN和FORTRAN(FORTRAN66)FORTRAN771991年國際標準化組織制定FORTRAN90Compaq和HP合并之后,開發(fā)IntelFotran編譯器9,有l(wèi)inux和window2個版本,其windows版本為IntelVisualFortran,可以和微軟的VisualS集成。支持Fortran2003標準的編譯器行將推出PascalPASCAL語言1971。-紀念法國數(shù)學家PASCAL。1975年,國際標準化組織(ISO)對Pascal語言進行了修改,從而形成了標準Pascal語言。Delphi采用面向?qū)ο蟮腜ascal是第一個系統(tǒng)體現(xiàn)了結(jié)構(gòu)化程序設(shè)計原則的語言C語言C語言是一種結(jié)構(gòu)化語言。C語言的表現(xiàn)能力和處理能力極強。有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復雜的數(shù)據(jù)結(jié)構(gòu)。還可以直接訪問內(nèi)存的物理地址,進行位(bit)一級的操作。由于C語言實現(xiàn)了對硬件的編程操作,因此C語言集高級語言和低級語言的功能于一體。C語言還具有效率高,可移植性強等特點。廣泛地移植到了各類各型計算機上,形成了多種版本的C語言。C語言的發(fā)展歷史C語言的原型ALGOL60語言。1963年,劍橋大學將ALGOL60語言發(fā)展成為CPL語言。1970年,美國貝爾實驗室進行了修改,并起名“B語言”。并用B語言寫了第一個UNIX操作系統(tǒng)。1973年,美國貝爾實驗室在B語言的基礎(chǔ)上最終設(shè)計出了一種新的語言,C語言。C89:1988年,隨著微型計算機的日益普及,出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標準,使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C語言制定了一套ANSI標準,。C99:在ANSI標準化后,C語言的標準在一段相當?shù)臅r間內(nèi)都保持不變,。ANSI于1999年制定了一套ANSI標準,于2000年三月采用。C語言的發(fā)展歷史C語言發(fā)展迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統(tǒng)軟件,如DBASEⅢPLUS、DBASEⅣ都是由C語言編寫的。用C語言加上一些匯編語言子程序,就更能顯示C語言的優(yōu)勢,
PC-DOS、WORDSTAR等就是用這種方法編寫的。
C++C:程序=算法+數(shù)據(jù)結(jié)構(gòu)C++:對象=算法+數(shù)據(jù)結(jié)構(gòu)
程序=對象+對象+對象+對象+....+消息C++最初的版本被稱作“帶類的C(Cwithclasses)”,在1980年被第一次投入使用;當時它只支持系統(tǒng)程序設(shè)計和數(shù)據(jù)抽象技術(shù)。支持面向?qū)ο蟪绦蛟O(shè)計的語言設(shè)施在1983年被加入C++;之后,面向?qū)ο笤O(shè)計方法和面向?qū)ο蟪绦蛟O(shè)計技術(shù)就逐漸進入了C++領(lǐng)域。在1985年,C++第一次投入商業(yè)市場在1987至1989年間,支持范型程序設(shè)計的語言設(shè)施也被加進了C++。隨著若干獨立開發(fā)的C++實現(xiàn)產(chǎn)品的出現(xiàn)和廣泛應用,正式的C++標準化工作在1990年啟動。標準化工作由ANSI以及ISO負責。1998年正式發(fā)布了C++語言的國際標準[C++,1998]。通常稱作ISOC++。1998年是C++標準委員會成立的第一年,以后每5年視實際需要更新一次標準,下一次標準更新可能是2009年。至今為止沒有任何一款編譯器完全支持ISOC++C++的特點C++有著最美好的未來。用它你能寫出偉大的代碼。除了故意進行惡意欺詐,C++仍將是開發(fā)高性能、高復雜度系統(tǒng)的最好語言。據(jù)我所知,沒有那種語言能在通用性、效率和精致三方面的統(tǒng)一上可與C++相提并論。-BjarneStroustrup博士C++的特點現(xiàn)在C++由以下四個“子語言”組成:
1、C子語言。C++支持C語言的幾乎全部功能,在語法上與C語言僅有極微妙的差別。
2、面向?qū)ο蟮腃++。(類)
3、泛型編程語言。C++強大(但容易失控的)模板功能使它能在編譯期完成許多工作,從而大大提高運行期效率。(模版)
4、STL(C++標準模板庫)。隨著STL的不斷發(fā)展,它已經(jīng)逐漸成為C++程序設(shè)計中不可或缺的部分,安全性與規(guī)范性大受歡迎。(容器、迭代器、函數(shù)對象、算法)Sort(col1.begin(),col2.end(),greater<int>());//按?。笈帕蠧++應用
主流的3種操作系統(tǒng)Windows,Linux,Unix,內(nèi)核都是用C語言和匯編寫的,上層高級特性是用C++寫的。
幾乎所有的網(wǎng)絡(luò)游戲,搜索引擎,大多數(shù)軟件都是用C++。C++之父BjarneStroustrup列舉的C++應用:A:Softwareforlarge-scalee-commerceApple:OSXiswritteninamixoflanguage,butafewimportantpartsareC++.ThetwomostinterestingareAT&T:TheoprovisioningsystemsAutodesk:AlargenumberofmajornumberofapplicationintheCADdomainGSM-TDMA-CDMAmobilitygatewayGoogle:websearchengine,etc。C,C++,Fortran90compilers,andlinkerforthenewHPIA64platform(theseaddtomorethan1millionlinesofC++code).C++應用IBM:OS/400.Intel:Vtuneperformaceanalysissoftware
compilersandoptimizers
lotsofchipdesignandmanufacturingsoftwareNASA:C++onMars!Alsolotsofsupportingsoftware"ontheground"(i.e.Earth).Microsoft:WindowsXP、
Windows、Windows9x(95,98,Me)、MicrosoftOffice(Word,Excel,Access,PowerPoint,Outlook)、InternetExplorer(includingOutlookExpress)、VisualStudio、SQLMozilla:FirefoxbrowserandThunderbirdmailMySQL:MySQLServerandMySQLClusterSun:TheJavaVirtualMachineiswritteninC++1990年,Sun公司嘗試用C++開發(fā)用于消費電器中的軟件。用一個新語言O(shè)ak來解決這個問題。Oak保留了熟悉的C++語法,但省略了明確的資源引用、指針算法與操作符重載等潛在的危險特性。當Oak成熟時,Sun公司的開發(fā)小組認識到Oak非常適合Internet編程。
1994年,他們完成了一個用Oak編寫的早期Web查看器,后改名為HotJava。1995年,Oak更名為Java(為了促銷和法律原因),并在SunWorld95中發(fā)布。Java因此而誕生。從此,Java的知名度如日中天。甚至在1996年1月Java編譯器第一版發(fā)布之前,Java已經(jīng)成為Internet發(fā)行的行業(yè)標準。Java出現(xiàn)的背景Java的風格類似于C++;Java摒棄了C++中容易引發(fā)程序錯誤的地方,如指針和內(nèi)存管理;Java提供了自動內(nèi)存垃圾搜集機制,從而減輕了編程人員進行內(nèi)存管理的負擔,有助于減少軟件錯誤;Java是完全面向?qū)ο蟮?,同時它還提供了大量可重用的類庫。
Java的簡單性是以增加運行時系統(tǒng)的復雜性為代價的。以內(nèi)存管理為例,自動內(nèi)存垃圾處理減輕了面向?qū)ο缶幊痰呢摀?,但Java運行時系統(tǒng)卻必須內(nèi)嵌一個內(nèi)存管理模塊。
Java程序被編譯成一種與體系結(jié)構(gòu)無關(guān)的字節(jié)代碼,只要安裝了Java運行時系統(tǒng)Java程序可以在任意的處理器上運行,Java解釋器得到字節(jié)碼后,對它進行轉(zhuǎn)換使他能夠在不同的平臺上運行?!癢riteOnce,RunAnywhere”C#在未來5年,我們的目標就是超越今天各自為營的web站點,把internet建成一個可以相互交換組件的地方---比爾.蓋茨“#”-“sharp”簡潔的語法精心的面向?qū)ο笤O(shè)計與Web的緊密結(jié)合完整的安全性和錯誤處理靈活性和兼容性C#是一種現(xiàn)代的面向?qū)ο蟮某绦蜷_發(fā)語言,能在.net框架下開發(fā)種類豐富的應用程序,其設(shè)計的組件能用于web服務(wù),能被其它任何操作系統(tǒng)的任何編程語言調(diào)用。C#1.模塊化。不僅語言具有模塊成分,程序由模塊組成,而且語言本身的結(jié)構(gòu)也是模塊化的。2.簡明性。涉及的基本概念不多,成分簡單,結(jié)構(gòu)清晰,易學易用。3.形式化。發(fā)展合適的形式體系,以描述語言的語法、語義、語用。
程序設(shè)計語言的發(fā)展趨勢5.4程序設(shè)計語言層次體系程序語言低級語言面向過程的語言面向問題的語言查詢語言面向?qū)ο蟮恼Z言高級語言高級語言層次體系高級程序設(shè)計語言的層次體系主要分為4類(1)面向過程的語言①科學計算的語言②商用語言③多用途語言(2)面向問題的語言(3)查詢語言(4)面向?qū)ο笳Z言面向過程
所謂面向過程的程序設(shè)計是:用結(jié)構(gòu)化編程語句來編寫程序。它把一個復雜的程序分解成若干個較小的過程,每個過程都可以單獨地設(shè)計、修改、調(diào)試。其程序流程完全由程序員控制,用戶只能按照程序員設(shè)計好的程序處理問題。過程化編程模式:參數(shù)輸入-----|代碼|------結(jié)果輸出在面向過程的程序設(shè)計方法中,問題被看作一系列將被完成的任務(wù),如讀、計算和打印。許多函數(shù)用于完成這些任務(wù)。問題的焦點集中于函數(shù)。下圖顯示了一個典型的面向過程的程序結(jié)構(gòu)。分層分解的技術(shù)被用來確定一系列需要被完成的任務(wù),以解決特定的問題。
函數(shù)-算法之間關(guān)系現(xiàn)在的基本任務(wù)是編寫計算機執(zhí)行的指令序列,并把這些指令以函數(shù)的方式組織起來。當開發(fā)函數(shù)的時候,很少會去注意那些被多個函數(shù)使用的數(shù)據(jù)。在這些數(shù)據(jù)身上發(fā)生了什么事情?那些使用這些數(shù)據(jù)的函數(shù)又對它們產(chǎn)生了什么影響?程序規(guī)模的增長。程序設(shè)計的重點從重于過程設(shè)計轉(zhuǎn)向重于對數(shù)據(jù)的組織。數(shù)據(jù)和直接操作數(shù)據(jù)的一集函數(shù)合稱為一個模塊。程序設(shè)計的風格變?yōu)椋簺Q定需要那些模塊和分解程序,使得數(shù)據(jù)隱藏在不同的模塊之中
數(shù)據(jù)隱藏模塊化編程發(fā)展成為將某種類型的數(shù)據(jù)集中置于一個類型管理模塊的控制之下的編程風格。如果需要多個數(shù)據(jù)實例?允許用戶定義和內(nèi)建類型行為相似的“類型”來解決這個問題。這種“類型”通常稱為“抽象數(shù)據(jù)類型”。于是,編程風格變?yōu)椋?/p>
決定需要那些類型
為每一個類型實現(xiàn)一組完整的操作
不需要為一個類型生成多個對象的場合可以只使用數(shù)據(jù)隱藏技術(shù)。復數(shù)等算術(shù)類型是抽象數(shù)據(jù)類型的常見例子:
數(shù)據(jù)抽象classcomplex{
doubere,im;
public:
complex(doubler,doublei){re=r;im=i;}
complex(doubler){re=r;im=0;}//float->complexconversion
friendcomplexoperator+(complex,complex);
friendcompelxoperator-(complex,complex);//binaryminus
firendcomplexopeator-(complex);//unaryminus
friendcompelxoperator*(complex,complex);
friendcomplexoperator/(complex,complex);
//...
}
數(shù)據(jù)抽象沒有將各種形狀的一般性屬性和特定的專有屬性分開。對這種區(qū)分的表達和利用形成了面向?qū)ο蟮木幊獭V挥锌梢杂脕碇苯颖磉_這種區(qū)分的語言才是支持面向?qū)ο蟮?。編程的風格變?yōu)椋簺Q定需要那些對象為每一個對象提供完整的操作使用繼承明確地獲得一般性
而在不需要表達一般性的場合可以只使用數(shù)據(jù)抽象。通過繼承和虛函數(shù)可以發(fā)掘出的類型之間的共性的多少是衡量面向?qū)ο缶幊碳夹g(shù)是否適用于特定應用領(lǐng)域的核心標準。數(shù)據(jù)抽象的問題面向?qū)ο?/p>
有兩個機制在支持面向?qū)ο缶幊讨衅鹆嘶镜淖饔茫?/p>
第一個是類的繼承機制;
第二個是,當在編譯時無法確定一個對象的實際類型時,應當能夠在運行時基于對象的實際類型來決定調(diào)用的具體方法。
其中,對于方法調(diào)用機制的設(shè)計是關(guān)鍵。面向?qū)ο竺嫦驅(qū)ο蟮恼Z言包含4個基本的分支:基于Smalltalk的;包括smalltalk的5個版本,以Smalltalk-80為代表。基于C的;包括objective-C,C++,Java基于LISP的;包括Flavors,XLISP,LOOPS,CLOS基于PASCAL的。包括ObjectPascal,TurboPascal,Eiffel,Ada95面向?qū)ο蟀褦?shù)據(jù)看作程序開發(fā)中的基本元素,并且不允許它們在系統(tǒng)中自
溫馨提示
- 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年中國轉(zhuǎn)角氣缸市場調(diào)查研究報告
- 2024年03月徽商銀行成都分行2024年上半年社會招考筆試歷年參考題庫附帶答案詳解
- 2024年項目保密協(xié)議模板3篇
- 2025年LNG運輸供應鏈管理與優(yōu)化合同3篇
- 2024年貨物運輸責任協(xié)議書3篇
- 2025版現(xiàn)代農(nóng)業(yè)無人機技術(shù)授權(quán)與市場推廣合同3篇
- 2024年中國硅橡膠連續(xù)硫化生產(chǎn)線市場調(diào)查研究報告
- 2024年03月中國郵政儲蓄銀行股份有限公司蘇州市吳江區(qū)支行信用卡直銷團隊招考筆試歷年參考題庫附帶答案詳解
- 2025年度護士輪崗實習勞動合同模板3篇
- 2024年中國玻璃管感應器市場調(diào)查研究報告
- 計算機基礎(chǔ)理論-進制的概念及換算試題及答案
- 森林草原防火工作培訓課件
- 2023年婦科門診總結(jié)及計劃
- 方大重整海航方案
- 旅游酒店招商策劃案例
- 潛在供應商審核報告模版13-02
- 學校委托書:圖書館志愿者招募
- 礦山治理專項研究報告范文
- 經(jīng)典安徒生童話故事100篇
- 智慧社區(qū)建設(shè)方案利用人工智能推動社區(qū)服務(wù)
- 國家開放大學2023年7月期末統(tǒng)一試《11124流行病學》試題及答案-開放本科
評論
0/150
提交評論