首頁 > 科幻小說 > 魔法導論 > 第一百九十四章 留下

第一百九十四章 留下(2/2)

目錄

「你想打籃球嗎?」李力瞪了她一眼,「叫教授!」

「哦哦,教授」,瑪麗反應過來,又重新鞠了一躬,「我想學習計算機科學跟您!」

李力身心疲憊地抹了把臉,才反應過來水珠已經蒸發了,將瑪麗扶起來以後說道:「來了實驗室的話我們就是同事關係,當然如果遇到問題,我們可以探討,共同進步,計算機的知識浩如煙海,它可以應用到人類的方方面面,從抽象到具體,從研究到應用,即便是我也僅僅有一些算不上多的靈感而已。」

「嗯嗯!」瑪麗努力地點點頭。

「就比如說你對語言的抽象化是怎麼想的?」李力伸手將論文翻到了第二章節,指了指上面的文字。

「通過設計好的指令,將機器的執行細節掩埋,這樣的話編輯者在編輯時就可以不用記憶和拆解每一個步驟將其指令,就可以開發快速。」突然談到正題讓瑪麗一下子興奮了起來,「很多步驟都可以包裹成一個命令,開發好的程序可以將命令轉化為機器執行碼。」

「但是你所說的其實已經將兩個東西混雜在了一起」,李力指出,「語言和庫。

「語言是用來進行邏輯編輯的,它通常基於某種抽象邏輯,比如數學,比如符文學,當然為了能讓處理器執行,計算機語言已經將數學語言或者符文學語言複雜化了。而另一種東西則是庫,也就是通過語言編寫和封裝的,可以被別人使用的成熟代碼段,兩者的關係就好像帝國語和詩詞的關係,當你感慨『念天地之悠悠,獨愴然而涕下』的時候,就是在調用登幽州台歌的代碼段。」

旁邊的樾樾眼前一亮,剛想說話,卻猛地捂住自己的嘴。

帝國語貧窮如瑪麗,並沒有感受到詩詞中的韻味,但前面的邏輯她懂了大概,「語言只有我們定義,庫不僅僅我們定義,也你們定義,也他們定義,和調用。」

「是的」,強忍著瑪麗用錯誤語法編寫的帝國語,李力點點頭,「當然為了保證語言使用的簡潔,編程環境一般都會自帶官方庫,我們會寫一些通用的庫內置進去方便調用,尤其是涉及外部硬體控制的指令,都會進行封裝。」

「可是,怎麼樣能保證使用者按照庫的編寫者要求調用呢?」瑪麗又問道,「我們提供庫,要使用者調用正確能使用,但是不正確不能,這樣怎麼辦?」

「哦?有一些沒法封裝的步驟,但需要使用者按正確方式調用麼?」李力抬了抬眉毛,「舉個例子。」

「材料加工程序,開始前必須檢查材料的形狀和純度,一些半永久轉換或者對稱轉換需要結束的時候轉換回來。」

聽了這個問題,李力摸了摸自己的下巴,「按照開放程度高的語言設計,這種需要前置或者後置的東西通常只是留出語法讓使用者自己調用,當然如果對方沒有調用就會出現系統級別的故障,比如內存泄露,比如錕斤拷燙燙燙什麼的。。。」

「如果限制呢?」瑪麗迫不及待地問道。

「這樣的話,就需要運行環境,而且如果你真的要限制使用者使用方式,那麼你所寫的就不是庫了。」

「那是什麼?」

「框架」,李力說道:「與庫不同的一點在於框架是控制反轉,雖然這個詞聽起來挺高大上,不過意思就是原本是由使用者調用庫來完成某些工作,但現在是框架調用使用者所寫的一些東西來完成某些工作,既然如此,使用者就必須按照框架的使用規則來寫這些東西。

「比方說如果你需要使用者在執行對稱轉換程序時必須初始化和銷毀,那麼你就必須留出初始化和銷毀的接口,讓使用者完善它,這樣程序就可以在執行主體程序之前調用初始化內容,並在結束之前調用銷毀。」

聽了李力的話,瑪麗興奮地叫了起來,「就是它就是它!我在寫轉換程序時思考過這個問題,但是在編寫c語言的時候總是無法將這個想法融入裡面,原來是我搞錯了!」

「c語言。。。」李力滿臉糾結地看著瑪麗,心想著要不要建議她換個名字,既然想做框架限制的語言類型,不如建議改叫Java?

「當然了,這只是軟體級別上的框架,如果你想要做到硬體層面上的框架,要求使用者按照你指定的規則,在你的控制下進行運行,那就是另外一種東西了。」

「什麼東西?」

「作業系統。」

目錄
返回頂部