真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

說說程序員、編譯器、CPU之間的三角戀-創(chuàng)新互聯(lián)

編程工作的演進史

目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站托管、企業(yè)網(wǎng)站設計、綿陽網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

1、CPU需要的只是1和0組成的二進制數(shù)據(jù)

(1)不管編程怎么變,最終編程得到的可執(zhí)行二進制程序都是給CPU運行的。CPU需要的只是按照CPU設計時的規(guī)律(機器指令)排布的一串二進制1和0組成的數(shù)字(機器碼),CPU根本不關心這些二進制是怎么來的。

(2)這些二進制可能是一個很厲害的程序員直接用1和0拼出來的;也可以是用匯編語言編寫最終編譯得到的;也可以是用C語言編寫最終編譯得到的;也可以是用java C# php bash等語言編寫然后解釋得到的;

(3)編程工作的演進其實一直是在處理上一個層次段落:就是使用何種語言編寫程序(用某種語言進行編程),然后如何把這種程序源代碼轉(zhuǎn)成二進制(編譯器的發(fā)明)。

(4)CPU接收到一串1010序列后如何工作達到目的,這就是設計制造CPU的公司要考慮的事情了,與軟件工程師完全無關。

2、早期的紙卡打孔編程者

(1)最早期的時候,CPU也很簡單,指令集很少,二進制位數(shù)也不多。那時候編譯器也沒被發(fā)明,編程語言也沒被發(fā)明,那時候就是用二進制直接編程的。

(2)總結:最早的編程沒有語言也沒有編譯器,程序員直接使用二進制和機器(CPU)對話。

(3)這種方式的壞處就是不容易擴展,隨著CPU的進一步復雜化,指令的變多,指令位數(shù)的變多,編程難度呈幾何倍數(shù)增長。人的大腦慢慢就跟不上這個節(jié)奏。

3、編程工作的第一次革命:由二進制機器碼到匯編語言

(1)第一次革命就是:發(fā)明了匯編語言。匯編語言的本質(zhì)就是用一個符號來代替一串二進制。

MOV 10101010101010

SUB 01010101010101

(2)有了匯編語言之后,程序員就不用再去記憶二進制序列了。編程時只需要用匯編指令來編程即可,匯編指令就是一個符號(符號就是由文字構成的,如MOV)。因為人類大腦天生對文字符號更加友好,因此用符號編程更簡單。

(3)用匯編語言編寫的源程序不能直接給CPU運行,必須通過一個翻譯過程,把源代碼翻譯成二進制序列才能給CPU。這個翻譯的過程就叫匯編,執(zhí)行翻譯動作的就是匯編器。

4、編程工作的第二次革命:由匯編語言到C語言

(1)匯編語言也有一些不盡如人意的地方,譬如:沒有可移植性。在這個CPU上寫的匯編程序無法直接在另一個CPU上運行。因此匯編語言是和CPU一一對應的。

(2)為了可移植性于是乎發(fā)明了高級語言。第一個高級語言就是C語言。C語言進一步靠近人的思維,為人的思維發(fā)明了很多CPU沒有的東西,譬如數(shù)組。最終的目的就是降低編程難度,讓高級語言更接近人的思維,然后通過編譯器、匯編器等的翻譯將這些源代碼變成二進制然后給CPU運行。

5、革命無窮盡、層次變更多

(1)在C語言之上還有更高級語言,譬如:C++、Java、C#、bash等。越往上越靠近人的思維,越往上語言本身提供的封裝越多,越往上編程難度越低、語言的掌握越容易。

1、CPU只認識二進制機器指令

(1)CPU是最終干活的,而CPU只認識只接受二進制。

2、人類喜歡符號而不是二進制

(1)人類的大腦本身不喜歡二進制而喜歡符號、文字。

(2)人類和機器之間天生有代溝,于是乎編程不容易。

3、連接人(程序員)與機器(CPU)的橋梁:編譯器

(1)編譯器降低了編程難度。編譯器的代表就是編程語言,每一種編程語言都有對應的編譯器,這個編譯器的作用就是把這種語言的源文件編譯成可執(zhí)行程序。

(2)關鍵是:有了編譯器(高級語言)之后,我們程序員就不再盯著CPU(二進制),而是改為盯著編譯器(編程語言、編程語言的語法),所以我們學習編程的關鍵變成了學習編譯器的習性,也就是編程語言的語法。

4、發(fā)明一門語言關鍵就在于發(fā)明它的編譯器

(1)編譯語言的關鍵就是編譯器。yacc和lex工具就是用來發(fā)明編程語言的。

5、高級語言與低級語言的差別

(1)越高級的語言越靠近人類思維;越低級的語言越靠近機器的需要。

(2)人與機器總勞動量(總復雜度)守恒。人要是復雜一點機器就可以簡單一點;人簡單一點機器就需要復雜一點。這個規(guī)律描述的就是:編程語言越簡單,人使用起來越簡單,編譯器設計起來就更復雜;編程語言越復雜、程序員使用起來越麻煩,則編譯器設計越簡單,CPU執(zhí)行效率越高。

像編譯器一樣思考吧

語法是什么?語法就是編譯器的習性

(1)編譯器反應在編程中就是語法。

譬如1:

for (i=0; i<10; i++);

{

xxx;

}

譬如2:

int i; !!i;

解析:!在C語言中是邏輯取反的意思,邏輯取反意思就是0取反就是1,不是0的數(shù)取反就是0

問題:讓你用C語言編程實現(xiàn):如果一個數(shù)i是0則返回0,如果不是0則返回1

一般實現(xiàn): if (i == 0){return 0;} else{return 1;}

或者可以用三母運算符: (i==0)?(0):(1);

極客式寫法: !!i;

習得一門語言就像認識一個朋友

(1)從新開始認識一個人到成為好朋友,這里面要經(jīng)歷:時間、共事。

(2)學習一門編程語言也需要:時間、實踐(共事)

學習編程語言要懂得換位思考

(1)預處理中處理程序注釋、空行。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網(wǎng)站欄目:說說程序員、編譯器、CPU之間的三角戀-創(chuàng)新互聯(lián)
分享URL:http://weahome.cn/article/csschh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部