小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

你是否真的了解編程語(yǔ)言?(上)

 大隆龍 2017-05-25

什么是編程語(yǔ)言?

什么是編程語(yǔ)言?當(dāng)我對(duì)這塊行業(yè)涉入未深的時(shí)候,你讓我說(shuō)個(gè)所以然出來(lái)我還真說(shuō)不出來(lái)。不過(guò)隨著時(shí)間的推移,自己似乎能夠理解那么點(diǎn)意義。

像所有機(jī)器一樣,它都有它的一個(gè)操作命令清單。打個(gè)最簡(jiǎn)單的比方吧,水壺只有開或者關(guān)閉,這就是水壺的一個(gè)操作命令清單。還有CD播放器吧,它有開、快進(jìn)、倒退、暫停、關(guān)閉、調(diào)節(jié)音量、隨機(jī)播放,這就是CD播放器的一個(gè)命令清單。那么對(duì)于計(jì)算而言,它也是一樣的,它也有屬于自己的一張清單。打個(gè)簡(jiǎn)單的比方,命令計(jì)算機(jī)可以把兩個(gè)數(shù)字相加。這種操作命令的組合就是計(jì)算機(jī)的機(jī)器語(yǔ)言(machine language)。

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

你是否真的了解編程語(yǔ)言?(上)

機(jī)器語(yǔ)言 計(jì)算機(jī)剛剛發(fā)明的時(shí)候,所有程序就是一條條機(jī)器

機(jī)器語(yǔ)言和匯編語(yǔ)言的共同構(gòu)問(wèn)題就是,只能讓大多數(shù)計(jì)算機(jī)做一些簡(jiǎn)單的事情。比如你想讓計(jì)算機(jī)的蜂鳴器響10次,但是不存在一跳直接的機(jī)器語(yǔ)言命令重復(fù)進(jìn)行n次操作,所以只能用機(jī)器語(yǔ)言寫出下面這樣的程序

a 將數(shù)字存入內(nèi)存地址0 ,如果內(nèi)存地址0的值為負(fù)數(shù),跳到b行。

蜂鳴器響發(fā)出聲音,將內(nèi)存地址0的值-1,跳到a行。

b 程序的其它部分。

如果只是讓蜂鳴器響10次就不得不寫這么多代碼,不難想象寫出一個(gè)文字處理器或電子表格將是一項(xiàng)多么浩大的工程。

順便再說(shuō)一句,再次看到上面的那個(gè)程序。蜂鳴器真的會(huì)響10次嗎?不,響了11次。我不應(yīng)該在第一行使用10,而是9。我故意在這個(gè)例子中留了1個(gè)BUG,是為了證明編程語(yǔ)言的一個(gè)重要特點(diǎn):一個(gè)操作所需要的代碼越多,就越難避免BUG,也就越難發(fā)現(xiàn)它們。

高級(jí)語(yǔ)言

假設(shè)你現(xiàn)在不得不不用編程語(yǔ)言開發(fā)程序,但是你有了一個(gè)助手,幫你省去了不必要的麻煩。你接下來(lái)只要把程序?qū)懗上旅孢@樣就行了

dotimes 10 蜂鳴器響

接下來(lái)你的助手會(huì)用編程語(yǔ)言幫你完成這條命令。(假設(shè)不產(chǎn)生BUG)

事實(shí)上大多數(shù)程序員的工作就是這樣的,不同之處就是,程序員的助手不是一個(gè)人,而是編譯器。所謂的“編譯器”,它本身就是一個(gè)程序。作用就是將簡(jiǎn)便方式書寫的程序(就是上面這一行命令)轉(zhuǎn)變?yōu)?strong>硬件可以理解的語(yǔ)言。而這種簡(jiǎn)便方式書寫的程序所使用的就叫做高級(jí)語(yǔ)言。它能夠 讓你使用更強(qiáng)大的命令開發(fā)程序。寫程序時(shí)有了方便的命令,就可以把程序?qū)懙酶?jiǎn)短。就算你出線了BUG,也更容易找到。

高級(jí)語(yǔ)言還有一個(gè)有優(yōu)點(diǎn),它使得程序更具有可移植性。不同計(jì)算機(jī)語(yǔ)言都不是完全相同的。所以,你無(wú)法為某一種機(jī)型寫的機(jī)器語(yǔ)言程序放到另外一種機(jī)型上面運(yùn)行,只有徹底重寫才能實(shí)現(xiàn)。但是你的程序是用高級(jí)語(yǔ)言寫的,你只需要 重新編寫編譯器就可以了 。

編譯器不是高級(jí)語(yǔ)言唯一實(shí)現(xiàn)方法,另一種是使用解釋器,它的作用是實(shí)時(shí)地將代碼解釋為相應(yīng)的機(jī)器語(yǔ)言,然后一行行運(yùn)行。相比之下,編譯器是將整個(gè)程序翻譯為機(jī)器語(yǔ)言,然后再運(yùn)行。
你是否真的了解編程語(yǔ)言?(上)

高級(jí)語(yǔ)言

開放源碼

編譯器處理的高級(jí)語(yǔ)言又叫做源碼。它經(jīng)過(guò)翻譯后產(chǎn)生的機(jī)器碼就叫做目標(biāo)碼。目標(biāo)碼很難讀懂 ,相當(dāng)于加密了,可以保護(hù)公司的商業(yè)秘密)但是后來(lái)出現(xiàn)一種潮流:開放源代碼的軟件。你可以得到源代碼,并且不受限制的修改它。
你是否真的了解編程語(yǔ)言?(上)

Android源碼部分圖

這兩種方式的區(qū)別在于,開放源代碼可以讓你對(duì)軟件有更大的控制權(quán),如果你想了解 源軟件如何運(yùn)行的,你只需要看源代碼就行。如果你愿意,甚至可以修改軟件、重新編譯。你之所以需要這樣做,一個(gè)原因是因?yàn)樾拚粋€(gè)BUG。比如,你不可能修正windows的BUG,因?yàn)槟銢](méi)有源碼。(理論上你也許可以 破解目標(biāo)碼,但是實(shí)際上是非常困難的。另一方面,軟件的授權(quán)協(xié)議也不允許你這樣做)這會(huì)導(dǎo)致很大的問(wèn)題。一旦windows出現(xiàn)新的安全漏洞,只能等待微軟公司發(fā)布解決方法,這還是算塊的。如果BUG不嚴(yán)重,許只是讓你機(jī)器死機(jī),那么可能不得不等到下次全面升級(jí)后問(wèn)題得到解決。

開放源代碼的優(yōu)勢(shì)不僅僅局限于自己手動(dòng)解決BUG。這里的關(guān)鍵是所有人都可以參與。許許多多聰明的人在仔細(xì)閱讀LinuxFreeBSD這樣的開源操作系統(tǒng)源碼后,發(fā)現(xiàn)并解決了大量的BUG。相比之下 ,windows的可靠性只能依賴大公司的質(zhì)量保證部門了。開放源代碼的擁護(hù)者常常被看作反對(duì)知識(shí)產(chǎn)權(quán)的怪人。其中有些人確實(shí)如此,但是我本人肯定不反對(duì)知識(shí)產(chǎn)權(quán)。普通的消費(fèi)者也許不需要看到他們使用的文字處理器源碼,但是在非常強(qiáng)調(diào)軟件可靠性的情況下,處于強(qiáng)烈的工程需求的考慮,會(huì)要求開放源碼。

未完待續(xù)...

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多