其實(shí)程序的運(yùn)行不就和眼前的滾滾長(zhǎng)江水一樣嗎?流動(dòng)的長(zhǎng)江水必然有其源頭以及盡頭。長(zhǎng)江水在流經(jīng)不同地貌時(shí),會(huì)產(chǎn)生很多的支流,不同的支流又會(huì)分化出諸多小支流。支流中有些繞過(guò)一段河道后又重新匯入長(zhǎng)江,有些則成了一潭死水。
如果從江水的源頭與盡頭看,我們可以粗略地認(rèn)為長(zhǎng)江是以直線的運(yùn)動(dòng)軌跡川流不息??纯撮L(zhǎng)江的各個(gè)支流,我們可以說(shuō)這是長(zhǎng)江的流動(dòng)分支。再瞧瞧江水繞過(guò)的各個(gè)灣灣碼頭,這不是在循環(huán)往復(fù)嗎?
再看看程序的運(yùn)行,不也是一樣嗎。整體上看,程序從上往下依次執(zhí)行,再執(zhí)行過(guò)程中根據(jù)不同條件分化出諸多的節(jié)點(diǎn),有些節(jié)點(diǎn)執(zhí)行一次即可,有些節(jié)點(diǎn)需要執(zhí)行多次,有些節(jié)點(diǎn)則直接跳過(guò)。
至此,程序的框架終于清晰了,再結(jié)合書本專業(yè)知識(shí),我們總算弄通了程序是怎么運(yùn)行的。
程序是由順序結(jié)構(gòu),分支結(jié)構(gòu)以及循環(huán)結(jié)構(gòu)組成的。如果對(duì)匯編語(yǔ)言有所了解或者熟悉C語(yǔ)言goto關(guān)鍵字的用法,我們甚至可以說(shuō)程序語(yǔ)言只有一種結(jié)構(gòu),那就是跳轉(zhuǎn)結(jié)構(gòu)。再深入一點(diǎn),若理解了指針的概念,同時(shí)懂得一點(diǎn)計(jì)算機(jī)的組成原理,我們滿可以說(shuō),程序的本質(zhì)就是通過(guò)合理地規(guī)劃內(nèi)存,最大限度發(fā)揮計(jì)算機(jī)內(nèi)部各功能模塊的性能。