關于編程語言都是誰發明的
編程語言是用來定義計算機程序的形式語言。以下是學習啦小編為你整理的關于編程語言都是誰發明的,希望能幫到你。
一、 編程語言是誰發明的
奧古斯塔·阿達·金,勒芙蕾絲伯爵夫人(Augusta Ada King, Countess of Lovelace,1815年12月10日-1852年11月27日),原名奧古斯塔·阿達·拜倫(Augusta Ada Byron),通稱阿達·洛芙萊斯(Ada Lovelace),是著名英國詩人拜倫之女,數學家。計算機程序創始人,建立了循環和子程序概念。
為計算程序擬定“算法”,寫作的第一份“程序設計流程圖”,被珍視為“第一位給計算機寫程序的人”。為了紀念阿達·奧古斯塔對現代電腦與軟件工程所產生的重大影響,美國國防部將耗費巨資、歷時近20年研制成功的高級程序語言命名為Ada語言,它被公認為是第四代計算機語言的主要代表。
在1842年,人稱“數字女王”的阿達·洛芙萊斯(Ada Lovelace)編寫了歷史上首款電腦程序。
在1834年,阿達的朋友——英國數學家、發明家兼機械工程師查爾斯·巴貝其(Charles Babbage)——發明了一臺分析機;阿達則致力于為該分析機編寫算法,并于1843 年公布了世界上第一套算法。
巴貝其分析機后來被認為是最早期的計算機雛形,而阿達的算法則被認為是最早的計算機程序和軟件。
1852年,阿達為了治療子宮頸癌,卻因此死于失血過多,得年36歲。無獨有偶,她與她父親拜倫死于相同年齡,一樣死于治療中的失血過多。她留下了兩個兒子與一位女兒—安妮·布蘭特貴女。
依她的遺言,阿達葬于諾丁漢哈克諾的圣 瑪麗亞·抹大拉教堂,長眠在父親的身旁。
在1842年與1843年其間,阿達花了9個月的時間翻譯意大利數學家路易吉·米那比亞對巴貝奇最新的計算機設計書(即分析機概論)所留下的備忘錄。在這部譯文里,她附加許多注記,內容詳細說明用計算機進行伯努利數的運算方式,而被認為是世界上第一個電腦程式;因此,阿達也被認為是世界上第一位程式設計師。巴貝奇在他所著的《經過哲學家人生》(Passages from the Life of a Philosopher, 1846)里留有下面的述敘:
倫敦科學館分析機復制品
“我認為她為米那比亞的備忘錄增加許多注記,并加入了一些想法。雖然這些想法是由我們一起討論出來的,但是最后被寫進注記里的想法確確實實是她自己的構想。我將許多代數運算的問題交給她處理,這些工作也與伯努利數的運算相關。在她所送回給我的文件,更修正了我先前在程序里的重大錯誤。”
阿達的文章創造出許多巴貝奇也未曾提到的新構想,比如阿達曾經預言道:“這個機器未來可以用來排版、編曲或是各種更復雜的用途。”
她死后一百年,于1953年,阿達之前對查爾斯·巴貝奇的《分析機概論》所留下的筆記被重新公布,并被公認對現代計算機與軟件工程造成了重大影響。[2]
在1980年12月10日,美國國防部制作了一個新的高級計算機編程語言——Ada,以紀念阿達·洛芙萊斯。
在微軟的Wins產品里也可以找到阿達的全息圖標簽。
英國計算機公會每年都頒發以阿達命名的軟件工程創新大獎。
二、語言種類
匯編語言
匯編語言的實質和機器語言是相同的,都是直接對硬件操作,只不過指令采用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作。例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能夠實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
腳本語言
腳本語言(Script language,scripting language,scripting programming language)是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。此命名起源于一個腳本“screenplay”,每次運行都會使對話框逐字重復。[1]
早期的腳本語言經常被稱為批量處理語言或工作控制語言。一個腳本通常是解釋運行而非編譯。
雖然許多腳本語言都超越了計算機簡單任務自動化的領域,成熟到可以編寫精巧的程序,但仍然還是被稱為腳本。幾乎所有計算機系統的各個層次都有一種腳本語言。包括操作系統層,如計算機游戲,網絡應用程序,字處理文檔,網絡軟件等。在許多方面,高級編程語言和腳本語言之間互相交叉,二者之間沒有明確的界限。
腳本編程速度更快,且腳本文件明顯小于如同類C程序文件。這種靈活性是以執行效率為代價的。腳本通常是解釋執行的,速度可能很慢,且運行時更耗內存。在很多案例中,如編寫一些數十行的小腳本,它所帶來的編寫優勢就遠遠超過了運行時的劣勢,尤其是在當前程序員工資趨高和硬件成本趨低時。
腳本語言是一種解釋性的語言,例如Python[2] 、vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等可以編譯成二進制代碼,以可執行文件的形式存在.[3]
機器語言
由于計算機內部只能接受二進制代碼,因此,用二進制代碼0和1描述的指令稱為機器指令,全部機器指令的集合構成計算機的機器語言,用機器語言編程的程序稱為目標程序。只有目標程序才能被計算機直接識別和執行。但是機器語言編寫的程序無明顯特征,難以記憶,不便閱讀和書寫,且依賴于具體機種,局限性很大,機器語言屬于低級語言。
高級語言
高級語言是大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,并且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由于省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對于匯編語言而言,它并不是特指某一種具體的語言,而是包括了很多編程語言,像最簡單的編程語言PASCAL語言也屬于高級語言。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似于我們日常生活中的“同聲翻譯”,應用程序源代碼一邊由相應語言的解釋器“翻譯”成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。如較早時期的Qbasic語言。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼“翻譯”成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。
看過關于編程語言都是誰發明的故事