日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Python3 面向对象编程之程序设计思想发展

發(fā)布時間:2024/8/22 编程问答 31 如意码农
生活随笔 收集整理的這篇文章主要介紹了 Python3 面向对象编程之程序设计思想发展 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述

1940年以前:面向機(jī)器

1940年以前:面向機(jī)器

最早的程序設(shè)計(jì)都是采用機(jī)器語言來編寫的,直接使用二進(jìn)制碼來表示機(jī)器能夠識別和執(zhí)行的指令和數(shù) 據(jù)。簡單來說,就是直接編寫  和  的序列來代表程序語言。
例如:使用 代表 加載(LOAD), 代表 存儲(STORE)等。
機(jī)器語言由機(jī)器直接執(zhí)行,速度快,但一個很明顯的缺點(diǎn)就是:寫起來實(shí)在是太困難了,一旦你發(fā)現(xiàn)自己寫錯了,改起來更蛋疼!這樣直接導(dǎo)致程序編寫效率十分低下,編寫
程序花費(fèi)的時間往往是實(shí)際運(yùn)行時間的幾十倍或幾百倍。
有一個關(guān)于機(jī)器語言和比爾蓋茨的笑話,是說比爾蓋茨拿著繡花針在一張光盤上戳,把 Windows 給戳出 來了!但如果真的讓你去戳,不要說 Windows,連一個簡單的“Hello world”都要讓人戳到眼睛冒煙! 由于機(jī)器語言實(shí)在是太難編寫了,于是就發(fā)展出了匯編語言。匯編語言亦稱符號語言,用助記符代替機(jī)器 指令的操作碼,用地址符號(Symbol)或標(biāo)號(Label)代替指令或操作數(shù)的地址,。
匯編語言由于是采用 了助記符號來編寫程序,比用機(jī)器語言的二進(jìn)制代碼編程要方便些,在一定程度上簡化了編程過程。例如 使用 LOAD 來代替 ,使用 STORE 來代替 。 即使匯編語言相比機(jī)器語言提升了可讀性,但其本質(zhì)上還是一種面向機(jī)器的語言,編寫同樣困難,也很容 易出錯。相信很多計(jì)算機(jī)畢業(yè)的學(xué)生至今都對學(xué)校的匯編課程中的練習(xí)程序心有余悸。

脫離機(jī)器第一步:面向過程

面向機(jī)器的語言通常情況下被認(rèn)為是一種“低級語言”,為了解決面向機(jī)器的語言存在的問題,計(jì)算機(jī)科 學(xué)的前輩們又創(chuàng)建了面向過程的語言。面向過程的語言被認(rèn)為是一種“高級語言”,相比面向機(jī)器的語言
來說,面向過程的語言已經(jīng)不再關(guān)注機(jī)器本身的操作指令、存儲等方面,而是關(guān)注如何一步一步的解決具體的問題,即:解決問題的過程,這應(yīng)該也是面向過程說法的來由。 相比面向機(jī)器的思想來說,面向過程是一次思想上的飛躍,將程序員從復(fù)雜的機(jī)器操作和運(yùn)行的細(xì)節(jié)中解 放出來,轉(zhuǎn)而關(guān)注具體需要解決的問題;面向過程的語言也不再需要和具體的機(jī)器綁定,從而具備了移植
性和通用性;面向過程的語言本身也更加容易編寫和維護(hù)。這些因素疊加起來,大大減輕了程序員的負(fù)擔(dān), 提升了程序員的工作效率,從而促進(jìn)了軟件行業(yè)的快速發(fā)展。 典型的面向過程的語言有:COBOL、FORTRAN、BASIC、C 語言等。

第一次軟件危機(jī):結(jié)構(gòu)化程序設(shè)計(jì)

根本原因就是一些面向過程語言中的goto語句導(dǎo)致的面條式代碼,極大的限制了程序的規(guī)模。結(jié)構(gòu)化程序設(shè)計(jì)(英語:Structured programming),一種編程范型。它采用子程序(函數(shù)就是一種子程序)、
代碼區(qū)塊、for循環(huán)以及while循環(huán)等結(jié)構(gòu),來替換傳統(tǒng)的goto。希望借此來改善計(jì)算機(jī)程序的明晰性、質(zhì)量以及開發(fā)時間,并且避免寫出面條式代碼。
隨著計(jì)算機(jī)硬件的飛速發(fā)展,以及應(yīng)用復(fù)雜度越來越高,軟件規(guī)模越來越大,原有的程序開發(fā)方式已經(jīng)越 來越不能滿足需求了。 年代中期開始爆發(fā)了第一次軟件危機(jī),典型表現(xiàn)有軟件質(zhì)量低下、項(xiàng)目無法
如期完成、項(xiàng)目嚴(yán)重超支等,因?yàn)檐浖鴮?dǎo)致的重大事故時有發(fā)生。例如 年美國 (http://en.wikipedia.org/wiki/Mariner_1) 的水手一號火箭發(fā)射失敗事故,就是因?yàn)橐恍?FORTRAN 代碼
錯誤導(dǎo)致的。 軟件危機(jī)最典型的例子莫過于 IBM 的 System/ 的操作系統(tǒng)開發(fā)。佛瑞德·布魯克斯(Frederick P. Brooks, Jr.)作為項(xiàng)目主管,率領(lǐng) 多個程序員夜以繼日的工作,共計(jì)花費(fèi)了 人一
年的工作量,寫出將 近 萬行的源碼,總共投入 億美元,是美國的“曼哈頓”原子彈計(jì)劃投入的 /。盡管投入如此巨大, 但項(xiàng)目進(jìn)度卻一再延遲,軟件質(zhì)量也得不到保障。布魯克斯后來基于這個項(xiàng)目
經(jīng)驗(yàn)而總結(jié)的《人月神話》 一書,成了史上最暢銷的軟件工程書籍。 為了解決問題,在 、 年連續(xù)召開兩次著名的 NATO 會議,會議正式創(chuàng)造了“軟件危機(jī)”一詞, 并提出了針對性的解決方法“軟件工程”。雖然“軟件工程”提出之后也曾被視為軟件領(lǐng)域的銀彈,但后來
事實(shí)證明,軟件工程同樣無法解決軟件危機(jī)。 差不多同一時間,“結(jié)構(gòu)化程序設(shè)計(jì)”作為另外一種解決軟件危機(jī)的方案被提出來了。 Edsger Dijkstra 于 發(fā)表了著名的《GOTO 有害論》的論文,引起了長達(dá)數(shù)年的論戰(zhàn),并由此產(chǎn)生了結(jié)構(gòu)化程序
設(shè)計(jì)方 法。同時,第一個結(jié)構(gòu)化的程序語言 Pascal 也在此時誕生,并迅速流行起來。 結(jié)構(gòu)化程序設(shè)計(jì)的主要特點(diǎn)是拋棄 goto 語句,采取“自頂向下、逐步細(xì)化、模塊化”的指導(dǎo)思想。結(jié)構(gòu) 化程序設(shè)計(jì)本質(zhì)上還是一種面向過程的設(shè)計(jì)思想,但通過“自頂向下、逐步細(xì)化、模塊化”的方法,將軟件
的復(fù)雜度控制在一定范圍內(nèi),從而從整體上降低了軟件開發(fā)的復(fù)雜度。結(jié)構(gòu)化程序方法成為了 年 代軟件開發(fā)的潮流。 科學(xué)研究證明,人腦存在人類短期記憶一般一次只能記住 - 個事物,這就是著名的 +- 原理。結(jié)構(gòu)化 程序設(shè)計(jì)是面向過程設(shè)計(jì)思想的一個改進(jìn),使得軟件開發(fā)更加符合人類思維的 +- 特點(diǎn)。

第二次軟件危機(jī):面向?qū)ο蟪绦蛟O(shè)計(jì)

結(jié)構(gòu)化編程的風(fēng)靡在一定程度上緩解了軟件危機(jī),然而好景不長,隨著硬件的快速發(fā)展,業(yè)務(wù)需求越來越復(fù)雜,以及編程應(yīng)用領(lǐng)域越來越廣泛,第二次軟件危機(jī)很快就到來了。

第二次軟件危機(jī)的根本原因還是在于軟件生產(chǎn)力遠(yuǎn)遠(yuǎn)跟不上硬件和業(yè)務(wù)的發(fā)展,相比第一次軟件危機(jī)主要 體現(xiàn)在“復(fù)雜性”,第二次軟件危機(jī)主要體現(xiàn)在“可擴(kuò)展性”、“可維護(hù)性”上面。傳統(tǒng)的面向過程
(包括 結(jié)構(gòu)化程序設(shè)計(jì))方法已經(jīng)越來越不能適應(yīng)快速多變的業(yè)務(wù)需求了,軟件領(lǐng)域迫切希望找到新的銀彈來解 決軟件危機(jī),在這種背景下,面向?qū)ο蟮乃枷腴_始流行起來。 面向?qū)ο蟮乃枷氩⒉皇窃诘诙诬浖C(jī)后才出現(xiàn)的,早在 年的 Simula 語言中就開始提出來了,但 第二次軟件危機(jī)促進(jìn)了面向?qū)ο蟮陌l(fā)展。 面向?qū)ο笳嬲_始流行是在 1980s 年代,主要
得益于 C++的功 勞,后來的 Java、C#把面向?qū)ο笸葡蛄诵碌母叻濉5浆F(xiàn)在為止,面向?qū)ο笠呀?jīng)成為了主流的開發(fā)思想。

雖然面向?qū)ο箝_始也被當(dāng)做解決軟件危機(jī)的銀彈,但事實(shí)證明,和軟件工程一樣,面向?qū)ο笠膊皇倾y彈, 而只是一種新的軟件方法而已。 雖然面向?qū)ο蟛⒉皇墙鉀Q軟件危機(jī)的銀彈,但和面向過程相比,面向?qū)ο蟮乃枷敫淤N近人類思維的特點(diǎn), 更加脫離機(jī)器思維,是一次軟件設(shè)計(jì)思想上的飛躍。

詳細(xì)發(fā)展歷史

1940之前

圖:霍列瑞斯式的打孔機(jī)(pantograph),用于1890年的人口普查。
第一個編程語言比現(xiàn)代的計(jì)算機(jī)還早誕生。首先,這種語言是種編碼(en:code)。 于1801年發(fā)明的提花織布機(jī)(或稱甲卡提花織布機(jī)),運(yùn)用打孔卡上的坑洞來代表縫紉織布機(jī)的手臂動作,以便自動化產(chǎn)生裝飾的圖案。
愛達(dá)·勒芙蕾絲在1842年至1843年間花費(fèi)了九個月,將意大利數(shù)學(xué)家Luigi Menabrea關(guān)于查爾斯·巴貝奇新發(fā)表機(jī)器分析機(jī)的回憶錄翻譯完成。她于那篇文章后面附加了一個用分析機(jī)計(jì)算伯努利數(shù)方法的細(xì)節(jié),
被部分歷史學(xué)家認(rèn)為是世界上第一個電腦程序。
Herman Hollerith在觀察列車長對乘客票根在特定位置打洞的方式后,意識到他可以把信息編碼記載到打孔卡上,隨后根據(jù)這項(xiàng)發(fā)現(xiàn)使用打孔卡來編碼并紀(jì)錄1890年的人口統(tǒng)計(jì)數(shù)據(jù)。 第一個計(jì)算機(jī)代碼是針對他們的應(yīng)用面設(shè)計(jì)的。在20世紀(jì)的前十年主要是用十進(jìn)制來算數(shù),后來人們發(fā)現(xiàn)不只是用文字,也可以用數(shù)字來表現(xiàn)邏輯。舉例來說,阿隆佐·邱奇曾以公式化(formulaic)的方式表
達(dá)λ演算。圖靈機(jī)是一種紙帶標(biāo)記(tape-marking)機(jī)器(就像電話公司用的那種)操作方法抽象化后的集合。圖靈機(jī)這種通過有限數(shù)字(finite number)呈現(xiàn)機(jī)器的方式,奠定了程序如同馮·諾伊曼結(jié)構(gòu)計(jì)算
機(jī)中的數(shù)據(jù)一樣地存儲的基礎(chǔ)。但不同于λ演算,圖靈機(jī)的代碼并沒有辦法成為高級編程語言的基石,這是是因?yàn)樗饕挠猛臼欠治鏊惴ǖ膹?fù)雜度。
就像許多歷史上的"第一次"一樣,第一個現(xiàn)代編程語言也很難界定。最一開始是因?yàn)橛布拗贫薅苏Z言,打孔卡允許80行(column)的長度,但某幾行必須用來記錄卡片的順序。FORTRAN則納入了一些與
英文字詞相同的關(guān)鍵字,像是"IF"、"GOTO"(原字詞為go to),以及"CONTINUE"。之后采用磁鼓(magnetic drum)作為存儲器使用,也代表計(jì)算機(jī)程序也必須插入(interleave)到磁鼓的
轉(zhuǎn)動(rotation)中。和現(xiàn)今比較起來,這也讓編程語言必須更加依賴硬件(hardware-dependent)。 對部分的人認(rèn)為必須在"編程語言"的狀態(tài)確立之前,根據(jù)能力(power)以及可讀性(human-readability)的程度來決定歷史上第一個編程語言是什么語言。提花織布機(jī)和查爾斯·巴貝奇所制作的
差分機(jī)(en:Difference Engine)都具備在大量限制下,簡單描述機(jī)器應(yīng)運(yùn)行行為的語言。也有種并非設(shè)計(jì)給人類運(yùn)用的受限特定領(lǐng)域語言(en:domain-specific language),是將打孔卡運(yùn)
用到自動演奏鋼琴(en:player piano)上。

1940年代:

最早被確認(rèn)的現(xiàn)代化、電力引導(dǎo)(electrically powered)的計(jì)算機(jī)約在1940年代被創(chuàng)造出來。程序員在有限的速度及存儲器容量限制之下,撰寫人工調(diào)整(hand tuned)過的匯編語言程序。而且很快就
發(fā)現(xiàn)到使用匯編語言的這種撰寫方式需要花費(fèi)大量的腦力(intellectual effort)而且很容易出錯(error-prone)。 康拉德·楚澤于1948年發(fā)表了他所設(shè)計(jì)的Plankalkül編程語言的論文[]。但是在他有生之年卻未能將該語言實(shí)現(xiàn),而他原本的貢獻(xiàn)也被其他的發(fā)展所孤立。 在這段期間被開發(fā)出來的重要語言包括有: - Plankalkül (Konrad Zuse)
- ENIAC coding system
- C-

1950與1960年代:

有三個現(xiàn)代編程語言于1950年代被設(shè)計(jì)出來,這三者所派生的語言直到今日仍舊廣泛地被采用:

Fortran (),名稱取自"FORmula TRANslator"(公式翻譯器),由約翰·巴科斯等人所發(fā)明;
LISP,名稱取自"LISt Processor"(枚舉處理器),由約翰·麥卡錫等人所發(fā)明;
COBOL,名稱取自"COmmon Business Oriented Language"(通用商業(yè)導(dǎo)向語言),由被葛麗絲·霍普深刻影響的Short Range Committee所發(fā)明。
另一個1950年代晚期的里程碑是由美國與歐洲計(jì)算機(jī)學(xué)者針對"算法的新語言"所組成的委員會出版的ALGOL 60報(bào)告(名稱取自"ALGOrithmic Language"(算法語言))。這份報(bào)告強(qiáng)化了當(dāng)時許多關(guān)于計(jì)算的想法,并提出了兩個語言上的創(chuàng)新功能: 嵌套區(qū)塊結(jié)構(gòu):可以將有意義的代碼片段組群成一個區(qū)塊(block),而非轉(zhuǎn)成分散且特定命名的程序。
詞匯范圍(lexical scoping):區(qū)塊可以有區(qū)塊外部無法通過名稱訪問,屬于區(qū)塊本身的變量、程序以及函數(shù)。
另一個創(chuàng)新則是關(guān)于語言的描述方式: 一種名為巴科斯-諾爾范式 (BNF)的數(shù)學(xué)化精確符號被用于描述語言的語法。之后的編程語言幾乎全部都采用類似BNF的方式來描述程序語法中上下文無關(guān)的部分。
Algol 60對之后語言的設(shè)計(jì)上帶來了特殊的影響,部分的語言很快的就被廣泛采用。后續(xù)為了開發(fā)Algol的擴(kuò)充子集合,設(shè)計(jì)了一個名為Burroughs(en:Burroughs large systems)的大型系統(tǒng)。 延續(xù)Algol的關(guān)鍵構(gòu)想所產(chǎn)生的成果就是ALGOL : 語法跟語義變的更加正交(orthogonal),采用匿名的歷程(routines),采用高級(higher-order)功能的遞歸式輸入(typing)系統(tǒng)等等。
整個語言及語義的部分都通過為了描述語言而特別設(shè)計(jì)的Van Wijngaarden grammar來進(jìn)行正式的定義,而不僅止于上下文無關(guān)的部分。
Algol 68一些較少被使用到的語言功能(如同步與并行區(qū)塊)、語法快捷方式的復(fù)雜系統(tǒng),以及類型自動強(qiáng)制轉(zhuǎn)換(coercions),使得實(shí)現(xiàn)者興趣缺缺,也讓Algol 68獲得了很難用(diffcult)的名聲。尼克勞斯·維爾特就干脆離開該設(shè)計(jì)委員會,另外再開發(fā)出更簡單的Pascal語言。 在這段期間被開發(fā)出來的重要語言包括有: - Regional Assembly Language
- Autocode
- FORTRAN
- IPL (LISP的先驅(qū))
- FLOW-MATIC (COBOL的先驅(qū))
- COMTRAN (COBOL的先驅(qū))
- LISP
- ALGOL
- FACT (COBOL的先驅(qū))
- COBOL
- APL
- Simula
- SNOBOL
- CPL (C的先驅(qū))
- BASIC
- PL/I
- BCPL (C的先驅(qū))

1967-1978:確立了基礎(chǔ)范式

1960年代晚期至1970年代晚期的期間中,編程語言的發(fā)展也有了重大的成果。大多數(shù)現(xiàn)在所使用的主要語言范式都是在這段期間中發(fā)明的:

Simula,于1960年代晚期由奈加特與Dahl以Algol 60超集合的方式發(fā)展,同時也是第一個設(shè)計(jì)支持面向?qū)ο筮M(jìn)行開發(fā)的編程語言。
C,于1969至1973年間由貝爾實(shí)驗(yàn)室的研究人員丹尼斯·里奇與肯·湯普遜所開發(fā),是一種早期的系統(tǒng)程序設(shè)計(jì)(en:system programming)語言。
Smalltalk,于1970年代中期所開發(fā),是一個完全從零開始(ground-up)設(shè)計(jì)的面向?qū)ο缶幊陶Z言。
Prolog,于1972年由Colmerauer、Roussel,以及Kowalski所設(shè)計(jì),是第一個邏輯程序語言。
ML,于1973年由羅賓·米爾納所發(fā)明,是一個基于Lisp所建構(gòu)的多態(tài)(polymorphic)類型系統(tǒng),同時也是靜態(tài)類型函數(shù)編程語言的先驅(qū)。
這些語言都各自演展出自己的家族分支,現(xiàn)今多數(shù)現(xiàn)代編程語言的祖先都可以追溯他們其中至少一個以上。 在1960年代以及1970年代中結(jié)構(gòu)化程序設(shè)計(jì)的優(yōu)點(diǎn)也帶來許多的爭議,特別是在程序開發(fā)的過程中完全不使用GOTO。這項(xiàng)爭議跟語言本身的設(shè)計(jì)非常有關(guān)系:
某些語言并沒有包含GOTO,這也強(qiáng)迫程序員必須結(jié)構(gòu)化地編寫程序。盡管這個爭議在當(dāng)時吵翻了天,但幾乎所有的程序員都同意就算語言本身有提供GOTO的功能,
在除了少數(shù)罕見的情況下去使用GOTO是種不良的程序風(fēng)格。結(jié)果是之后世代的編程語言設(shè)計(jì)者發(fā)覺到結(jié)構(gòu)化編程語言的爭議實(shí)在既乏味又令人眼花撩亂。 在這段期間被開發(fā)出來的重要語言包括有: - Logo
- Pascal
- Forth
- C語言
- Smalltalk
- Prolog
- ML
- Scheme
- SQL (起先只是一種查詢語言,擴(kuò)充之后也具備了程序結(jié)構(gòu))

1980年代:增強(qiáng)、模塊、性能

1980年代的編程語言與之前相較顯得更為強(qiáng)大。C++合并了面向?qū)ο笠约跋到y(tǒng)程序設(shè)計(jì)。美國政府標(biāo)準(zhǔn)化一種名為Ada的系統(tǒng)編程語言并提供給國防承包商使用。日本以及其他地方運(yùn)用了大量的資金
對采用邏輯編程語言結(jié)構(gòu)的第五代語言進(jìn)行研究。函數(shù)編程語言社區(qū)則把焦點(diǎn)轉(zhuǎn)移到標(biāo)準(zhǔn)化ML及Lisp身上。這些活動都不是在開發(fā)新的范式,而是在將上個世代發(fā)明的構(gòu)想進(jìn)一步發(fā)揚(yáng)光大。 然而,在語言設(shè)計(jì)上有個重大的新趨勢,就是研究運(yùn)用模塊或大型組織化的程序單元來進(jìn)行大型系統(tǒng)的開發(fā)。Modula、Ada,以及ML都在1980年代發(fā)展出值得注意的模塊化系統(tǒng)。模塊化系統(tǒng)常拘
泥于采用泛型程序設(shè)計(jì)結(jié)構(gòu):泛型存在(generics being)、本質(zhì)(essence),參數(shù)化模塊(parameterized modules)。(參閱多態(tài)) 盡管沒有出現(xiàn)新的主要編程語言范式,許多研究人員仍就擴(kuò)充之前語言的構(gòu)想并將它們運(yùn)用到新的內(nèi)容上。舉例來說,Argus以及Emerald系統(tǒng)的語言配合面向?qū)ο笳Z言運(yùn)用到分布式系統(tǒng)上。 1980年代的編程語言實(shí)現(xiàn)情況也有所進(jìn)展。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)中RISC的進(jìn)展假定硬件應(yīng)當(dāng)為編譯器設(shè)計(jì),而非身為人類的匯編語言程序員。借由中央處理器速度增快的幫助,編譯技術(shù)也越來越積極,
RISC的進(jìn)展對高級語言編譯技術(shù)帶來不小的關(guān)注。 語言技術(shù)持續(xù)這些發(fā)展并邁入了1990年代。 在這段期間被開發(fā)出來的重要語言包括有: - Ada
- C++ (就像有類別的C)
- Common Lisp
- Eiffel
- Erlang
- Perl
- Tcl
- FL (Backus)

1990年代:互聯(lián)網(wǎng)時代

1990年代未見到有什么重大的創(chuàng)新,大多都是以前構(gòu)想的重組或變化。這段期間主要在推動的哲學(xué)是提升程序員的生產(chǎn)力。許多"快速應(yīng)用程序開發(fā)" (RAD) 語言也應(yīng)運(yùn)而生,
這些語言大多都有相應(yīng)的集成開發(fā)環(huán)境、垃圾回收等機(jī)制,且大多是先前語言的派生語言。這類型的語言也大多是面向?qū)ο蟮木幊陶Z言,包含有Object Pascal、Visual Basic,
以及C#。Java則是更加保守的語言,也具備垃圾回收機(jī)制。與其他類似語言相比,也受到更多的觀注。新的腳本語言則比RAD語言更新更好。這種語言并非直接從其他語言派生,
而且新的語法更加開放地(liberal)與功能契合。雖然腳本語言比RAD語言來的更有生產(chǎn)力,但大多會有因?yàn)樾〕绦蜉^為簡單,但是大型程序則難以使用腳本語言撰寫并維護(hù)的顧慮[來源請求]。
盡管如此,腳本語言還是網(wǎng)絡(luò)層面的應(yīng)用上大放異彩。 在這段期間被開發(fā)出來的重要語言包括有: - Haskell
- Python
- Visual Basic
- Ruby
- Lua
- CLOS (part of ANSI Common Lisp)
- Java
- Delphi (Object Pascal)
- JavaScript
- PHP
- REBOL
- D

現(xiàn)今的趨勢

編程語言持續(xù)在學(xué)術(shù)及企業(yè)兩個層面中發(fā)展進(jìn)化,目前的一些趨勢包含有:

在語言中增加安全性與可靠性驗(yàn)證機(jī)制:額外的堆棧檢查、信息流(information flow)控制,以及靜態(tài)線程安全。
提供模塊化的替代機(jī)制:混入(en:mixin)、委派(en:delegates),以及觀點(diǎn)導(dǎo)向。
組件導(dǎo)向(component-oriented)軟件開發(fā)
元編程、反射或是訪問抽象語法樹(en:Abstract syntax tree)
更重視分布式及移動式的應(yīng)用。
與數(shù)據(jù)庫的集成,包含XML及關(guān)系數(shù)據(jù)庫。
支持使用Unicode編寫程序,所以源代碼不會受到ASCII字符集的限制,而可以使用像是非拉丁語系的腳本或延伸標(biāo)點(diǎn)符號。
圖形用戶界面所使用的XML(XUL、XAML)。
在這段期間被開發(fā)出來的重要語言包括有: - C#
- Visual Basic .NET
- F#
- Scala
- Factor
- Windows PowerShell
- Clojure
- Go
- Swift (編程語言)

編程語言發(fā)展史上的杰出人物

約翰·巴科斯,發(fā)明了Fortran。
阿蘭·庫珀,開發(fā)了Visual Basic。
艾茲格·迪杰斯特拉,開創(chuàng)了正確運(yùn)用編程語言(proper programming)的框架。
詹姆斯·高斯林,開發(fā)了Oak,該語言為Java的先驅(qū)。
安德斯·海爾斯伯格,開發(fā)了Turbo Pascal、Delphi,以及C#。
葛麗絲·霍普,開發(fā)了Flow-Matic,該語言對COBOL造成了影響。
肯尼斯·艾佛森,開發(fā)了APL,并與Roger Hui合作開發(fā)了J。
比爾·喬伊,發(fā)明了vi,BSD Unix的前期作者,以及SunOS的發(fā)起人,該操作系統(tǒng)后來改名為Solaris。
艾倫·凱,開創(chuàng)了面向?qū)ο缶幊陶Z言,以及Smalltalk的發(fā)起人。
Brian Kernighan,與丹尼斯·里奇合著第一本C程序設(shè)計(jì)語言的書籍,同時也是AWK與AMPL程序設(shè)計(jì)語言的共同作者。
約翰·麥卡錫,發(fā)明了LISP。
約翰·馮·諾伊曼,操作系統(tǒng)概念的發(fā)起者。
丹尼斯·里奇,發(fā)明了C。
比雅尼·斯特勞斯特魯普,開發(fā)了C++。
肯·湯普遜,發(fā)明了Unix。
尼克勞斯·維爾特,發(fā)明了Pascal與Modula。
拉里·沃爾,創(chuàng)造了Perl與Perl 。
吉多·范羅蘇姆,創(chuàng)造了Python。

參考資料:https://zh.wikipedia.org/zh-cn/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80%E6%AD%B7%E5%8F%B2

總結(jié)

以上是生活随笔為你收集整理的Python3 面向对象编程之程序设计思想发展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。