Go語言的創(chuàng)始人是Rob Pike、Ken Thompson和Robert Griesemer。他們在Google工作時(shí),于2007年開始設(shè)計(jì)和開發(fā)該語言,稱之為"Go"。Go語言于2009年正式發(fā)布,并推廣到全球?,F(xiàn)在,Go語言已成為一種流行的編程語言,廣泛應(yīng)用于云計(jì)算、分布式系統(tǒng)、網(wǎng)絡(luò)編程、人工智能等領(lǐng)域。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了和碩免費(fèi)建站歡迎大家使用!
中國語言之父是《馬氏文通》的作者馬建忠,出生常州陽湖縣,要求廢除漢字,并且將”越語“謬稱為吳語的趙元任不配!!
Dijkstra被西方學(xué)術(shù)界稱為“結(jié)構(gòu)程序設(shè)計(jì)之父”和“先知先覺”(Oracle),他一生致力于把程序設(shè)計(jì)發(fā)展成一門科學(xué)。科學(xué)研究的帥才最重要的素質(zhì)是洞察力(Vision和Insight),能夠發(fā)現(xiàn)有前景的新領(lǐng)域或在新領(lǐng)域內(nèi)發(fā)現(xiàn)和解決最關(guān)鍵的問題。下面僅舉幾例說明Dijkstra的洞察力。
解決編譯系統(tǒng)中的關(guān)鍵問題
FORTRAN是最早得到一定程度推廣的高級語言,但FORTRAN的編譯系統(tǒng)并未科學(xué)地解決一些主要的難題。最早提出用堆棧(stack)來編譯復(fù)雜公式的是德國的Bauer和Samelson,他們的著名論文“順序公式的翻譯”(Sequential Formula Translation)是編譯方面的經(jīng)典論文。曾有報(bào)道說Dijkstra是堆棧的發(fā)明人,這恐怕不符事實(shí)。Dijkstra發(fā)展了堆棧的概念,使之用于整個編譯,以及目標(biāo)代碼運(yùn)行時(shí)的動態(tài)存儲分配,并在此基礎(chǔ)上和Jenson完成了世界上第一個ALGOL60編譯系統(tǒng),采用了他首創(chuàng)的優(yōu)先數(shù)編譯算法。其中遞歸調(diào)用子程序時(shí)的環(huán)境維護(hù)是Dijkstra的重要貢獻(xiàn),Display這一術(shù)語就是當(dāng)時(shí)他發(fā)明的,這是用來維護(hù)動態(tài)環(huán)境的一組寄存器(軟件),其結(jié)構(gòu)清晰并能適應(yīng)任何復(fù)雜情況。我于20世紀(jì)60年代初看完他的文章后馬上想到,假如計(jì)算機(jī)硬件中有對應(yīng)的設(shè)備將極大地提高軟件的運(yùn)行效率。
Dijkstra是ALGOL 60報(bào)告的主要起草者之一,1972年Dijkstra在他獲得ACM圖靈獎的講演中,仍對這一報(bào)告給予高度評價(jià):“只有極少極少幾個像ALGOL60報(bào)告這樣短的文件能給計(jì)算機(jī)界帶來如此深遠(yuǎn)的影響?!?/p>
同步進(jìn)程的協(xié)調(diào)和操作系統(tǒng)的結(jié)構(gòu)
Dijkstra在1950~1952年期間曾當(dāng)過三年程序員,在從事硬件中斷處理程序的研制中,他發(fā)現(xiàn)一些程序錯誤在多個中斷同時(shí)出現(xiàn)的情況下無法再現(xiàn),很容易被當(dāng)作硬件的瞬間故障,這一現(xiàn)象使Dijkstra毛骨悚然,促使他后來鉆研用科學(xué)方法從事軟件研制。操作系統(tǒng)是當(dāng)時(shí)最復(fù)雜的軟件,1965年Dijkstra在ACM通訊上發(fā)表了僅一頁長的短文“并行程序的控制”,這是他在操作系統(tǒng)領(lǐng)域的第一個重要貢獻(xiàn)。該文提出了并行程序互鎖問題的一個解決方案。“死鎖”(Deadly embrace)這一術(shù)語是Dijkstra發(fā)明的。1967年在首屆操作系統(tǒng)原理研討會上,Dijkstra介紹了他和幾個博士生研制的THE多道程序系統(tǒng)。THE系統(tǒng)的目的是驗(yàn)證Dijkstra關(guān)于操作系統(tǒng)原理、結(jié)構(gòu)、同步進(jìn)程通信機(jī)制等方面的一系列新想法。今天已經(jīng)普遍采用的系統(tǒng)的多層結(jié)構(gòu)、抽象、上層不需了解下層的詳細(xì)細(xì)節(jié)等科學(xué)原則就是當(dāng)時(shí)Dijkstra提出的,引起了強(qiáng)烈反響;同步進(jìn)程通信的信號量Semaphore這一術(shù)語也是Dijkstra當(dāng)時(shí)創(chuàng)造的。
上世紀(jì)六十年代操作系統(tǒng)的研制經(jīng)受了一系列重大挫折,典型的例子是OS 360。而Dijkstra為首的一批科學(xué)家的努力,使操作系統(tǒng)走上了健康發(fā)展的道路。
Go To語句有害和結(jié)構(gòu)程序設(shè)計(jì)
結(jié)構(gòu)程序設(shè)計(jì)被稱為軟件發(fā)展中的第三個里程碑(第一、二個里程碑是子程序和高級語言)。早在1965年召開的IFIP會議上,Dijkstra就提出“Go To語句可以從高級語言中取消”,“一個程序的質(zhì)量與程序中所含的Go To語句的數(shù)量成反比”。但是,Dijkstra講話的影響很小,當(dāng)時(shí)人們正忙于IBM 360系列的使用;而IBM 360的主要語言之一是FORTRAN,Go To語句則是FORTRAN的支柱。
1968年Dijkstra給ACM通訊寫了一篇短文,該文后改成信件形式刊登,以便早日發(fā)表,這就是具有歷史意義的、著名的“Go To Letter”。Dijkstra在信中建議:“Go To語句太容易把程序弄亂,應(yīng)從一切高級語言中去掉;只用三種基本控制結(jié)構(gòu)就可以寫各種程序,而這樣的程序可以由上而下閱讀而不會返回”。這封信引起了激烈的討論。人們逐漸認(rèn)識到:不是一個簡單地去掉Go To的問題,而是促進(jìn)一種新的程序設(shè)計(jì)觀念、方法和風(fēng)格,以期顯著提高軟件生產(chǎn)率和降低軟件維護(hù)代價(jià)。當(dāng)時(shí)采用結(jié)構(gòu)程序設(shè)計(jì)方法的兩個最著名項(xiàng)目是:
1. 紐約時(shí)報(bào)信息庫管理系統(tǒng),含8.3萬行源代碼,只花了1年,第一年使用過程中,只發(fā)生過一次使系統(tǒng)失效的軟件故障;
2. 美國宇航局空間實(shí)驗(yàn)室操作的模擬系統(tǒng),含40萬行源代碼,只用兩年時(shí)間就全部完成。
上個世紀(jì)六十年代末到七十年代初,上述這兩個系統(tǒng)可以算得上是大型軟件了。
結(jié)構(gòu)程序設(shè)計(jì)概念影響了后來的高級語言,也影響了一代程序員的風(fēng)格和習(xí)慣。
堅(jiān)持真理,不惜反對恩師
ALGOL 68語言是Van Wijingaarden為主設(shè)計(jì)的,得到了IFIP下屬的工作小組的多數(shù)票通過。Wirth、Dijkstra和Hoare等工作小組成員發(fā)表了“少數(shù)派報(bào)告”,強(qiáng)烈反對這一語言及其表達(dá)方式。ALGOL 68的表達(dá)方式獨(dú)特而嚴(yán)格,但不易理解,是Wijingaarden的發(fā)明。事實(shí)證明,少數(shù)派是正確的,ALGOL 68很快就夭折了。
要知道,Wijingaarden是Dijkstra的恩師。上世紀(jì)五十年代初Dijkstra在阿姆斯特丹數(shù)學(xué)中心編程序時(shí)Wijingaarden是他的領(lǐng)導(dǎo)。Dijkstra當(dāng)時(shí)正在攻讀理論物理學(xué)位,他發(fā)現(xiàn)理論物理課程和程序設(shè)計(jì)在精力上越來越?jīng)_突,他又拿不定主意,到底成為一個理論物理學(xué)家還是選擇程序設(shè)計(jì)作為自己的職業(yè),而他當(dāng)時(shí)又擔(dān)心程序設(shè)計(jì)能否成為被尊敬的學(xué)科。充滿不安心情的Dijkstra于1952年春的一個早晨敲開了Wijingaarden辦公室的門。幾個小時(shí)的談話,使Dijkstra變了另外一個人,因?yàn)閃ijingaarden向他指明了程序設(shè)計(jì)這門學(xué)科正處在起步階段,因而有重大的機(jī)會,Dijkstra可以努力使程序設(shè)計(jì)變成一個受人尊敬的學(xué)科。Dijkstra把這次談話稱為他一生中的轉(zhuǎn)折點(diǎn),于是決定盡快結(jié)束理論物理研究,全身心地投入程序設(shè)計(jì)。Dijkstra說,為此他應(yīng)該終生感謝Wijingaarden。但是Dijkstra還是強(qiáng)烈地反對其恩師的得意之作ALGOL 68,少數(shù)派報(bào)告雖被IFIP壓制,但真理終究得到了證明,后來的成功語言都是背離ALGOL 68方向的。
Dijkstra的名言今天仍有現(xiàn)實(shí)意義
Dijkstra的主要貢獻(xiàn)是在上個世紀(jì)五十年代末到七十年代初,也就是他二十多歲到四十歲出頭這段時(shí)間完成的?;貞涍@些過去的成就是想強(qiáng)調(diào):洞察力對一個科學(xué)家是何等的重要! Dijkstra獲圖靈獎以后,軟件領(lǐng)域又涌現(xiàn)出圖形用戶界面、面向?qū)ο蠹夹g(shù)等一系列新的里程碑,因特網(wǎng)更是帶來一個全新的時(shí)代。但是三十年前Dijkstra關(guān)于程序可靠性的一些名言至今仍有意義:
“有效的程序員不應(yīng)該浪費(fèi)很多時(shí)間用于程序調(diào)試,他們應(yīng)該一開始就不要把故障引入。”
“程序測試是表明存在故障的非常有效的方法,但對于證明沒有故障,調(diào)試是很無能為力的?!?/p>
Dijkstra大力提倡程序正確性證明,但這一方法離實(shí)用還有相當(dāng)距離,因?yàn)橐欢卧闯绦虻恼_性證明的文字往往比源代碼還要長,所以充分的軟件測試今天仍不可或缺。但是程序員的科學(xué)訓(xùn)練是十分重要的,有人曾做過一個試驗(yàn):一個題目由一批印度程序員編程,其結(jié)果驚人地相似;而由一批中國程序員來做,編出的程序五花八門。中國的軟件人員有時(shí)把創(chuàng)造性放在不恰當(dāng)?shù)牡胤健V挥幸?guī)范的科學(xué)的編程,一個大項(xiàng)目才能得到有效的管理,其質(zhì)量才有保證。
少兒編程真正的起源來自于Logo語言之父、構(gòu)造主義(Constructionism)學(xué)習(xí)理論的提出者——西蒙·派珀特(Seymour Papert)教授。
派珀特教授專門為孩子發(fā)明了LOGO語言,1967年從LISP語言的基礎(chǔ)上發(fā)明,比C語言還要早一些。與一般的計(jì)算機(jī)語言不同的是,LOGO語言輸出的結(jié)果是幾何圖形。應(yīng)用到教育領(lǐng)域后,孩子就可以通過編程的方式讓計(jì)算機(jī)程序擁有圖形化的展現(xiàn)。派普特也由此被稱為“少兒編程之父”。妙小程少兒編程希望可以幫助到你。
來源1:少兒編程是什么,為什么要讓孩子學(xué)習(xí)少兒編程?
來源2:google?search