編程基礎(chǔ)第一課:計(jì)算機(jī)原理及編程概念

姓名:王紫圣? ? 學(xué)號:16130140355

轉(zhuǎn)載自:STEAM解密

【嵌牛導(dǎo)讀】盡管計(jì)算機(jī)技術(shù)自20世紀(jì)40年代第一部電子通用計(jì)算機(jī)誕生以來以來有了令人目眩的飛速發(fā)展夷陋,但是今天計(jì)算機(jī)仍然基本上采用的是存儲程序結(jié)構(gòu),即馮·諾伊曼結(jié)構(gòu)寄雀。這個結(jié)構(gòu)實(shí)現(xiàn)了實(shí)用化的通用計(jì)算機(jī)。

存儲程序結(jié)構(gòu)將一部計(jì)算機(jī)描述成四個主要部分:算術(shù)邏輯單元、控制電路倔撞、存儲器及輸入輸出設(shè)備。這些部件通過一組一組的排線連接(特別地慕趴,當(dāng)一組線被用于多種不同意圖的數(shù)據(jù)傳輸時(shí)又被稱為總線)痪蝇,并且由一個時(shí)鐘來驅(qū)動(當(dāng)然某些其他事件也可能驅(qū)動控制電路)鄙陡。

【嵌牛鼻子】計(jì)算機(jī)原理

【嵌牛提問】計(jì)算機(jī)是如何通過二進(jìn)制實(shí)現(xiàn)那么多功能的?

【嵌牛正文】概念上講,一部計(jì)算機(jī)的存儲器可以被視為一組“細(xì)胞”單元躏啰。每一個“細(xì)胞”都有一個編號趁矾,稱為地址;又都可以存儲一個較小的定長信息给僵。這個信息既可以是指令(告訴計(jì)算機(jī)去做什么)毫捣,也可以是數(shù)據(jù)(指令的處理對象)。原則上想际,每一個“細(xì)胞”都是可以存儲二者之任一的培漏。

算術(shù)邏輯單元(ALU)可以被稱作計(jì)算機(jī)的大腦。它可以做兩類運(yùn)算: 第一類是算術(shù)運(yùn)算胡本,比如對兩個數(shù)字進(jìn)行加減法牌柄。算術(shù)運(yùn)算部件的功能在ALU中是十分有限的,事實(shí)上侧甫, 一些ALU根本不支持電路級的乘法和除法運(yùn)算(由是用戶只能通過編程進(jìn)行乘除法運(yùn)算)珊佣。第二類是比較運(yùn)算,即給定兩個數(shù)披粟, ALU對其進(jìn)行比較以確定哪個更大一些咒锻。

輸入輸出系統(tǒng)是計(jì)算機(jī)從外部世界接收信息和向外部世界反饋運(yùn)算結(jié)果的手段。對于一部標(biāo)準(zhǔn)的個人電腦守屉,輸入設(shè)備主要有鍵盤和鼠標(biāo)惑艇,輸出設(shè)備則是顯示器、打印機(jī)以及其他許多后文將要討論的可連接到計(jì)算機(jī)上的I/O設(shè)備拇泛。

控制系統(tǒng)將以上計(jì)算機(jī)各部分聯(lián)系起來滨巴。它的功能是從存儲器和輸入輸出設(shè)備中讀取指令和數(shù)據(jù),對指令進(jìn)行解碼俺叭, 并向ALU交付匹配指令要求的正確輸入恭取,告知ALU對這些數(shù)據(jù)做哪些運(yùn)算并將結(jié)果數(shù)據(jù)返回到何處∠ㄊ兀控制系統(tǒng)中一個重要組件就是一個用來保持跟蹤當(dāng)前指令所在地址的計(jì)數(shù)器蜈垮。 通常這個計(jì)數(shù)器隨著指令的執(zhí)行而累加,但有時(shí)如果指令指示進(jìn)行跳轉(zhuǎn)則不依此規(guī)則裕照。

20世紀(jì)80年代以來ALU和控制單元(二者合稱中央處理器)逐漸被集成到一塊集成電路上攒发,稱作微處理器。 這類計(jì)算機(jī)的工作模式十分直觀:在一個時(shí)鐘周期內(nèi)晋南,計(jì)算機(jī)先從存儲器中獲取指令和數(shù)據(jù)晨继,然后執(zhí)行指令,存儲數(shù)據(jù)搬俊,再獲取下一條指令紊扬。這個過程被反復(fù)執(zhí)行,直至得到一個終止指令唉擂。

由控制器解釋餐屎,運(yùn)算器執(zhí)行的指令集是一個精心定義的數(shù)目十分有限的簡單指令集合。一般可以分為四類:

1)玩祟、數(shù)據(jù)移動 (如:將一個數(shù)值從存儲單元A拷貝到存儲單元B)

2)腹缩、數(shù)邏運(yùn)算(如:計(jì)算存儲單元A與存儲單元B之和,結(jié)果返回存儲單元C)3)空扎、 條件驗(yàn)證(如:如果存儲單元A內(nèi)數(shù)值為100藏鹊,則下一條指令地址為存儲單元F)

4)、指令序列改易(如:下一條指令地址為存儲單元F)

指令如同數(shù)據(jù)一樣在計(jì)算機(jī)內(nèi)部是以二進(jìn)制來表示的转锈。比如說盘寡,10110000就是一條Intel x86系列微處理器的拷貝指令代碼。

某一個計(jì)算機(jī)所支持的指令集就是該計(jì)算機(jī)的機(jī)器語言撮慨。因此竿痰,使用流行的機(jī)器語言將會使既成軟件在一部新計(jì)算機(jī)上運(yùn)行得更加容易。所以對于那些機(jī)型商業(yè)化軟件開發(fā)的人來說砌溺,它們通常只會關(guān)注一種或幾種不同的機(jī)器語言影涉。

更加強(qiáng)大的小型計(jì)算機(jī),大型計(jì)算機(jī)和服務(wù)器可能會與上述計(jì)算機(jī)有所不同规伐。它們通常將任務(wù)分擔(dān)給不同的CPU來執(zhí)行蟹倾。今天, 微處理器和多核個人電腦也在朝這個方向發(fā)展猖闪。

超級計(jì)算機(jī)通常有著與基本的存儲程序計(jì)算機(jī)顯著區(qū)別的體系結(jié)構(gòu)鲜棠。它們通常有著數(shù)以千計(jì)的CPU, 不過這些設(shè)計(jì)似乎只對特定任務(wù)有用萧朝。在各種計(jì)算機(jī)中岔留,還有一些微控制器采用令程序和數(shù)據(jù)分離的哈佛架構(gòu)(Harvard architecture)。

程序設(shè)計(jì)往往以某種程序設(shè)計(jì)語言為工具检柬,給出這種語言下的程序献联。

程序設(shè)計(jì)過程應(yīng)包括分析、設(shè)計(jì)何址、編碼里逆、測試、除錯等不同階段用爪。

在計(jì)算機(jī)技術(shù)發(fā)展的早期原押,軟件開發(fā)主要就是程序設(shè)計(jì)。但隨著技術(shù)的發(fā)展偎血,軟件系統(tǒng)越來越復(fù)雜诸衔,逐漸分化出許多專用的軟件系統(tǒng)盯漂,如操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)笨农、應(yīng)用服務(wù)器就缆,而且這些專用的軟件系統(tǒng)愈來愈成為普遍的系統(tǒng)環(huán)境的一部分。這種情況下軟件開發(fā)的內(nèi)容越來越豐富谒亦,不再只是純粹的程序設(shè)計(jì)竭宰,還包括數(shù)據(jù)庫設(shè)計(jì)、用戶界面設(shè)計(jì)份招、通信協(xié)議設(shè)計(jì)和復(fù)雜的系統(tǒng)配置過程切揭。

專業(yè)的程序設(shè)計(jì)人員被稱為程序員。某種意義上锁摔,程序設(shè)計(jì)的出現(xiàn)甚至早于電子計(jì)算機(jī)的出現(xiàn)廓旬。英國著名詩人拜倫的女兒愛達(dá)·勒芙蕾絲曾設(shè)計(jì)了巴貝奇分析機(jī)上計(jì)算伯努利數(shù)的一個程序。她甚至還創(chuàng)建了循環(huán)和子程序的概念鄙漏。由于她在程序設(shè)計(jì)上的突破性創(chuàng)新嗤谚,愛達(dá)·勒芙蕾絲被稱為世界上第一位程序員。

任何設(shè)計(jì)工作都是在各種條件限制和相互矛盾的需求之間尋求一種平衡怔蚌。這種觀點(diǎn)反映在程序設(shè)計(jì)上巩步,就是硬件存儲空間與程序運(yùn)行時(shí)間的限制。

空間方面桦踊,在計(jì)算機(jī)技術(shù)發(fā)展的早期椅野,由于機(jī)器資源比較昂貴,如何縮小存儲空間往往是設(shè)計(jì)關(guān)心的首要重點(diǎn)籍胯;而隨著硬件技術(shù)的飛速發(fā)展竟闪,電腦上數(shù)據(jù)存儲媒體的價(jià)格降低,空間不再是考慮的第一要點(diǎn)杖狼,一些較耗時(shí)的運(yùn)算也漸漸發(fā)展出以空間換取時(shí)間的模式炼蛤。

時(shí)間方面,在早期蝶涩,如何加強(qiáng)程序效率理朋、縮短程序運(yùn)行時(shí)間是程序員的共同目標(biāo);而在硬件性能進(jìn)步绿聘、效率差距縮小嗽上,軟件規(guī)模與復(fù)雜度卻日益增加的現(xiàn)在,程序的結(jié)構(gòu)熄攘、可維護(hù)性鳞尔、重復(fù)使用性县匠、彈性等因素更顯得重要掩驱。在多人合作的程序設(shè)計(jì)項(xiàng)目里,程序員們會加上各種注解以協(xié)助其他參與者理解代碼逐沙,此行為雖然對運(yùn)行時(shí)間的縮短沒有幫助,還會加重存儲空間的負(fù)擔(dān)惯殊,但卻因能達(dá)到較好的溝通并提高代碼的可維護(hù)性酱吝,而成為目前的主流。

然而土思,隨著智能手機(jī)等攜帶設(shè)備的興起,運(yùn)行時(shí)間的縮短與存儲空間的有效運(yùn)用再次成為焦點(diǎn)忆嗜,形成與主機(jī)服務(wù)器類型應(yīng)用程序不同的重點(diǎn)考慮方向己儒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捆毫,隨后出現(xiàn)的幾起案子闪湾,更是在濱河造成了極大的恐慌,老刑警劉巖绩卤,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件途样,死亡現(xiàn)場離奇詭異,居然都是意外死亡濒憋,警方通過查閱死者的電腦和手機(jī)何暇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凛驮,“玉大人裆站,你說我怎么就攤上這事∏玻” “怎么了宏胯?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長本姥。 經(jīng)常有香客問我肩袍,道長,這世上最難降的妖魔是什么婚惫? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任氛赐,我火速辦了婚禮,結(jié)果婚禮上辰妙,老公的妹妹穿的比我還像新娘鹰祸。我一直安慰自己,他們只是感情好密浑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布蛙婴。 她就那樣靜靜地躺著,像睡著了一般尔破。 火紅的嫁衣襯著肌膚如雪街图。 梳的紋絲不亂的頭發(fā)上浇衬,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機(jī)與錄音餐济,去河邊找鬼耘擂。 笑死,一個胖子當(dāng)著我的面吹牛絮姆,可吹牛的內(nèi)容都是我干的醉冤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼篙悯,長吁一口氣:“原來是場噩夢啊……” “哼蚁阳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸽照,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤螺捐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后矮燎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體定血,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年诞外,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了澜沟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡浅乔,死狀恐怖倔喂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情靖苇,我是刑警寧澤席噩,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站贤壁,受9級特大地震影響悼枢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脾拆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一馒索、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧名船,春花似錦绰上、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春百揭,著一層夾襖步出監(jiān)牢的瞬間爽哎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工器一, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留课锌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓祈秕,卻偏偏與公主長得像渺贤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子请毛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容