官术网_书友最值得收藏!

1.2 編程語言與庫的差別

當(dāng)庫可以完成某項(xiàng)工作時,不用構(gòu)造編程語言。庫是迄今為止擴(kuò)展現(xiàn)有編程語言以執(zhí)行新任務(wù)的最常用方法。是一組可以一起用于為某些硬件或軟件技術(shù)編寫應(yīng)用程序的函數(shù)或類。很多編程語言(包括C和Java)幾乎完全圍繞一組豐富的庫設(shè)計(jì)。該語言本身非常簡單和通用,而開發(fā)人員開發(fā)應(yīng)用程序必須學(xué)習(xí)的大部分內(nèi)容包括如何使用各種庫。

庫可以完成以下任務(wù):

?引入新的數(shù)據(jù)類型(類),并提供用于操作這些數(shù)據(jù)類型或類的公共函數(shù)(API)。

?在一組硬件或操作系統(tǒng)調(diào)用的基礎(chǔ)上提供抽象層。

庫不能完成以下任務(wù):

?引入新的控制結(jié)構(gòu)和語法,以支持新的應(yīng)用程序域。

?在現(xiàn)有編程語言運(yùn)行系統(tǒng)中嵌入/支持新的語義。

庫在某些方面做得很糟糕,正因?yàn)槿绱耍覀兛赡茏罱K更喜歡創(chuàng)建一種新的語言:

?庫往往會變得更大、更復(fù)雜,但不是必要的。

?與編程語言相比,庫的學(xué)習(xí)曲線更陡峭,文檔更差。

?庫經(jīng)常與其他庫發(fā)生沖突,版本不兼容常常會破壞使用庫的應(yīng)用程序。

從庫到編程語言有一條自然的進(jìn)化路徑。構(gòu)建新語言以支持應(yīng)用程序域的一種合理方法是首先制作或購買該應(yīng)用程序域可用的最佳庫。如果結(jié)果不支持所在領(lǐng)域,以及在簡化為該領(lǐng)域編寫程序的任務(wù)方面也不符合我們的要求,那么我們就有一個強(qiáng)有力的論據(jù)來證明:我們需要設(shè)計(jì)一種新的編程語言。

本書主要講解構(gòu)建自己的編程語言,而不僅僅是構(gòu)建自己的庫。事實(shí)證明,學(xué)習(xí)這些工具和技術(shù)在其他情況下是有用的。

主站蜘蛛池模板: 荆门市| 三江| 乌拉特前旗| 民乐县| 阿合奇县| 石棉县| 南京市| 澄江县| 张家口市| 江华| 三河市| 蚌埠市| 博爱县| 巴东县| 项城市| 汕尾市| 鹤庆县| 芦山县| 马山县| 新津县| 石阡县| 从化市| 汉川市| 彰武县| 盖州市| 五峰| 平果县| 岳阳市| 建昌县| 五家渠市| 杂多县| 林州市| 上饶县| 舟山市| 马公市| 得荣县| 东山县| 麦盖提县| 乐平市| 隆子县| 南丰县|