版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1第二章語言設(shè)計問題感謝你的觀看2019年6月301第二章語言設(shè)計問題感謝你的觀看2019年6月302語言設(shè)計考慮的因素早期的語言設(shè)計的目標是希望程序能高效地運行于昂貴的硬件上,因此,早期語言總是以翻譯成高效的機器碼為目標,即使程序難以書寫?,F(xiàn)在,硬件價格下降、軟件價格上升,更強調(diào)程序容易書寫,即使慢點也可。例如,ML的類型特性、C++的類、Ada的包(Package)均以降低執(zhí)行速度為代價,但對保證程序正確性有幫助。開發(fā)語言時,有三個影響語言設(shè)計的主要因素:計算機本身在計算機上支持語言的執(zhí)行模型,即虛擬計算機語言所實現(xiàn)的計算模型感謝你的觀看2019年6月302語言設(shè)計考慮的因素早期的語言設(shè)計的目標是希望程序能高效地運3主要內(nèi)容計算機結(jié)構(gòu)與程序設(shè)計語言的關(guān)系結(jié)構(gòu)上的對應(yīng)關(guān)系對應(yīng)關(guān)系的實現(xiàn)手段程序的執(zhí)行模型:虛擬計算機虛擬機與程序語言實現(xiàn)的關(guān)系程序語言與虛擬機的綁定C/C++概述感謝你的觀看2019年6月303主要內(nèi)容計算機結(jié)構(gòu)與程序設(shè)計語言的關(guān)系感謝你的觀看201942.1計算機的結(jié)構(gòu)和操作一個計算機是能夠存儲和執(zhí)行程序的數(shù)據(jù)結(jié)構(gòu)和算法的集成集合。計算機可通過用電線、集成電路、電路板等構(gòu)造為實際的物理設(shè)備,此即實際計算機或稱硬件計算機。計算機也可以用運行于其他計算機上的程序(或軟件)來構(gòu)造,此即軟件仿真計算機。程序設(shè)計語言的實現(xiàn)是通過一個翻譯器,將以語言書寫的程序翻譯為機器語言程序(可被某計算機直接執(zhí)行,該計算機可以是硬件計算機,也可以為軟硬參雜的虛擬機)。感謝你的觀看2019年6月3042.1計算機的結(jié)構(gòu)和操作一個計算機是能夠存儲和執(zhí)行程序的5計算機結(jié)構(gòu)與程序設(shè)計語言一個計算機包含6個主要部件,它們與程序設(shè)計語言的主要方面有著非常密切的對應(yīng)關(guān)系。1、數(shù)據(jù):提供各種可供操作的基本數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)。2、基本操作:提供對操作數(shù)據(jù)有用的基本操作集。3、順序控制:提供控制基本操作執(zhí)行順序的機制。4、數(shù)據(jù)訪問:提供控制向操作的執(zhí)行供給數(shù)據(jù)的機制。5、存儲管理:提供控制程序和數(shù)據(jù)存儲分配的機制。6、操作環(huán)境:提供與包圍程序和被處理數(shù)據(jù)的外部環(huán)境通訊的機制。感謝你的觀看2019年6月305計算機結(jié)構(gòu)與程序設(shè)計語言一個計算機包含6個主要部件,它們與6計算機硬件包括程序和被處理的數(shù)據(jù)操作主存和高速緩存中的數(shù)據(jù)在主存和外部環(huán)境間傳遞程序或數(shù)據(jù)完成處理工作取機器指令解碼調(diào)用指定的基本操作,以指定的操作數(shù)作為輸入返回感謝你的觀看2019年6月306計算機硬件包括程序和被處理的數(shù)據(jù)操作主存和高速緩存中的數(shù)據(jù)7翻譯器和軟件仿真計算機盡管理論上有可能直接構(gòu)造硬件或固件計算機,來運行任何特殊的程序設(shè)計語言,但構(gòu)造這樣的計算機并不經(jīng)濟?,F(xiàn)實的考慮是實際計算機采用低級機器語言(基于速度、靈活性和價格考慮),編程仍以高級語言進行。語言實現(xiàn)者面臨的任務(wù)是如何使高級語言程序執(zhí)行在實際計算機上,而不必關(guān)心其機器語言是什么。這個實現(xiàn)問題有兩個基本方案。1、翻譯(編譯)2、軟件仿真(軟件解釋)感謝你的觀看2019年6月307翻譯器和軟件仿真計算機盡管理論上有可能直接構(gòu)造硬件或固件計8翻譯(編譯)翻譯過程:高級語言程序→翻譯器→等價的機器語言程序→硬件直接執(zhí)行翻譯器:源語言→等價的目標語言感謝你的觀看2019年6月308翻譯(編譯)翻譯過程:感謝你的觀看2019年6月309翻譯(編譯)幾種特殊類型的翻譯器:A、匯編器目標語言:實際計算機的機器語言源語言:匯編語言,機器語言的符號表示大多數(shù)指令是一對一的翻譯B、編譯器目標語言:匯編和機器語言源語言:高級語言C、裝配器或連接編輯器(loader/linkeditor)目標語言:實際的機器代碼源語言:幾乎與機器代碼相同,通常包含可重定位的機器語言程序和數(shù)據(jù)表(刻劃可重定位代碼為變成真正可執(zhí)行所必須修改的地方)D、預(yù)處理器或宏處理器源語言:某種高級語言的擴展形式目標語言:同樣語言的標準形式。通常進行宏替換。感謝你的觀看2019年6月309翻譯(編譯)幾種特殊類型的翻譯器:C、裝配器或連接編輯器(10翻譯(編譯)高級源語言到可執(zhí)行機器語言的翻譯通常涉及多個翻譯步驟,有時,編譯的某些步驟本身也涉及多遍,如:多遍掃描。感謝你的觀看2019年6月3010翻譯(編譯)高級源語言到可執(zhí)行機器語言的翻譯通常涉及多個11軟件仿真(軟件解釋)我們可以通過運行在一臺宿主機上的程序仿真另一臺以高級語言為機器語言的計算機。用宿主機的機器語言構(gòu)造一個程序集(表達高級語言執(zhí)行必需的算法和數(shù)據(jù)結(jié)構(gòu)),即用軟件構(gòu)造運行于宿主機上的高級語言計算機,稱為高級語言計算機在宿主機上的軟件仿真(或軟件解釋)。仿真計算機接受高級語言程序作為輸入,主仿真器程序完成解釋算法(解碼并執(zhí)行語言),最后從程序產(chǎn)生輸出。感謝你的觀看2019年6月3011軟件仿真(軟件解釋)我們可以通過運行在一臺宿主機上的程序12軟件仿真和翻譯軟件仿真和翻譯的不同:均以高級語言程序為輸入,但是,翻譯為目標碼后再運行于實際計算機上仿真計算機直接執(zhí)行輸入程序翻譯器以物理輸入順序處理程序語句,每個語句只處理一次。仿真器以邏輯控制流處理程序,可能重復(fù)處理某些語句而完全忽略其他語句。純粹的翻譯和純粹的仿真形成兩個極端全翻譯是很少的,除了輸入語言和輸出語言非常相似,如匯編語言。全仿真也非常少,除了操作系統(tǒng)控制語言或交互式語言情形。感謝你的觀看2019年6月3012軟件仿真和翻譯軟件仿真和翻譯的不同:感謝你的觀看201913軟件仿真和翻譯通常,語言實現(xiàn)是二者的結(jié)合:感謝你的觀看2019年6月3013軟件仿真和翻譯通常,語言實現(xiàn)是二者的結(jié)合:感謝你的觀看214軟件仿真和翻譯翻譯和仿真各有不同優(yōu)點有的程序結(jié)構(gòu)最好翻譯成更簡單的形式,——如循環(huán)中語句多次執(zhí)行,翻譯可省去解碼時間。有的方面最好保持原有形式,在執(zhí)行時根據(jù)需要處理。翻譯的主要缺點是失去了關(guān)于程序的一些信息。單個的高級語言語句比單條機器語言指令含有更多信息。仿真的優(yōu)缺點基本正好相反。不需要太多的空間來存儲代碼序列的多份拷貝。但解碼代價高。通常,如源語言結(jié)構(gòu)在目標語言中有直接表示,則代碼擴展不太嚴重,可采用翻譯。其他情形,可采用仿真。感謝你的觀看2019年6月3014軟件仿真和翻譯翻譯和仿真各有不同優(yōu)點感謝你的觀看201915軟件仿真和翻譯—語言劃分程序執(zhí)行時的基本表示是否為實際機器的機器語言,成了語言劃分的基礎(chǔ)。1、編譯型語言。如:C、C++、Fortran、Ada等源語言翻成機器碼,仿真僅限于一些運行支持例程(用于仿真源語言中和機器語言沒有緊密類似的基本操作)。通過硬件解釋器,可實現(xiàn)更快的程序執(zhí)行。當然,也可能有的部分仍采用軟件仿真,如數(shù)據(jù)控制結(jié)構(gòu)和存儲管理。2、解釋型語言。如:LISP、ML、Prolog、Smalltalk等翻譯器不是產(chǎn)生機器代碼,而是產(chǎn)生某種中間形式,比源語言更易執(zhí)行。然后使用軟件解釋器對中間代碼進行執(zhí)行。通常執(zhí)行慢,也需要對基本操作、存儲管理和其他語言特性的仿真,這類語言翻譯器很簡單,更多的復(fù)雜性在軟件仿真。返回感謝你的觀看2019年6月3015軟件仿真和翻譯—語言劃分程序執(zhí)行時的基本表示是否為實162.2虛擬計算機和綁定時間計算機的構(gòu)造方式1、通過硬件實現(xiàn),直接使用物理設(shè)備2、固件實現(xiàn),在合適的硬件計算機上使用微程序設(shè)計3、軟件仿真,在宿主機上用某種語言實現(xiàn)4、上述技術(shù)的組合,各自選擇合適的實現(xiàn)方式當一個程序設(shè)計語言被實現(xiàn)后,程序執(zhí)行時所使用的運行時數(shù)據(jù)結(jié)構(gòu)和算法定義了一個計算機。我們稱其為由語言實現(xiàn)定義的虛擬計算機。感謝你的觀看2019年6月30162.2虛擬計算機和綁定時間計算機的構(gòu)造方式感謝你的觀看17虛擬計算機虛擬機的機器語言是該語言的翻譯器產(chǎn)生的可執(zhí)行程序(形式:對編譯是實際的機器碼形式;對解釋是某種任意結(jié)構(gòu));其數(shù)據(jù)結(jié)構(gòu)是程序運行時使用的運行時數(shù)據(jù)結(jié)構(gòu);基本操作是那些運行時實際可執(zhí)行的;順序控制、數(shù)據(jù)控制和存貯管理結(jié)構(gòu)也是那些運行時使用的,不管其是用軟件、硬件、還是用微程序表示的。感謝你的觀看2019年6月3017虛擬計算機虛擬機的機器語言是該語言的翻譯器產(chǎn)生的可執(zhí)行程18虛擬機和語言實現(xiàn)(1/3)語言定義隱含地刻劃了一個虛擬機。如果語言用它們的虛擬機來定義,使得每個語言和一個共同理解的虛擬機相關(guān)聯(lián),則使用虛擬機來描述語言的語義是直接的。語言在不同計算機上的每次實現(xiàn),實現(xiàn)者都會從語言定義中看到略微(或非常)不同的虛擬機。同一語言的兩個不同實現(xiàn),可能使用不同的數(shù)據(jù)結(jié)構(gòu)和操作集合(特別是在語法中隱藏的部分)。每個實現(xiàn)者有很大自由度確定自己的虛擬機結(jié)構(gòu),這些是他的語言實現(xiàn)的基礎(chǔ)。感謝你的觀看2019年6月3018虛擬機和語言實現(xiàn)(1/3)語言定義隱含地刻劃了一個虛擬19虛擬機和語言實現(xiàn)(2/3)當語言在一特定計算機上實現(xiàn)時,實現(xiàn)者首先確定表示語言的語義解釋的虛擬機,然后通過基本計算機提供的軟、硬件元素來構(gòu)造虛擬機。語言實現(xiàn)的組織和結(jié)構(gòu)由實現(xiàn)者的許多細微決策確定,需考慮計算機各種軟、硬件設(shè)施和使用代價。例:虛擬機如有整數(shù)加和平方根操作,則整數(shù)加可直接用硬件提供的整數(shù)加來實現(xiàn),平方根可用軟件仿真,使用一個子程序。感謝你的觀看2019年6月3019虛擬機和語言實現(xiàn)(2/3)當語言在一特定計算機上實現(xiàn)時20虛擬機和語言實現(xiàn)(3/3)三個因素導(dǎo)致相同語言的不同實現(xiàn)1、實現(xiàn)者虛擬機概念的不同(隱含在語言定義中)2、宿主機提供的設(shè)施的不同3、實現(xiàn)者如何用宿主機提供的設(shè)施仿真虛擬機元素的選擇和如何去構(gòu)造翻譯器支持這些虛擬機選擇的不同。實現(xiàn)者還需確定什么通過翻譯處理?什么在執(zhí)行中解決?返回感謝你的觀看2019年6月3020虛擬機和語言實現(xiàn)(3/3)三個因素導(dǎo)致相同語言的不同實21綁定和綁定時間不嚴格地說,一個程序元素到某特定特征或性質(zhì)的綁定,僅是從一個可能性質(zhì)的集合中性質(zhì)的簡單選擇。決定這個選擇的程序陳述或處理的時間稱為性質(zhì)對元素的綁定時間。語言中有不同的綁定和不同的綁定時間。綁定時間的類型對綁定類型沒有簡單的分類,但可區(qū)分出一些主要的綁定時間。這里,我們基于一個基本假設(shè):程序的處理總是先翻譯,后執(zhí)行。感謝你的觀看2019年6月3021綁定和綁定時間不嚴格地說,一個程序元素到某特定特征或性質(zhì)22綁定時間(1/4)1、執(zhí)行時(運行時)很多綁定是在程序執(zhí)行過程中完成的。如:變量到值的綁定,變量到特定存儲位置的綁定(在很多語言中)。進一步可分為:a.進入子程序或塊時。大多數(shù)語言中,重要的綁定只限制發(fā)生在執(zhí)行中進入子程序或塊時,如C、Fortran中形參到實參、以及形參到特定存儲位置的綁定。b.在執(zhí)行中的任意點。某些綁定可以發(fā)生在程序執(zhí)行中的任意點,如:變量通過賦值到值的綁定,以及在LISP、ML中,名字到存儲位置的綁定。感謝你的觀看2019年6月3022綁定時間(1/4)1、執(zhí)行時(運行時)感謝你的觀看2023綁定時間(2/4)2、翻譯時(編譯時)綁定,可進而分為三種:a.程序員選定的綁定寫程序時,程序員有很多關(guān)于變量名、變量類型、程序語句結(jié)構(gòu)等選擇的決定,這些決定代表了翻譯的綁定,語言翻譯器使用這些綁定確定目標程序的最終形式。b.翻譯器選擇的綁定有些綁定由翻譯器決定,沒有直接的程序員規(guī)約。如:數(shù)據(jù)對象在為某過程分配的存儲區(qū)域中的相對位置(程序員不知道也不關(guān)心),數(shù)組如何存儲,數(shù)組描述子如何創(chuàng)建等。不同的語言實現(xiàn)可能以不同方式提供這些特性。c.裝配器選定的綁定(鏈接時)程序通常包含幾個子程序,這些子程序被合并為一個可執(zhí)行程序。翻譯器決定變量到每個子程序中存儲地址的綁定,這些存儲必須被分配物理機中的實際地址。感謝你的觀看2019年6月3023綁定時間(2/4)2、翻譯時(編譯時)綁定,可進而分為24綁定時間(3/4)3、語言實現(xiàn)時語言定義的某些方面可能對所有運行于同一語言實現(xiàn)上的程序均是相同的,但可能由于語言實現(xiàn)不同而不相同。如:通常和數(shù)的表示以及算術(shù)操作的表示相關(guān)的細節(jié)由底層硬件機進行算術(shù)的方式確定。以某語言編寫的程序,如果使用了在實現(xiàn)時固定的特性,則不一定可以在該語言的另一種實現(xiàn)上運行,即使運行也可能有不同執(zhí)行結(jié)果。感謝你的觀看2019年6月3024綁定時間(3/4)3、語言實現(xiàn)時感謝你的觀看2019年25綁定時間(4/4)4、語言定義時語言的大多數(shù)結(jié)構(gòu)是在語言定義時固定的(對程序員寫程序時可用的規(guī)約)。如:對程序員可以使用的選擇語句形式、數(shù)據(jù)結(jié)構(gòu)類型、程序結(jié)構(gòu)等。感謝你的觀看2019年6月3025綁定時間(4/4)4、語言定義時感謝你的觀看2019年26綁定和綁定時間(例子)考慮下面簡單例子:X:=X+10,假定該語言為L,則需考慮的綁定和綁字時間如下:1、變量X的可能類型的集合變量X在語句中通常和某類型相關(guān)聯(lián),如實數(shù)、整數(shù)、布爾,X的允許類型集合通常在語言定義時固定,如類型只能是:實數(shù),整數(shù),布爾,集合,字符等。此外,語言可能允許程序定義新類型,此時X的類型綁定在翻譯時固定。2、X的類型通常在翻譯時固定,通過顯式的聲明語句,如:FloatX。有些語言,如Smalltalk、Prolog,類型綁定在運行時完成(無類型、弱類型語言)。感謝你的觀看2019年6月3026綁定和綁定時間(例子)考慮下面簡單例子:X:=X+10,27綁定和綁定時間(例子)3、變量X的可能值的集合如X類型為real,則其值集為實數(shù),真實集應(yīng)為定義語言的虛擬機可表示和操作的實數(shù),通常是可方便地在硬件機上表示和操作的實數(shù)。這樣,X的可能值集在語言實現(xiàn)時確定,也可能是在裝載時根據(jù)執(zhí)行程序的硬件機確定。4、變量X的值在執(zhí)行中某點,一特定值被約束到X。通常值是在執(zhí)行時通過對X的賦值而確定的。5、常量10的表示整數(shù)10的表示作為程序中的常量,使用串‘10’;執(zhí)行時,表示為位串。程序中十進制的選擇通常在語言定義時決定(10也可能為2#的2),而特殊位串的選擇是語言實現(xiàn)時決定。感謝你的觀看2019年6月3027綁定和綁定時間(例子)3、變量X的可能值的集合感謝你的觀28綁定和綁定時間(例子)6、操作符+的性質(zhì)符號+代表加法是在語言定義時確定。然而,+可以被重載(實數(shù)、整數(shù)、復(fù)數(shù)加等,根據(jù)語境確定)。在編譯型語言中,在編譯時確定,通常根據(jù)操作數(shù)類型判定。+的詳細定義依賴于底層硬件機。如X=2^49,則X+10可能在某一機器上沒有定義,因此,+的定義是在語言實現(xiàn)時確定,根據(jù)底層硬件機的定義。這樣:+表示加法在語言定義時定,每個加法操作在語言實現(xiàn)時定,符號+被綁定到特定加法操作是在翻譯時,每個特定加法對特定操作數(shù)的值在運行時定。感謝你的觀看2019年6月3028綁定和綁定時間(例子)6、操作符+的性質(zhì)感謝你的觀看2029綁定時間的重要性語言中許多重要而微妙的不同是由于綁定時間的不同。在分析和比較語言時,需要常問的問題是:翻譯時做,還是執(zhí)行時做?例如:幾乎每個語言均允許數(shù)作為數(shù)據(jù),并允許在其上的算術(shù)操作,但并不是每個語言均適合涉及大量算術(shù)編程問題。ML和Fortran,均允許建立和操作數(shù)值的數(shù)組,但ML不適合于求解需大數(shù)組和大量算術(shù)的問題,而Fortran是合適的。原因:ML中,程序中大多數(shù)綁定是在執(zhí)行時,需要大量執(zhí)行時間來創(chuàng)建和消除綁定。Fortran中,大多數(shù)綁定是在編譯時,相同綁定的大部分在編譯時做一次,很少的工作在運行時完成,因此,執(zhí)行更為高效。感謝你的觀看2019年6月3029綁定時間的重要性語言中許多重要而微妙的不同是由于綁定時間30綁定時間的重要性(續(xù))反過來,為什么Fortran不適合于處理串,而ML更容易?原因也在于綁定時間。Fortran中大多數(shù)綁定在翻譯時完成,即在輸入數(shù)據(jù)被知道前,這樣它對執(zhí)行時有不同數(shù)據(jù)形式的情況不太合適,F(xiàn)ortran中串的大小和變量類型需在編譯時確定。ML可在執(zhí)行中延遲到輸入數(shù)據(jù)已被檢查,且綁定已確定時,才確定大小和類型。這兩種不同綁定分為早綁定(early)和晚綁定(late)。二者的優(yōu)、缺點圍繞的沖突是:效率和靈活性,如二者均需考慮,則應(yīng)提供選擇的靈活性,如Ada。感謝你的觀看2019年6月3030綁定時間的重要性(續(xù))反過來,為什么Fortran不適31綁定時間和語言實現(xiàn)語言定義通常允許指定綁定時間。設(shè)計語言時,通常希望某特定綁定可在翻譯時完成。但實際的綁定時間只能在語言實現(xiàn)時決定。如:Pascal設(shè)計為允許變量類型在編譯時確定,但某種實現(xiàn)可以允許在執(zhí)行時作類型檢查。通常,一個語言設(shè)計指定綁定可能發(fā)生的最早時間,但很多實現(xiàn)事實上延遲這些綁定。然而,通常同一語言的大多數(shù)實現(xiàn)在相同時間完成大多數(shù)和綁定。如果一個語言設(shè)計為允許編譯時綁定,則延遲綁定將導(dǎo)致低效,還不一定取得太多的靈活性。需要注意的是,通常語言中很小的變化會導(dǎo)致綁定時間的大變化,如:Fortran90允許遞歸,就修改了很多重要特性的綁定時間,因為綁定時間是實現(xiàn)依賴的。感謝你的觀看2019年6月3031綁定時間和語言實現(xiàn)語言定義通常允許指定綁定時間。感謝你的32C語言概述C是由AT&T貝爾電話實驗室的DennisRitchie和KenThompson在1972年開發(fā)出來的開發(fā)C語言是為了在DECPDP-11上開發(fā)UNIX操作系統(tǒng)。UNIX在那個時候還是一個很“小”的操作系統(tǒng),是為了和MIT和GE的大型操作系統(tǒng)Multics競爭。C更像一個環(huán)境,而不僅僅是一種簡單的語言:C語言C預(yù)處理器(#include,#if,...)C的接口假定(.h包含文件)C庫(“內(nèi)置”函數(shù),如printf,malloc,...)感謝你的觀看2019年6月3032C語言概述C是由AT&T貝爾電話實驗室的Denni33C語言的程序結(jié)構(gòu)C語言程序是由一序列過程和全局聲明構(gòu)成的每個過程包含局部聲明、命令語句(它們可以調(diào)用其它過程)大多數(shù)數(shù)據(jù)都是整型數(shù)據(jù),這極大程度地保證了靈活性,因為差不多所有東西都可以看成是一個整數(shù)。如今,C和C++在某種程度上已經(jīng)成為開發(fā)系統(tǒng)軟件(如操作系統(tǒng)、編譯器、應(yīng)用程序、視頻游戲等)的主要程序設(shè)計語言。感謝你的觀看2019年6月3033C語言的程序結(jié)構(gòu)C語言程序是由一序列過程和全局聲明構(gòu)34C語言程序的例子1#include<stdio.h>2constintmaxsize=9;3main()4 {inta[maxsize];5intj,k;6while((k=convert(getchar()))!=0){7for(j=0;j<k;j++)a[j]=convert(getchar());8for(j=0;j<k;j++)printf("%d",a[j]);9printf(";SUM=%d\n",addition(a,k));10while(getchar()!='\n');}}11/*Functionconvertsubprogram*/12intconvert(charch){returnch-'0';}13/*Functionadditionsubprogram*/14intaddition(v,n)15intv[],n;16{intsum,j;17sum=0;18for(j=0;j<n;j++)sum=sum+v[j];19returnsum;}感謝你的觀看2019年6月3034C語言程序的例子1#include35C語言程序的例子1#include
<stdio.h>2constintmaxsize=9;3main()4 {inta[maxsize];5intj,k;6while((k=convert(getchar()))!=0){7for(j=0;j<k;j++)a[j]=convert(getchar());8for(j=0;j<k;j++)printf("%d",a[j]);9printf(";SUM=%d\n",addition(a,k));10while(getchar()!='\n');}}11/*Functionconvertsubprogram*/12intconvert(charch){returnch-'0';}13/*Functionadditionsubprogram*/14intaddition(v,n)15intv[],n;16{intsum,j;17sum=0;18for(j=0;j<n;j++)sum=sum+v[j];19returnsum;}ClanguageCpreprocessorCinterfaceassumptions
Clibrary感謝你的觀看2019年6月3035C語言程序的例子1#include36C++概述由AT&T的BjarneStroustrup在1986年開發(fā),它是C語言的一種擴展。C++基本上包括了C的所有東西(包括好的和壞的特征)增加了強類型目標是在保持C語言執(zhí)行的高效性的同時,增加新的特征C++增加了類的概念(借鑒了Simula中的相關(guān)概念,它是由Algol擴展而來的一種模擬語言)。數(shù)據(jù)定義成類的局部屬性函數(shù)(方法)可以訪問局部數(shù)據(jù)實現(xiàn)了類的繼承概念感謝你的觀看2019年6月3036C++概述由AT&T的BjarneStrous37C++語言程序的例子1#include<stream.h>2classDataConvert{3protected:intconvert(ch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工消防安全工作總結(jié)(6篇)
- 污染治理產(chǎn)業(yè)政策研究-洞察分析
- 休閑時間分配與生活滿意度-洞察分析
- 無線鼠標技術(shù)發(fā)展-洞察分析
- 網(wǎng)絡(luò)安全技術(shù)創(chuàng)新-第5篇-洞察分析
- 游戲版權(quán)保護策略-洞察分析
- 微種植體支抗的骨整合機制-洞察分析
- 應(yīng)急響應(yīng)與處置能力建設(shè)-洞察分析
- 網(wǎng)絡(luò)安全法律法規(guī)-第16篇-洞察分析
- 《真核生物真菌》課件
- 2024年上海市六年高考英語作文試題真題匯編(含范文)
- 計算機程序設(shè)計員國家職業(yè)資格三級高級操作技能考核輔導(dǎo)課件
- 《延遲焦化介紹》課件
- 起重機械安全技術(shù)規(guī)程(TSG-51-2023)宣貫解讀課件
- 長沙市湖南師大附中生物八年級上冊期末試卷含答案
- 智能化實驗室建設(shè)方案
- 師德師風(fēng)自評情況對照《新時代高校教師職業(yè)行為十項準則》
- 醫(yī)療器械安全生產(chǎn)培訓(xùn)
- 2023年電池Pack結(jié)構(gòu)設(shè)計工程師年度總結(jié)及下年規(guī)劃
- 《科技改善生活》主題班會教案內(nèi)容
- 2022年湖南工商大學(xué)數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)《計算機網(wǎng)絡(luò)》科目期末試卷A(有答案)
評論
0/150
提交評論