免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
計(jì)算機(jī)科學(xué)與技術(shù)

程序和指令

程序是為了完成某項(xiàng)任務(wù)(例如聊天、聽音樂)而使用某種編程語(yǔ)言(例如C/C++)編寫的一組指令序列。

而指令是計(jì)算機(jī)程序控制的最小單位,由操作碼和操作數(shù)組成,操作碼是計(jì)算機(jī)要執(zhí)行什么操作,例如加減乘除操作,而操作數(shù)具體執(zhí)行的對(duì)象,具體的數(shù)據(jù)以及數(shù)據(jù)的位置。

所有指令的集合稱為指令系統(tǒng),常見的PC機(jī)指令系統(tǒng)有Intel X86指令集,常見的手機(jī)指令系統(tǒng)有ARM,因此手機(jī)上的程序不加修改是不能直接在PC機(jī)上運(yùn)行,因?yàn)椴煌闹噶罴遣患嫒莸摹?/p>

那么計(jì)算機(jī)是如何處理程序的?

根據(jù)馮諾依曼計(jì)算機(jī)結(jié)構(gòu)的原理,計(jì)算機(jī)的工作流程大致如下

當(dāng)用戶從計(jì)算機(jī)中打開程序時(shí)(鼠標(biāo)點(diǎn)擊桌面的快捷方式圖標(biāo)),程序開始執(zhí)行。

操作系統(tǒng)將程序的指令和相關(guān)的數(shù)據(jù)傳送到內(nèi)存中。

CPU根據(jù)程序內(nèi)容從內(nèi)存中讀取指令。

CPU分析、處理指令,并為下一條指令做準(zhǔn)備,如果有涉及到調(diào)用硬件資源(例如調(diào)用聲卡播放音樂)的指令,操作系統(tǒng)會(huì)通過調(diào)用對(duì)應(yīng)的硬件驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)調(diào)用硬件的功能。

CPU取下一條指令并分析、處理,如此重復(fù)操作,直到執(zhí)行完程序中的全部指令,最后將計(jì)算的結(jié)果放到指令指定的存儲(chǔ)器地址中。

計(jì)算機(jī)編程語(yǔ)言發(fā)展史

計(jì)算機(jī)已經(jīng)成為人類大腦的延伸,成為不可或缺的一部分。而算法是計(jì)算機(jī)的靈魂,編程語(yǔ)言是塑造計(jì)算機(jī)靈魂的工具。讓計(jì)算機(jī)具備'靈魂',可以按照人的意志運(yùn)行,甚至某天按照計(jì)算機(jī)自己的意志運(yùn)行,其核心就是算法。

計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言經(jīng)歷了機(jī)器語(yǔ)言到匯編語(yǔ)言和高級(jí)程序設(shè)計(jì)語(yǔ)言三個(gè)階段,其特點(diǎn)是使得程序員用編程語(yǔ)言開發(fā)、測(cè)試、部署應(yīng)用程序越來(lái)越方便、高效。但是是以犧牲效率為代價(jià),但是隨著計(jì)算機(jī)硬件的快速發(fā)展,絕大多數(shù)應(yīng)用場(chǎng)景的效率損失可以忽略不計(jì)。

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

計(jì)算機(jī)發(fā)展的最早期,程序員編寫程序采用二進(jìn)制的指令(010010101)來(lái)實(shí)現(xiàn)的,而每種CPU都有各自不同的指令系統(tǒng)(SPARC/Intel X86/ARM),因此在不同的機(jī)器上使用不同的機(jī)器語(yǔ)言實(shí)現(xiàn)。其特點(diǎn)是性能特別高效,而面向機(jī)器編程也就意味著不能移植,需要手動(dòng)處理底層硬件的差異性,而且二進(jìn)制的指令難以理解和維護(hù)。

  • 匯編語(yǔ)言

隨著時(shí)代和計(jì)算機(jī)技術(shù)的發(fā)展,匯編語(yǔ)言和編譯器的出現(xiàn)解決了機(jī)器語(yǔ)言需要記住非常多的二進(jìn)制機(jī)器指令的難題,但是還是沒有從根本上解決移植性的問題,只是將機(jī)器指令轉(zhuǎn)換為易懂的英文單詞,然后由編譯器編譯成機(jī)器指令,因?yàn)橛?jì)算機(jī)終歸揭底只能識(shí)別二進(jìn)制的0001110100110機(jī)器指令,而且匯編語(yǔ)言是面向機(jī)器的,不同機(jī)器(SPARC/Intel X86/ARM)的匯編指令是不相同的。盡管如此匯編語(yǔ)言目前仍然在工業(yè)電子編程、軟件的加密解密和計(jì)算機(jī)病毒分析等場(chǎng)景廣泛使用。

  • 高級(jí)程序設(shè)計(jì)語(yǔ)言

高級(jí)程序設(shè)計(jì)語(yǔ)言的高級(jí)之處體現(xiàn)在開發(fā)人員在編寫程序時(shí)無(wú)需關(guān)心計(jì)算機(jī)底層硬件差異而只需要專注于業(yè)務(wù)模塊實(shí)現(xiàn)即可。而且相對(duì)于機(jī)器語(yǔ)言、匯編語(yǔ)言而言,高級(jí)語(yǔ)言學(xué)習(xí)起來(lái)更加容易,因此會(huì)有更加充足的人力資源,也更容易開發(fā)大型商業(yè)軟件,例如Windows、macOS、Linux等操作系統(tǒng)都是使用C/C++實(shí)現(xiàn)。國(guó)內(nèi)的阿里巴巴在電商、物流、金融、支付領(lǐng)域大量使用Java實(shí)現(xiàn)。

計(jì)算機(jī)語(yǔ)言應(yīng)用場(chǎng)景

如果想知道目前主流的編程語(yǔ)言有哪些,可以訪問tiobe 首頁(yè)獲取編程語(yǔ)言排行榜。

2019年12月編程語(yǔ)言排行榜Top20

根據(jù)Tiobe排行榜得知,Java/C/Python分別排在前三名, 隨后緊跟著C++,C#,JavaScript等等。

每種編程語(yǔ)言都有自己擅長(zhǎng)的應(yīng)用場(chǎng)景。

編程語(yǔ)言及其應(yīng)用場(chǎng)景

那么如果你作為初學(xué)者,面對(duì)如此之多的編程語(yǔ)言,到底應(yīng)該先從哪門語(yǔ)言上車呢?如果你想深入的學(xué)習(xí)其他語(yǔ)言和架構(gòu)相關(guān)的知識(shí)之前建議熟練掌握C語(yǔ)言。因?yàn)镃++/Java/C#等編程語(yǔ)言都模仿了C語(yǔ)言。無(wú)論哪種語(yǔ)言,都是實(shí)現(xiàn)目標(biāo)的工具,而不是目標(biāo)本身。

而不出意外的話,我的Devops 頭條號(hào)會(huì)覆蓋上述的十種編程語(yǔ)言,目的是實(shí)現(xiàn)全平臺(tái)(Windows,Linux,macOS)應(yīng)用開發(fā)、測(cè)試、部署。感興趣的同學(xué)可以關(guān)注。

程序的編譯和解釋

由于高級(jí)編程語(yǔ)言和計(jì)算機(jī)底層語(yǔ)言是互不相通的,計(jì)算機(jī)最底層只能識(shí)別01010這種二進(jìn)制的機(jī)器指令,因此需要使用工具進(jìn)行語(yǔ)言之間的轉(zhuǎn)換。這個(gè)就是程序編譯或者解釋的由來(lái)。

為了理解程序編譯和程序解釋,這里引入兩種語(yǔ)言,分別是高級(jí)計(jì)算機(jī)語(yǔ)言L1,以及低級(jí)計(jì)算機(jī)語(yǔ)言L0。

  • 程序編譯開發(fā)人員使用高級(jí)編程語(yǔ)言L1編寫的應(yīng)用程序通過編譯器生成成計(jì)算機(jī)底層能夠識(shí)別的低級(jí)語(yǔ)言L0,L0就是計(jì)算機(jī)實(shí)際執(zhí)行的語(yǔ)言,而編譯器生成的計(jì)算機(jī)底層識(shí)別的二進(jìn)制機(jī)器指令過程就是程序編譯。常見的編譯型語(yǔ)言有C/C++/Objective-C/Go
  • 程序解釋首先使用L0語(yǔ)言實(shí)現(xiàn)另外一個(gè)程序,也就是解釋器,然后將開發(fā)人員使用高級(jí)語(yǔ)言L1編寫的應(yīng)用程序作為輸入,每一句L1編寫的程序都會(huì)在L0中作為等價(jià)的轉(zhuǎn)換然后執(zhí)行,解釋的過程就是由L0編寫的解釋器去解釋L1程序。常見的解釋型語(yǔ)言有PHP,Python,JavaScript。

而Java和C#屬于編譯+解釋型語(yǔ)言,以Java為例子,Java程序在運(yùn)行之前首先被編譯成Java字節(jié)碼,然后在JVM虛擬機(jī)上解釋運(yùn)行。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
機(jī)器語(yǔ)言與匯編語(yǔ)言(9)王雷 20090830218 信息安全二班
選擇學(xué)什么計(jì)算機(jī)語(yǔ)言來(lái)編程,先了解語(yǔ)言通常是如何開發(fā)出來(lái)的
什么是C語(yǔ)言?
存儲(chǔ)程序計(jì)算機(jī)傳奇與機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言(紙帶上的每一行孔代表一個(gè)字符穿孔紙帶上的當(dāng)前位置用5個(gè)孔位的編碼表示一個(gè)數(shù)字或字母)
計(jì)算機(jī)語(yǔ)言
為什么不用中文編程?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服