摘要:年月號(hào)語言,在今天來說是一種特殊的編程語言。但是,仍然存在一個(gè)根本的問題為什么用寫的程序堅(jiān)如磐石過了寫論文這段黑暗的時(shí)期之后,我最近做了一點(diǎn)編程。
C語言,在今天來說是一種特殊的編程語言。只有極少數(shù)人真的可以用C進(jìn)行編程,而且我們中很大一部分人都對(duì)C有自己的看法。緩沖區(qū)溢出,棧溢出,整型數(shù)據(jù)溢出,C有很多廣為人知缺陷,而這些缺陷被人們隨意傳播,甚至那些不熟悉C的人們。我自己已經(jīng)有10念沒有接觸C了,由于這樣或那樣的原因。開始的額時(shí)候,編譯器是很昂貴的(在免費(fèi)的UNIX被發(fā)布之前)而且很慢,那時(shí)的環(huán)境是很糟的。而且,所有關(guān)于C的恐怖故事讓我覺得我這么一個(gè)小小的普通程序員怎么可以寫出可靠的C程序。
撇過一些我直接從別的地方復(fù)制粘貼過來的很多小的C模塊不說,我自己寫的第一個(gè)C程序是Converge VM。其中有兩件事情讓我驚呆了:-o 。第一,寫C程序原來不是那么難。事后我才知道我年輕的時(shí)候浪費(fèi)時(shí)間寫匯編代碼這件事在心理上給我了很大的支持,畢竟C是高級(jí)一點(diǎn)的匯編語言。一旦一個(gè)人理解了像指針(可以說是低級(jí)語言中最微妙的概念,因?yàn)檎鎸?shí)世界中沒有相對(duì)應(yīng)的比喻)這樣的概念。第二件事情是,Converge VM沒有像我期待那樣滿是bug。
實(shí)際上,忽略可能在任何編程語言上都存在的邏輯錯(cuò)誤,到目前為止在Converge VM中引發(fā)實(shí)際問題的只有兩個(gè)只針對(duì)C才會(huì)有的錯(cuò)誤(主意,我肯定還有很多潛伏的bug,但是我情形還沒有碰上太多)。第一個(gè)錯(cuò)誤是,一個(gè)list沒有以