自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度剖析Python歷史誕生問題

開發(fā) 后端
Google的Python語(yǔ)言之父 Guido van Rossum對(duì)于Python歷史、ABC 語(yǔ)言的影響,以及 Python語(yǔ)言最初的設(shè)計(jì)目標(biāo)進(jìn)行了改革性的試驗(yàn)。

Guido van Rossum 是Python語(yǔ)言的作者,Python 是一門解釋性的、是一種面向?qū)ο?、直譯式計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,也是一種功能強(qiáng)大而完善的通用型語(yǔ)言,已經(jīng)具有十多年的發(fā)展Python歷史了。

他工作的地方被叫做 Centrum voor Wiskunde en Informatica (CWI).從那時(shí)開始,Python 在開發(fā)者當(dāng)中日益流行起來(lái),這歸功于 Python 簡(jiǎn)明清晰的語(yǔ)法和開發(fā)效率高的名聲。這次訪談會(huì)分為幾個(gè)部分,每周都會(huì)發(fā)布其中一篇.Van Rossum 會(huì)對(duì)下列議題給出他的真知灼見:Python 的設(shè)計(jì)目標(biāo),Python 程序員的工作效率來(lái)自何處。

弱類型意味著什么,等等.在第一篇中,Van Rossum Python 將對(duì) Python 的歷史,受到的主要影響,及其設(shè)計(jì)目標(biāo)娓娓道來(lái).Bill Venners: 如果開發(fā)者從沒用過 Python,那你會(huì)怎么向他們描述這門語(yǔ)言呢?Guido van Rossum: 從一個(gè)方面說(shuō),你可以說(shuō) Python 是一個(gè)非常高階的語(yǔ)言。

而從另一個(gè)方面來(lái)看,你可以說(shuō)它是一個(gè)非常高階的語(yǔ)言,它實(shí)現(xiàn)的方式正好讓它非常注重可交互性.Python 和腳本語(yǔ)言之間有著很多共同點(diǎn),但是和更傳統(tǒng)的編程語(yǔ)言也有頗多共通之處.

ABC 對(duì) Python 的影響B(tài)ill Venners: 您能簡(jiǎn)要介紹一下 Python 的歷史么?Guido van Rossum: 在 1980 年代末,我在 Centrum voor Wiskunde en Informatica (CWI) 的一個(gè)小組里面做開發(fā)工作。

這個(gè)小組的任務(wù)是設(shè)計(jì)實(shí)現(xiàn)一門叫 ABC 的語(yǔ)言.我不清楚人們對(duì) ABC 對(duì)Python歷史的影響有多少了解.我之所以會(huì)提及 ABC 的影響,是因?yàn)槲以趶氖逻@個(gè)項(xiàng)目的時(shí)候,所獲良多,而且從共事的同事身上也學(xué)到了很多東西,我對(duì)他們非常感激。

ABC 的設(shè)計(jì)動(dòng)機(jī)非常明確.ABC 希望成為一門編程語(yǔ)言,這門語(yǔ)言是為非計(jì)算機(jī)程序員或軟件開發(fā)者的那種比較聰明的計(jì)算機(jī)用戶而設(shè)計(jì)的。在 1970 年代末,ABC 的主設(shè)計(jì)師曾向這種用戶教授一些傳統(tǒng)的編程語(yǔ)言.他們的學(xué)生有各個(gè)學(xué)科的科學(xué)家:從物理學(xué)家、社會(huì)學(xué)家到語(yǔ)言學(xué)家。

為了使用超大型計(jì)算機(jī),這些科學(xué)家需要幫忙.雖然這些人在自己的領(lǐng)域可算出類拔萃,他們還是對(duì)傳統(tǒng)語(yǔ)言所有的各種局限感到詫異和不適應(yīng).根據(jù)用戶的這個(gè)反饋,ABC 的設(shè)計(jì)者試圖去開發(fā)一門新的語(yǔ)言.

另一個(gè)讓 ABC 的設(shè)計(jì)者覺得失望的原因是 Basic.那時(shí),Basic 是一門非常蹩腳的語(yǔ)言.雖然 Basic 也是為那種非程序員的計(jì)算機(jī)用戶而設(shè)計(jì)的。但是它設(shè)計(jì)的著眼點(diǎn)是完全不同的。

在那時(shí),市面上所有的 Basic 版本都非常難用.幾乎所有好玩的 Basic 程序都遍布著底層的奇技淫巧,比如說(shuō),如果要把屏幕背景色變成黃色的話,就需要修改內(nèi)存的第 714 字節(jié)。Bill Venners: 這個(gè)我也有印象.您是什么時(shí)候搞 ABC 的?Guido van Rossum: ABC 的作者在 70年代晚期和 80年代初期,開始這門語(yǔ)言的設(shè)計(jì)工作。

我于 1983 年加入這個(gè)小組.我想我們一直干到了 1986 年還是 1987 年.因?yàn)榉N種原因,ABC 項(xiàng)目并沒有獲得很大的成功.或許那時(shí)太早了,那個(gè)時(shí)候還沒有因特網(wǎng)可做大規(guī)模的推廣.

Python歷史的誕生

Guido van Rossum: 1986 年,我轉(zhuǎn)向了 CWI 的另一個(gè)叫 Amoeba (阿米巴蟲) 的項(xiàng)目.Amoeba 是一個(gè)分布式操作系統(tǒng)。直到 1980年代末,我們意識(shí)到需要一個(gè)腳本語(yǔ)言.在那個(gè)項(xiàng)目中,我享有很大的自由度,所以我啟動(dòng)了一個(gè)迷你項(xiàng)目,這個(gè)小項(xiàng)目是服務(wù)于當(dāng)時(shí)的我們手頭的 Amoeba 項(xiàng)目的。

那時(shí),我對(duì)在 ABC 上獲得的經(jīng)驗(yàn)教訓(xùn)記憶猶新.我決定,想辦法設(shè)計(jì)一門簡(jiǎn)單的腳本語(yǔ)言,它將擁有 ABC 的優(yōu)點(diǎn),但卻沒有他的缺點(diǎn).所以,我挽起袖子開始打鍵盤了.我實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的虛擬機(jī),一個(gè)簡(jiǎn)單的 parser,還有一個(gè)簡(jiǎn)單的運(yùn)行時(shí)庫(kù).ABC 中每一個(gè)我欣賞的部分我都重新實(shí)現(xiàn)了一把。#t#

我還設(shè)計(jì)了一種基本的語(yǔ)法,它用縮進(jìn)來(lái)表示語(yǔ)句之間的結(jié)合關(guān)系,而不是用花括號(hào)或者 begin-end 塊來(lái)表示程序結(jié)構(gòu)。同時(shí),我開發(fā)了幾個(gè)功能強(qiáng)大的數(shù)據(jù)結(jié)構(gòu):哈希表 (用來(lái)實(shí)現(xiàn) dictionary,我們這樣稱呼它),列表,字符串,以及數(shù)字類型。

ABC 的設(shè)計(jì)者放棄了用來(lái)讀寫文件的 IO 的方法,他們轉(zhuǎn)而在程序里使用一些全局變量.他們的用戶對(duì)全局變量的概念應(yīng)該了然于胸.所以 ABC 的設(shè)計(jì)者讓那些全局變量能持久化。

如果你退出一次編程會(huì)話,你所有的全局變量就被系統(tǒng)存到磁盤上的一個(gè)文件里.等到你下次啟動(dòng)另一個(gè)會(huì)話,你所有的全局變量就會(huì)恢復(fù)回來(lái).在某種程度上說(shuō),這一套運(yùn)作得很好.這和 workspace 有幾分相像,比如說(shuō) Smalltalk 里的 workspace 就和這個(gè)差不多。

ABC 里有一個(gè) print 語(yǔ)句,可以讓你在屏幕上輸出,還有一個(gè) input 語(yǔ)句,讓你可以從鍵盤上讀入,但是 ABC 卻沒有辦法可以把 IO 重定向到文件,或者從文件重定向到 IO.實(shí)際上,可以說(shuō)他們根本就沒有提供任何 IO 功能。

責(zé)任編輯:chenqingxiang 來(lái)源: 驅(qū)動(dòng)之家
相關(guān)推薦

2010-02-01 13:34:59

Python 腳本

2010-03-01 16:48:02

Python模塊

2010-02-06 15:32:30

Android架構(gòu)

2010-02-05 18:00:18

Android源代碼

2010-01-08 14:06:49

JSON 形式

2010-05-24 16:58:44

SVN安裝

2010-03-01 14:50:06

Python 工具

2010-03-01 18:33:30

2010-02-02 15:25:35

Python語(yǔ)法

2010-02-03 16:56:24

Python包

2010-01-27 15:50:23

C++復(fù)雜性

2010-01-27 09:31:39

C++Test測(cè)試

2010-02-07 15:42:46

Android單元測(cè)試

2010-02-26 17:44:40

Python測(cè)試框架

2010-02-22 13:53:22

Python 中文亂碼

2010-02-02 13:22:06

Python面向?qū)ο?/a>

2010-02-26 10:38:29

Python語(yǔ)言

2010-02-03 09:35:20

Python函數(shù)編程

2010-02-03 11:26:28

2010-02-24 16:33:28

Python功能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)