計(jì)算機(jī)器-圖靈機(jī) - DRIVEHQ_第1頁(yè)
計(jì)算機(jī)器-圖靈機(jī) - DRIVEHQ_第2頁(yè)
計(jì)算機(jī)器-圖靈機(jī) - DRIVEHQ_第3頁(yè)
計(jì)算機(jī)器-圖靈機(jī) - DRIVEHQ_第4頁(yè)
計(jì)算機(jī)器-圖靈機(jī) - DRIVEHQ_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

CPU的基本部件CPU

*計(jì)算機(jī)的基本模型有兩個(gè)部件

內(nèi)存

?存儲(chǔ)需要處理的數(shù)據(jù)

.存儲(chǔ)處理好的數(shù)據(jù).I

?存儲(chǔ)程序內(nèi)存

CPU

執(zhí)行存儲(chǔ)在內(nèi)存中的程序,把需要

處理的數(shù)據(jù)變換成所期望的新格式

或內(nèi)容(處理好的數(shù)據(jù))

結(jié)構(gòu)比內(nèi)存復(fù)雜得多

2012年12月12日MachineStructure

CPU的基本部件

親CPU究竟需要哪些部件?

CPU的工作:執(zhí)行程序(program)

程序:一系列的指令(instruction)

?指令:對(duì)一個(gè)或多個(gè)數(shù)進(jìn)行某個(gè)操作

讓工作的第

②二0CPU

告訴它操作和操作

數(shù)的信息

CPU只認(rèn)識(shí)二進(jìn)制數(shù)

操作數(shù)操作

(operand)(operator)把指令編碼成二進(jìn)

制數(shù)

2012年12月12日MachineStructure3

1,

CPU的基本部件

*指令編碼

編碼操作

餅常用操作個(gè)數(shù):20-30個(gè)

用4.5位二進(jìn)制數(shù)即可編碼

2012年12月12日MachineStructure4

CPU的基本部件

*指令編碼

編碼操作數(shù)

?操作數(shù)存儲(chǔ)在內(nèi)存中

*內(nèi)存用地址索引

分用地址編碼操作數(shù)?.

32位平臺(tái),地址一般是32位.

?3操作數(shù)指令的話(huà),地址要32*3二96位!

?現(xiàn)代內(nèi)存相對(duì)于現(xiàn)代CPU的速度來(lái)說(shuō)也太慢了

玲把操作數(shù)放到快而小的存儲(chǔ)空間

玲指令中只編碼一個(gè)地址

2012年12月12日MachineStructure

CPU的基本部件

*指令編碼

編碼操作數(shù)

標(biāo)操作數(shù)放在哪里?

.比較小,可以用很短的地址編碼

?非常快,和CPU的計(jì)算速度相當(dāng)

?要快,就要??!

少寄存器(register)

2012年12月12日MachineStructure6

CPU的基本部件

*指令編碼

寄存器(register)

?CPU中存放操作數(shù)的空間

內(nèi)存

??。阂话悴怀^(guò)32個(gè)

??快:一般一個(gè)CPU周期可訪問(wèn)多次(2到10多次)

I編碼操作數(shù)

?編碼寄存器的地址

?32個(gè)寄存器須用5位二進(jìn)制編碼,3個(gè)操作數(shù)需要

3*5二15位二進(jìn)制數(shù)

2012年12月12日MachineStructure

CPU的基本部件

*指令編碼

寄存器中的數(shù)從何而來(lái)?

數(shù)據(jù)總是存儲(chǔ)在內(nèi)存中的少數(shù)據(jù)必須從內(nèi)存讀

內(nèi)存訪問(wèn)指令:只編碼一個(gè)地址

?RISC類(lèi)CPU甚至只編碼半個(gè)地址,一個(gè)32位地址須

由兩條指令裝載到寄存器并拼接而成

CPU需要內(nèi)存訪問(wèn)單元(memoryunit)

內(nèi)存

2012年12月12日MachineStructure8

CPU的基本部件

警指令所指定的操作需要執(zhí)行

CPU需要有執(zhí)行部件

不同功能的執(zhí)行部件有不同的名字

?ALU:算術(shù)邏輯單元(執(zhí)行整數(shù)算術(shù)邏輯運(yùn)算)

?FPU:浮點(diǎn)單元(執(zhí)行浮點(diǎn)運(yùn)算)

為何ALU/FPU要接到MU上?

CPU

ALU1.CISC類(lèi)CPU允許指令使

燒用內(nèi)存操作數(shù)

MU2,現(xiàn)代CPU為優(yōu)化執(zhí)行速

度而這么設(shè)計(jì)

2012年12月12日MachineStructure(

CPU的基本部件

*指令也必須從內(nèi)存中讀取

存儲(chǔ)程序今取指部件(instructionfetch)

IF要讀內(nèi)存,連上MU?

9較老的CPU是這么設(shè)計(jì)的

少較新的CPU其MU被分裂

成多個(gè)部件以提高速度

2012年12月12日MachineStructure10

CPU的基本部件

弟指令從哪個(gè)內(nèi)存單元取?

IP/PC

InstructionPointer,ProgramCounter

ALU

寄每次取到指令后,IP/PC自動(dòng)加

FPU

存適當(dāng)?shù)闹抵赶蛳乱粭l指令

少分支指令怎么辦?

2012年12月12日

11

MachineStructure

CPU的基本部件

槃控制器(ControlUnit)

控制指令執(zhí)行過(guò)程,協(xié)調(diào)各部件工作

CPUALU

寄FPU

CPU核心邏輯,

最難設(shè)計(jì)的部分。

IF

CU

PC設(shè)計(jì)優(yōu)劣直接影

響CPU的性能。

2012年12月12日MachineStructure12

指令執(zhí)行過(guò)程

警第一步:取指

把IP/PC的值交給MU

CPU

MU讀到指令給IF寄

IP/PC增加,指向下一存

條指令

2012年12月12日MachineStructure13

指令執(zhí)行過(guò)程

麋第三步:運(yùn)算

執(zhí)行指令所指定的運(yùn)算

42

—r3

2012年12月12日MachineStructure

指令執(zhí)行過(guò)程

?…V.

親第四步:內(nèi)存訪問(wèn)

如果是要讀寫(xiě)內(nèi)存的指令:讀寫(xiě)內(nèi)存

如果不是?玲暫停等待一周期,或跳過(guò)

Hadd;r1,;r2jr3

2012年12月12日MachineStructure16

指令執(zhí)行過(guò)程

麋第五步:寫(xiě)回

把結(jié)果寫(xiě)回寄存器

2012年12月12日MachineStructure17

MlPS的指令執(zhí)行

uS」

oA

-」SA

ooJ

l_

D,trs6sO

uuEI

l①U

sL(a

uUCD

-DL

」U

+4

..:?

警簡(jiǎn)化表示IlFtchlDcd|Exec|Mem|WB

1$

2012年12月12日MachineStructure18

程序的執(zhí)行

款程序是多條指令的序列

MachineStructure19

加速程序執(zhí)行的方法

?流水線(xiàn)(pipeline)

一流水線(xiàn)是工業(yè)化生產(chǎn)的重要概念

?極大地提高了勞動(dòng)生產(chǎn)率

?也可以提高CPU部件的“勞動(dòng)生產(chǎn)率”

流水線(xiàn)為什么有效?

指令執(zhí)行各步驟占用的部件不同

玲如果各步驟串行進(jìn)行,則大部分部件在大部

分時(shí)間都空閑

少各步驟并行,讓各部件都忙起來(lái)

2012年12月12日MachineStructure20

加速指令執(zhí)行的方法

*指令執(zhí)行各步驟部件占用情況

第一步:取指

*IP/PC,MU,IF

>第二步:譯碼

?寄存器

赧第三步:運(yùn)算

?ALU/FPU

第四步:內(nèi)存訪問(wèn)

,MU

第五步:寫(xiě)回

?寄存器

2012年12月12日MachineStructure21

加速指令執(zhí)行的方法

一條指令執(zhí)行中占用資源情況

第一條指令開(kāi)始譯碼的時(shí)候,取指的資源已經(jīng)空閑

9此時(shí)已經(jīng)可以開(kāi)始取第二條指令了

ALU

FPU

CU

PC

2012年12月12日MachineStructure22

加速指令執(zhí)行的方法

*指令流水線(xiàn)

加速指令執(zhí)行的方法

警周期(cycle)

指令執(zhí)行一步所需要的時(shí)間

要使用流水線(xiàn)技術(shù),各不同步驟的執(zhí)行時(shí)間必須

相同:都是一周期

在同一個(gè)周期,有多條指令在流水線(xiàn)中

每條指令在不同的執(zhí)行步驟,占用不同的部件

2012年12月12日MachineStructure24

加速指令執(zhí)行的方法

警流水線(xiàn)的性能

例:執(zhí)行10條指令,每指令5步驟,每步驟

一周期

少不用流水線(xiàn):5*10=50周期

個(gè)5級(jí)流水線(xiàn):10+(5-1)=14周期

加速比:50/14=3.57

?流水線(xiàn)的理論最高加速比二級(jí)數(shù)

?指令數(shù)越多,加速比越高

?無(wú)限多條指令分加速比二級(jí)數(shù)

?一條指令??f加速比為1f不能加速!

2012年12月12日MachineStructure25

加速指令執(zhí)行的方法

桑流水線(xiàn)的性能

指令的延遲(latency)

事執(zhí)行一條指令所需時(shí)間

*流水線(xiàn)不能減少單條指令的延遲

?流水線(xiàn)可以減少程序的延遲

指令的產(chǎn)出(throughput)

?單位時(shí)間內(nèi)系統(tǒng)處理的指令數(shù)

流水線(xiàn)可以增加指令的產(chǎn)出

2012年12月12日MachineStructure26

加速指令執(zhí)行的方法

麋流水線(xiàn)問(wèn)題

結(jié)構(gòu)競(jìng)爭(zhēng):同一個(gè)周期使用相同的部件

?1.內(nèi)存訪問(wèn)競(jìng)爭(zhēng)

1$D$

1$

1$

2012年12月12日MachineStructure27

加速指令執(zhí)行的方法

*內(nèi)存訪問(wèn)競(jìng)爭(zhēng)存ALU

器FPU

在同一個(gè)周期,需要

同時(shí)讀取數(shù)據(jù)和指令

少用兩個(gè)不同的內(nèi)存:

DSP、嵌入式CPU等

玲用兩個(gè)高速緩存

(cache):通用CPU

L2Cache

CPU控制核心

設(shè)計(jì)難點(diǎn)rwi

內(nèi)存

2012年12月12日MachineStructure28

存ALU

親寄存器訪問(wèn)競(jìng)爭(zhēng)器

FPU

給寄存器加高速緩存?

,不現(xiàn)實(shí)

Load/StoreIF

寄存器非??霵Ccu

.單個(gè)周期可以完成一次讀

和一次寫(xiě)

分前半個(gè)周期寫(xiě),后半個(gè)周D-Cachel-Cache

期讀

3為何寫(xiě)在前?

?寫(xiě)操作是在前面的指令L2Cache

執(zhí)行的

?寄存器很小MU

?可以做多個(gè)讀端口內(nèi)存

2012年12月12日MachineStructure30

機(jī)器語(yǔ)百與匯編語(yǔ)百

琳CPU只能識(shí)別二進(jìn)制數(shù)

把指令編碼成二進(jìn)制數(shù)

編碼操作、操作數(shù)和其它信息

?機(jī)器語(yǔ)言

2012年12月12日MachineStructure31

機(jī)器語(yǔ)言與匯編語(yǔ)言

警MIPS的機(jī)器語(yǔ)言例

32位

655556

opcodersrtrdshamtfunct

opcode:操作碼funct:操作碼第二部分

rs:SourceRegisterrt:TargetRegister

rd:DestinationRegistershamt:移位位數(shù)

2012年12月12日MachineStructure32

機(jī)器語(yǔ)百與匯編語(yǔ)百

?MIPS的機(jī)器語(yǔ)言例

add$8,$9,$10

opcode二0(查表)

funct二32(查表)

(操作數(shù)1)|

rs二9

rt二10(操作數(shù)2)

rd二8(目的操作數(shù))

shamt二0(非移位指令)

2012年12月12日MachineStructure33

機(jī)器語(yǔ)言與匯編語(yǔ)言

警MIPS的機(jī)器語(yǔ)言例

add$8,$9,$10

十進(jìn)制表示:

二進(jìn)制表示:

OOOOOO01001010100100000000100000

機(jī)器語(yǔ)言指令

MIPS還有其它格式的指令

2012年12月12日MachineStructure

機(jī)器語(yǔ)后與匯編語(yǔ)后

警機(jī)器語(yǔ)言適合CPU使用,但不適合程序員

人類(lèi)對(duì)長(zhǎng)串的數(shù)字不敏感

?但對(duì)符號(hào)敏感

玲用符號(hào)表示指令的各種信息

?北二編語(yǔ)言

2012年12月12日MachineStructure35

機(jī)器語(yǔ)后與匯編語(yǔ)后

親匯編語(yǔ)言(assembly)

機(jī)器指令與匯編指令一一對(duì)應(yīng)

9在機(jī)器語(yǔ)言需要讓人看的時(shí)候,常常實(shí)際使用

匯編語(yǔ)言4

;使用與機(jī)器語(yǔ)言相同的概念

)?操作,操作數(shù),……

*允許使用名字來(lái)索引變量

?比地址方便得多

2012年12月12日MachineStructure36

機(jī)器語(yǔ)言與匯編語(yǔ)言

橐MIPS的匯編語(yǔ)言

操作操作數(shù)(寄存器)

add$8,$9,$10

II

add$0~$31(32個(gè)寄存器)

sub

beq

2012年12月12日MachineStructure37

機(jī)器語(yǔ)后與匯編語(yǔ)后

親匯編語(yǔ)言程序設(shè)計(jì)

f用匯編語(yǔ)言寫(xiě)程序

*可以有最高的效率(如果程序員合格)

比之機(jī)器語(yǔ)言前進(jìn)了一大步

T,被稱(chēng)為第二代程序設(shè)計(jì)語(yǔ)言

*問(wèn)題

?機(jī)器指令相對(duì)簡(jiǎn)單

?程序員希望用較復(fù)雜的表達(dá)式I

?與硬件相關(guān)

?移植到不同的CPU非常不方便

2012年12月12日MachineStructure38

程序語(yǔ)言

槃什么力是適合程序設(shè)計(jì)的語(yǔ)言?

接近人類(lèi)的思維特性

?看起來(lái)象人類(lèi)語(yǔ)言

?分學(xué)習(xí)較容易

機(jī)器無(wú)關(guān)

少同一個(gè)程序可以在不同硬件運(yùn)行

少無(wú)需學(xué)習(xí)機(jī)器相關(guān)內(nèi)容

.如果不關(guān)注最佳性能的話(huà)

程序語(yǔ)言

2012年12月12日MachineStructure39

程序語(yǔ)言

?計(jì)算機(jī)如何執(zhí)行程序語(yǔ)言程序?

解釋(interpret)

*逐條讀取程序語(yǔ)句并立即執(zhí)行

橐各種script:.bat,.vbs,.js,.py,

由解釋器處理(interpreter)

翻譯(translate)

*把程序語(yǔ)言程序翻譯成機(jī)器程序■

C/C++,FORTRAN,Pascal,..

?由編譯器處理(Compiler)I

?為何一1般不叫translator?

?不僅僅是翻譯的工作

2012年12月12日MachineStructure40

程序語(yǔ)后

親為何解釋和編譯都存在?

<各有優(yōu)缺點(diǎn)

解釋

無(wú)需專(zhuān)門(mén)開(kāi)發(fā)工具,易于擴(kuò)充,靈活性大,升級(jí)

解釋器就可以改善所有已有程序

?執(zhí)行效率低I

編譯.JI

?執(zhí)行效率IRJ

開(kāi)發(fā)較復(fù)雜,不便擴(kuò)充,編譯程序升級(jí)后所有現(xiàn)

有程序必須重新編譯才能得到更新

2012年12月12日MachineStructure41

程序語(yǔ)言

槃程序語(yǔ)言設(shè)計(jì)原則

盡可能接近人的思維習(xí)慣

*為何不用自然語(yǔ)言?

玲目前的計(jì)算機(jī)軟硬件平臺(tái)還不能很好地理解自

然語(yǔ)言

少程序語(yǔ)言是機(jī)器思維與人類(lèi)思維之間的折衷

機(jī)器思維人類(lèi)思維

機(jī)器語(yǔ)言匯編語(yǔ)言程序語(yǔ)言自然語(yǔ)言

2012年12月12日MachineStructure42

程序語(yǔ)言

槃程序語(yǔ)言設(shè)計(jì)原則

越接近自然語(yǔ)言

更容易被程序員使用,更容易學(xué)習(xí),程序設(shè)計(jì)效

率高

更遠(yuǎn)離計(jì)算機(jī)設(shè)計(jì)原理,更難以被計(jì)算機(jī)有效處

卜理,執(zhí)行效率低

?越接近機(jī)器語(yǔ)言

事更容易被計(jì)算機(jī)處理,執(zhí)行效率高

更難使用,程序設(shè)計(jì)效率低

2012年12月12日MachineStructure43

程序語(yǔ)言

槃早期程序語(yǔ)言

強(qiáng)調(diào)執(zhí)行效率

?一次設(shè)計(jì),多次運(yùn)行

運(yùn)行時(shí)間遠(yuǎn)多于設(shè)計(jì)時(shí)間

?機(jī)器慢、少,任務(wù)多

?程序少,一般由專(zhuān)業(yè)人員設(shè)計(jì)

?FORTRAN

?很容易被翻譯成高效率的機(jī)器程序

?不太容易使用

2012年12月12日MachineStructure44

程序語(yǔ)言

*現(xiàn)代程序語(yǔ)言

有側(cè)重各方面因素的語(yǔ)言

現(xiàn)代計(jì)算機(jī)已經(jīng)非???,對(duì)很多任務(wù)已經(jīng)可以不

考慮執(zhí)行效率■

少程序語(yǔ)言可以考慮其它方面的因素

.設(shè)計(jì)效率,可移植性,……

■?各種面向?qū)ο蟪绦蛘Z(yǔ)言,Java,...

?現(xiàn)代軟件技術(shù)可以兼顧多個(gè)因素

?較大范圍內(nèi)都適用的程序語(yǔ)言及其開(kāi)發(fā)工具

?結(jié)合C++的-些開(kāi)發(fā)工具

2012年12月12日MachineStructure45

程序語(yǔ)后

警程序語(yǔ)言對(duì)計(jì)算機(jī)設(shè)計(jì)思想的影響

程序語(yǔ)言出現(xiàn)后,迅速替代匯編語(yǔ)言成為程

序設(shè)計(jì)的主要語(yǔ)言

■令計(jì)算機(jī)必須針對(duì)程序語(yǔ)言?xún)?yōu)化?!

復(fù)雜指令集計(jì)算機(jī)(CISC:ComplexInstruction

SetComputer)

?復(fù)雜的指令:盡量向程序語(yǔ)言的語(yǔ)句靠攏,I

?完備的指令:盡量實(shí)現(xiàn)程序語(yǔ)言使用的所有語(yǔ)句

?正父指令集

少編譯優(yōu)化技術(shù)尚不完善,不能很好優(yōu)化程序

少主要用硬件設(shè)計(jì)填補(bǔ)程序語(yǔ)言和硬件間的差異

2012年12月12日MachineStructure46

程序語(yǔ)言

*程序語(yǔ)言對(duì)計(jì)算機(jī)設(shè)計(jì)思想的影響

精簡(jiǎn)指令集(RISC:ReducedInstruction

SetComputer)

只實(shí)現(xiàn)少數(shù)必須的指令,利用編譯優(yōu)化技術(shù)生成

優(yōu)化的程序、

?指令數(shù)量少,簡(jiǎn)單,可以編碼成等長(zhǎng)格式

?3可以實(shí)現(xiàn)得非???/p>

玲主要用編譯器填補(bǔ)程序語(yǔ)言和硬件間的差異

2012年12月12日MachineStructure47

程序語(yǔ)言

?RISCvs.CISC結(jié)果

RISC支持者開(kāi)發(fā)了大量的優(yōu)化指令執(zhí)行速度

的技術(shù)

高速緩存,深度流水線(xiàn),分支預(yù)測(cè),寄存器重命

名,超標(biāo)量,亂序執(zhí)行……

RISC支持者開(kāi)發(fā)了大量的編譯優(yōu)化技術(shù)

循環(huán)展開(kāi),軟件流水,相關(guān)分析……

CISC支持者把這些技術(shù)都用上了

“偽CISC”:不再以指令集為目標(biāo)

x86依靠“事實(shí)上的工業(yè)標(biāo)準(zhǔn)”獲得了空前成功

2012年12月12日MachineStructure48

程序語(yǔ)言

麋現(xiàn)代計(jì)算機(jī)開(kāi)發(fā)模式

馨軟件和硬件結(jié)合考慮

同時(shí)設(shè)計(jì)硬件和編譯器,并照顧操作系統(tǒng)的

需要

研Q究熱點(diǎn):指令級(jí)并行j|I

程序語(yǔ)言改變了整個(gè)計(jì)算機(jī)產(chǎn)業(yè)

?2012年12月12日Structure

程序語(yǔ)言

集程序語(yǔ)言類(lèi)型

說(shuō)明型(例:Prolog)

程序員描述程序的問(wèn)題本身,而不是解決問(wèn)題的

算法

I?對(duì)簡(jiǎn)單的問(wèn)題:描述問(wèn)題本身比算法更麻煩,

?對(duì)復(fù)雜的問(wèn)題:現(xiàn)有硬件必須要用特定的算法才能解

決,通用解決算法難以勝任

說(shuō)明型程序語(yǔ)言只在較窄的范圍使用

2012年12月12日MachineStructure50

程序語(yǔ)言要素

?語(yǔ)句(statement)

r構(gòu)成程序的原子

聲明語(yǔ)句(declarativestatement)

程序的規(guī)格說(shuō)明:數(shù)據(jù)類(lèi)型,參數(shù),..

命令語(yǔ)句(imperativestatement)

橐程序的算法說(shuō)明

注釋(comment)

2012年12月12日MachineStructure52

程序語(yǔ)言要素

?變量(variable)與數(shù)據(jù)類(lèi)型(type)

變量:在程序執(zhí)行過(guò)程中可以改變的量

?用于存儲(chǔ)各類(lèi)信息

事是對(duì)內(nèi)存的抽象

用名索引,不必使用地址索引

暴有類(lèi)型

?不同類(lèi)型有不同的運(yùn)算

?不兼容類(lèi)型之間不能進(jìn)行運(yùn)算

?例:float*string

2012年12月12日MachineStructure53

程序語(yǔ)言要素

款基本數(shù)據(jù)類(lèi)型(primitivedatatype)

編譯器缺省支持的數(shù)據(jù)類(lèi)型

intfloatchar...

某些語(yǔ)言還有string

奈數(shù)據(jù)結(jié)構(gòu)(datastructure)

*由基本數(shù)據(jù)類(lèi)型組成的有結(jié)構(gòu)的數(shù)據(jù)類(lèi)型

?數(shù)組(array)

結(jié)構(gòu)(structure)

2012年12月12日MachineStructure54

程序語(yǔ)言要素

?數(shù)組(array)

.一系列相同類(lèi)型的數(shù)據(jù)

定義

intRooms[10];

引用

Rooms[0101;

MyRoomRooms[5];

2012年12月12日MachineStructure55

程序語(yǔ)言要素

?結(jié)構(gòu)(structure)

馨由不同類(lèi)型的數(shù)據(jù)組成的數(shù)據(jù)類(lèi)型

一*又叫異構(gòu)數(shù)組(heterogeneousarray)

structTZoomlnfo

intID;合理劃分程序的所有

floatw,h;數(shù)據(jù)為恰當(dāng)?shù)慕Y(jié)構(gòu)會(huì)

極大簡(jiǎn)化程序設(shè)計(jì)

TZoomlnfoMyZoom;

MyZoom.lD=110;

2012年12月12日MachineStructure56

程序語(yǔ)言要素

?字面量(literal)

在程序語(yǔ)言中,其值等于其文字串的本來(lái)含

義的量—

?與變量相對(duì):表示變量的文字串是其名字,其值

和名字無(wú)關(guān),在程序中還可以改變

例:整數(shù)650,字符串〃Smith"

常量(constant)

嫌給字面量的名字

constintRoomNo=517;

2012年12月12日MachineStructure57

程序語(yǔ)言要素

警運(yùn)算

處理數(shù)據(jù)所需要的操作

四則運(yùn)算+-*/

邏輯運(yùn)算&&|!!■

關(guān)系運(yùn)算==!=><>=<=

?位運(yùn)算&

計(jì)算機(jī)硬件特有的運(yùn)算,但在很多算法中有很大

的用處,所以很多程序語(yǔ)言都有

2012年12月12日MachineStructure58

程序語(yǔ)言要素

親運(yùn)算

賦值運(yùn)算=

一把一個(gè)表達(dá)式的值賦給某個(gè)變量

注意與相等關(guān)系的區(qū)別

??=才是相等關(guān)系運(yùn)算■

事與數(shù)學(xué)上使用的二有所不同

?某些語(yǔ)言使用不同的符號(hào)

?Pascal:=

?APLQ

2012年12月12日MachineStructure

程序語(yǔ)言要素

槃控缶I結(jié)構(gòu)

程序有各種不同的執(zhí)行順序

順序(sequence)

分支(branch)

循環(huán)(loop)

必須有不同的控制語(yǔ)句(controlstatement)

if(…)switch(...)for

case1:}

else

case2:

2012年12月12日MachineStructure60

程序語(yǔ)言要素

?過(guò)程(procedure)與函數(shù)(function)

人類(lèi)解決復(fù)雜問(wèn)題的方法:分治(divide&

conquer)

分解成多個(gè)較小的問(wèn)題,然后逐一解決,最后把

小問(wèn)題的解拼接成大問(wèn)題的解

少程序語(yǔ)言也必須有類(lèi)似的功能

?過(guò)程與函數(shù),

程序語(yǔ)言中非常重要的概念,極大地方便了程序

設(shè)計(jì)

2012年12月12日MachineStructure61

程序語(yǔ)言要素

程序過(guò)程/函數(shù)

警過(guò)程與函數(shù)

把程序總的任務(wù)分解成多個(gè)

/[、的部分,然后逐一解決每

個(gè)小問(wèn)題,再把小問(wèn)題的解

?拼接

溫馨提示

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

評(píng)論

0/150

提交評(píng)論