第33章 找上門(1/2)
12月2日,經過夜以繼日的碼代碼,終於將硬體虛擬機的全部代碼寫完,歷時兩個月,終於完成了。
接下來的工作就是編寫新語言以及配套的編譯器,一般來說這兩部分是同時進行的,但是到他這裡,卻是有所不同。
他腦海中已經有全套的新語言架構,甚至可以說,連代碼都存在他的腦海中,唯一的工作,就是將腦海中的東西寫出來。
他不需要探索新語言的架構,也就意味著不需要做重複工作,直接就開始進行編譯器的編寫,這對後面的語言部分開發很有幫助。
而這兩項工作當中,編譯器的代碼數量並不是特別大,主要功能只有三個:詞法分析器、詞義分析器以及優化器。
這三個部分基本上是所有編譯器都會有的,只要有這三個功能模塊,基本上就可以滿足一款語言的編譯工作。
詞法分析器主要是將源文件轉換為機器需要的格式語言,並且對源文件語法做檢查,起到高級程式語言的轉換和檢查作用。
語義分析器主要的作用是將已經轉換成的符合詞法規定的一系列的詞語按照語言結構的要求轉換成一系列的語法結構,並進行結構化分析,形成中間代碼。
優化器顧名思義,就是對應用語言的代碼進行優化,提升代碼的效率,將一些不是致命的錯誤進行優化。
除此之外,高級程式語言,還需要將語義分析器分析的結構性語言,轉換為彙編語言和目標代碼,這部分一般叫彙編。
高級語言一般都是片段式的,完成一個目標功能的代碼,往往存在於多個文件當中,在編譯的時候,需要將這些文件整合,這一步叫做連結。
而他需要在編譯器當中添加預編譯功能,這麼做的目的,就是能夠讓程式設計師能夠在編寫代碼的時候,就可以檢查出錯誤。
這個功能對開發大型軟體具有重要的作用,如果每個程式設計師都犯一點小錯誤,不說複查花費的時間成本,就是存在的隱患也將是巨大的。
而且還需要在裡面添加一系列約定俗成的語法規範,這些功能也能夠有效地減少程式設計師犯錯誤的概率。
像前世類似java的語言,在這方面做得就比較出色,雖然略顯笨拙,但是卻是開發大型軟體的基礎。
因為所有的程式設計師都遵循這樣的規範,這就意味著不管有多少程式設計師參與編寫,最終整合起來依然具備可讀性。
他希望能夠花費一個月時間,將這件事情給完成,那時候時間已經到了1月份了,期末考試將要到來,然後就是學校放寒假。
時間來到12月15日,葉子書一如既往地在自己的宿舍編寫代碼,郭東生找了過來,說是有人想要收購他的唱片公司。
他的第一張專輯是校園民謠風,雖然在國內的銷量依然不少,但是卻和主流音樂有著明顯的差距。
後面也陸陸續續有人模仿他的校園民謠風格,但是獲得的成績卻沒有那麼耀眼,這讓一些市場人士認為,這種風格並不長久。
他的專輯之所以銷量好,主要還是原創性的元素較多,但是這樣的音樂一多,就容易讓聽眾疲勞。
所以他雖然因此爆紅,卻沒有多少知名的音樂人找他,在整個音樂領域,像個小透明,一直玩單機。
直到他的第二張專輯出來,經過一個多月的銷售,成績非常喜人,僅僅在內地銷量就突破了200萬張,比他預想的要快很多。
這樣的優異表現,自然受到音樂領域的廣泛關注,而那些唱片公司,在了解了詳細情況後,就有點坐不住了。
本章未完,點選下一頁繼續閱讀。