第111章見(jiàn)習(xí)碼農(nóng)
(幻想科幻,計(jì)算機(jī)專家勿較真,本章難死我了寫了五個(gè)小時(shí),計(jì)算機(jī)原理、漢語(yǔ)語(yǔ)法、數(shù)學(xué)邏輯,一點(diǎn)淺顯的解釋,幻想科幻BUG肯定多,都有系統(tǒng)了就請(qǐng)大家不要較真啊!看不懂的,或者計(jì)算機(jī)專業(yè)人士挑刺可以跳過(guò),知道漢語(yǔ)編譯器很牛逼就行了。)
周瀟甚至懷疑,把已經(jīng)下載好語(yǔ)言編譯軟件的電腦交給其他人,其他人恐怕都點(diǎn)不開(kāi)。
不過(guò)系統(tǒng)既然有這種安排,周瀟也不會(huì)無(wú)聊地去嘗試這種事。
他坐在電腦前,盯著屏幕,光標(biāo)在閃縮著。
這東西到底怎么用?
周瀟不得不再次查看說(shuō)明書(shū)。
【漢語(yǔ)編譯器說(shuō)明書(shū):該編譯器為低級(jí)編譯器,適用于低等二進(jìn)制計(jì)算機(jī),本產(chǎn)品僅作為讓宿主了解計(jì)算機(jī)和程序工作原理……】
臥槽!
看到這里,周瀟就開(kāi)始罵娘了。
現(xiàn)在世界上所有的計(jì)算機(jī)都是二進(jìn)制,這里居然說(shuō)二進(jìn)制計(jì)算機(jī)是低等!
那么高等計(jì)算機(jī)是什么?
量子計(jì)算機(jī)?或者是別的什么?
周瀟咽了咽口水,心里咚咚咚的跳著。
他想到了實(shí)驗(yàn)室用MATLAB軟件都受到了米國(guó)人的限制。
如果能夠過(guò)得更高等的科技,例如國(guó)產(chǎn)操作系統(tǒng),和以該系統(tǒng)配套的生態(tài)環(huán)境,又或者獲得了芯片的制造技術(shù),那么多好。
通過(guò)膚油桿菌到共生蛋白,周瀟基本確定,系統(tǒng)給予的每一項(xiàng)科技產(chǎn)品都是有用的,就是看你怎么用而已。
而且,該產(chǎn)品知識(shí)讓周瀟了解計(jì)算和程序工作原理,也就是說(shuō),更可怕科技產(chǎn)品其實(shí)在后面。
周瀟繼續(xù)往下看。
【漢語(yǔ)編譯器需要用戶自主建設(shè)漢語(yǔ)言庫(kù)及相關(guān)邏輯庫(kù),以此作為編程語(yǔ)言的基礎(chǔ)……】
果然勁爆在后面!
【完整的語(yǔ)言庫(kù)將有助于編譯器完全理解編譯者的語(yǔ)言邏輯……】
當(dāng)周瀟閱讀完接近兩萬(wàn)字的說(shuō)明后,算是看懂了編譯器核心內(nèi)容了。
兩個(gè)字:牛掰!
編譯器本身占有的存儲(chǔ)很少,在學(xué)習(xí)建立語(yǔ)言庫(kù)的過(guò)程,他的語(yǔ)言和邏輯庫(kù)會(huì)越來(lái)越多,儲(chǔ)存也越來(lái)越大,這其實(shí)是一個(gè)不斷學(xué)習(xí)和完善的過(guò)程。
編程最重要的就是邏輯和語(yǔ)言。
說(shuō)明書(shū)分為兩部分介紹邏輯和語(yǔ)言。
首先是邏輯。
計(jì)算機(jī)是只能夠識(shí)別機(jī)器語(yǔ)言,也即是0和1。
0和1后面的多種組合其實(shí)就是數(shù)學(xué)。
邏輯就是數(shù)學(xué)邏輯。
所有編程都是依靠數(shù)學(xué)邏輯。
例如C語(yǔ)言加法代碼(20+30為例):
#include
void main()
{ int a,b,sum;
a=20;b=30;
sum=a+b;
printf(“sum is %d\n“,sum);
又如Python的代碼為:print(20+30)。
背后的都是數(shù)學(xué)!
漢語(yǔ)編譯器呢?
直接輸入:求20與30的和。
或者輸入:20+30是多少?
那么問(wèn)題來(lái)了,特別是第一個(gè)語(yǔ)句,這輸入的是漢語(yǔ),沒(méi)有一個(gè)數(shù)學(xué)公式,數(shù)學(xué)邏輯在哪里?
“加”這個(gè)字對(duì)應(yīng)的數(shù)學(xué)邏輯在語(yǔ)言庫(kù)里。
這就要牽涉到漢語(yǔ)編譯器的語(yǔ)言庫(kù),也就是現(xiàn)在要談的語(yǔ)言庫(kù)。
如果建立了完備的語(yǔ)言庫(kù),漢語(yǔ)編譯器將會(huì)完全明白輸入者說(shuō)的是什么。
漢語(yǔ)編譯器語(yǔ)言庫(kù)建立原理如下:
首先,將其按漢語(yǔ)語(yǔ)法分解為名詞、動(dòng)詞、形容詞、副詞等要素。
然后將這些要素按照漢語(yǔ)邏輯進(jìn)行組合。
例如最簡(jiǎn)單的主+謂+賓。
但是漢語(yǔ)博大精深,有些語(yǔ)法對(duì)但是句子不符合邏輯。
語(yǔ)言庫(kù)的優(yōu)勢(shì)就來(lái)了!
通過(guò)語(yǔ)言庫(kù),每一個(gè)名詞、動(dòng)詞等上都有一個(gè)符合常規(guī)邏輯的語(yǔ)言權(quán)重要素。
句子會(huì)依靠權(quán)重要素(即符合語(yǔ)言習(xí)慣)搭配在一起。
這樣,漢語(yǔ)言編譯器變明白用戶輸入的符合日常使用并且符合漢語(yǔ)語(yǔ)法的內(nèi)容。
此時(shí),編譯器在從低級(jí)到高級(jí),學(xué)習(xí)數(shù)學(xué)公式,變會(huì)滾雪球一般變得強(qiáng)大了。
這也是編譯器學(xué)習(xí)的一個(gè)過(guò)程。
說(shuō)得簡(jiǎn)單直白一點(diǎn),漢語(yǔ)編譯器是一個(gè)學(xué)習(xí)工具,學(xué)習(xí)的越多,越是強(qiáng)大。
目前,漢語(yǔ)編譯器能夠自動(dòng)將高數(shù)及以下的數(shù)學(xué)公式和描述方式直接翻譯為機(jī)器語(yǔ)言,這一點(diǎn)非常棒,極大的減輕了周瀟后面的負(fù)擔(dān)。
后面更高級(jí),更復(fù)雜的數(shù)學(xué)邏輯,就需要通過(guò)用戶的設(shè)定讓其繼續(xù)學(xué)習(xí)。
漢語(yǔ)編譯器最后達(dá)成的目的是什么?
極大的減輕了編程者的負(fù)擔(dān),編程者只需要考慮程序的的簡(jiǎn)單邏輯并且用語(yǔ)言描述出來(lái)就行了,不需要從最基本運(yùn)算規(guī)律開(kāi)始敲代碼。
例如一個(gè)簡(jiǎn)單的數(shù)學(xué)題:
用一排數(shù)的最大值減最小值。
最簡(jiǎn)單的python也會(huì)敲打很長(zhǎng)的代碼。
而用漢語(yǔ)編譯器只有一句話:用一排數(shù)的最大值減最小值求和。
美麗的漢語(yǔ)只需要一句話!
而且漢語(yǔ)比起現(xiàn)有的編程語(yǔ)言還有許多優(yōu)勢(shì),這些優(yōu)勢(shì)會(huì)讓程序設(shè)計(jì)簡(jiǎn)單起來(lái),漢字的圖形化,結(jié)構(gòu)化的,很直觀,表意能力非常強(qiáng)。
例如邏輯性很強(qiáng)的復(fù)合詞組。
比如“貓”,“膩”,本身就有各自含義,組成“貓膩”,又有另一層含義,
不同含義字的組合又成了另一個(gè)含義,本來(lái)就是一種函數(shù)!
漢語(yǔ)簡(jiǎn)直天生就是面向函數(shù)式的,而英語(yǔ)或者其他編程語(yǔ)言根本做不到這點(diǎn)。
又例如設(shè)計(jì)一些函數(shù)運(yùn)算。
設(shè)計(jì)函數(shù):輸入,輸出,先,后,棧,數(shù)據(jù)
通過(guò)函數(shù)式的組合:
輸入棧,輸出棧,輸入數(shù)據(jù),輸出數(shù)據(jù),先輸入棧后輸出數(shù)據(jù)……
這樣的組合操作非常自然,直接把程序變成字面語(yǔ)句。
而如果用C++或者是python敲代碼,得敲好幾頁(yè)!
漢語(yǔ)有,幾千個(gè)漢字,能組成無(wú)數(shù)的詞組,而無(wú)數(shù)的詞組再組成段語(yǔ),然后再組成段落。
這種強(qiáng)大的表達(dá)能力是任何編程語(yǔ)言所不具有的!
這個(gè)強(qiáng)大的編程功能,量子計(jì)算機(jī)都?jí)蛴?
周瀟心動(dòng)了!
他按照編譯器的使用方式,首先得讓語(yǔ)言庫(kù)活起來(lái)。
活起來(lái)的辦法非常簡(jiǎn)單,建立盡可能多的標(biāo)準(zhǔn)漢語(yǔ)庫(kù)。
這項(xiàng)工作周瀟一個(gè)人是沒(méi)有辦法完成的。
周瀟準(zhǔn)備成立一家計(jì)算機(jī)網(wǎng)絡(luò)公司,招兵買馬。
招兵買馬的對(duì)象包括程序猿、漢語(yǔ)言文學(xué)以及數(shù)學(xué)專業(yè)。
萬(wàn)萬(wàn)沒(méi)想到,學(xué)語(yǔ)文的也可以來(lái)編程了!