下一代編譯型語言是什麼
1. 什麼樣的語言是編譯執行語言
編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以後要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。
這里提一下編譯型語言和解釋型語言的區別:解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。
編譯型語言有:C、C++、Delphi等
解釋型語言有:java、VB等
2. 編程都有哪些語言
匯編語言
由於機器語言不方便人們的識別和記憶,人們就發明了以標識符來代替機器語言命令也就有了匯編語言,亦稱為符號語言,也是屬於低級語言。在不同的設備中,匯編語言對應著不同的機器語言指令集,特定的匯編語言和特定的機器語言指令集是一一對應的,但不同的是由於設備不同,平台之間不可直接移植,也就是你不能把電腦的指令集延用到電飯鍋上
匯編語言採用人類容易記憶和識別的助記符來代表一些0和1的指令,比如AND代表加法。
高級語言
C、C++、Java、python、Ruby、易語言等都是高級語言,相對於低級語言來說,高級語言易於識別和記憶,也更接近人類的思維方式,編寫容易讀寫性好,開發效率更高。目前從業都大多都學習高級語言
重點是,高級語言是可移植的,做少量修改甚至無需修改,即可將代碼運行在不同平台的計算機上。
編譯型語言和解釋型語言(相對於高級語言而言)。
高級語言的可移植性是基於編譯或者解釋這個過程,對人類友好的高級語言只有經過處理才能被操作系統識別並載入到計算機硬體上最終執行。
高級語言的編譯和解釋都是面向操作系統而言,並非面對計算機硬體。
編譯型語言
編譯就是把一個事先編好的叫做「編譯程序」的機器語言程序安裝在計算機內,當需要執行高級語言程序時,編譯程序就把整個「高級語言的源程序」翻譯成「機器語言的目標程序」。
解釋型語言
高級語言進入計算機後,解釋程序一邊掃描一邊解釋,逐句輸入逐句翻譯,計算機一行一行執行,並不產生目標程序。
比如JAVA就是一種解釋型高級語言。
編譯型語言執行速度快,不依賴語言環境運行,跨平台差
解釋型跨平台好,一份代碼,到處使用,缺點是執行速度慢,依賴解釋器運行.
3. 計算機程序設計語言分為四類
計算機程序設計語言分為四類
為了讓計算機解決實際問題,人們從一開始就不斷地開展程序設計工作,這里的「程序」就是計算機能夠執行的指令代碼(機器碼和其它代碼)。程序設計人員還必須在一個被稱為「計算機程序設計語言(也可以稱為編譯或解釋性語言)」的環境中開展編程。
計算機程序設計語言
是指程序設計人員和計算機都可以識別的程序代碼(包括0和1機器代碼)規則,是人與計算機進行交流的工具,可以把程序設計語言分為以下四類。
1.機器語言
機器語言是一種CPU指令系統, 被稱為CPU的機器語言, 它是CPU可以識別的一組由0和1序列構成的指令碼。用機器語言編程序, 就是從所使用的CPU的指令系統中挑選合適的指令,組成一個指令序列。這種程序可以被機器直接理解並執行,速度很快,但由於不直觀、難記、難以理解、不易查錯、開發周期長,很難推廣應用下去,因此,只有專業人員在編制對於執行速度有很高要求的程序時才採用這種代碼。
2.匯編語言
為了減輕編程者的勞動強度,人們使用一些用於幫助記憶的符號來代替機器語言中的0、1機器指令代碼序列,使得編程效率和質量得到極大的提高。把這些助記符組成的指令系統稱為匯編語言。匯編語言是指令與機器語言指令基本上是一一對應的。由於這些助記符號不能被機器直接識別,所以匯編語言代碼程序必須被編譯成機器語言程序才能被機器理解和執行。編譯之前的程序被稱為「源程序」,編譯之後的被稱為「目標程序」。
匯編語言與機器語言都是因CPU的不同而不同, 所以統稱為「面向機器的語言」。使用這類語言,可以編出效率極高的程序,但對程序設計人員的要求也很高。他們不僅要考慮解題思路,還要熟悉機器的內部結構,一般的人很難掌握這類程序設計語言,還是不能大范圍推廣應用。
3.面向過程的語言
面向過程思想是一種以過程為中心的編程思想,是以什麼正在發生為主要目標進行編程。面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
把解題的過程看做是數據被加工的過程,這種程序設計語言稱為面向過程的程序設計語言。常用的面向過程的語言有C、Fortran、Basic、Pascal等。使用這類編程語言,程序設計者可以不關心機器的內部結構甚至工作原理,把主要精力集中在解決問題的思路和方法上。這類擺脫了硬體束縛的程序設計語言被統稱為高級語言。高級語言的出現大大地提高了編程效率,使人們能夠開發出越來越大、功能越來越強的程序。要運行使用面向過程語言編制的程序,一般有兩種方法:(1)解釋型,(2)編譯型。
解釋型語言在程序編制完成之後,按照程序編排的順序一條條地把指令語句轉換為機器代碼然後執行。因為每次運行中每條語句都要進行轉換和執行這兩個步驟,所以解釋型語言的執行速度不快,並且每次執行都離不開語言環境。
編譯型語言在程序設計完成之後,使用語言本身提供的編譯(Compile)程序與連接(Link)程序把源程序編譯連接成為可執行文件(擴展名一般為「.exe」)。可執行文件就能脫離語言設計環境獨立運行了。當前比較流行的程序設計語言多數是編譯型的。也有些語言既可以解釋型地運行程序,也可以對程序進行編譯連接。
解釋型運行往往用在程序的調試過程中,而設計完成之後就可以把它編譯成為獨立的可執行文件。
計算機只能識別0、1,並不能能識別其他的語言。程序員在開發的時候,可以使用很多種語言,如c語言,java,python。使用不同的語言開發出來的程序,如果想要執行,那麼最終必須要變成機器語言才能執行。那怎麼樣變成機器語言,我們大家可以找一個翻譯。這個翻譯就專門負責把編寫的代碼翻譯成機器能夠識別的機器語言,叫做編譯器,不同的編譯器,就負責把不同的語言翻譯成計算機能夠識別的機器語言來,這個就是編譯器的作用。
根據編譯器對源代碼翻譯的方式不同,編譯器分成兩種類型,一種類型叫編譯器。而另一種類型叫做解釋器。
使用編譯器編譯的語言,通常稱為編譯性語言,而使用解釋器解釋的語言叫做解釋性語什麼又是編譯性語言,什麼又是解釋性語言?
這兩種語言到底是怎麼工作的?最典型的代表就是C語言、C 這種語言都叫做編譯性語言。編譯性語言是怎麼工作的,人們來看c語言或者C 的程序在自己的開發環境內來編寫代碼。那當程序開發完成之後,成員就把開發完成的源代碼統一交給編譯器。編譯器對所有源代碼進行翻譯。翻譯成機器語言,並且最終保存成一個可執行的文件,當我們需要執行這個文件的時候,在windows下最常見的操作就是雙擊一下可執行文件的圖標,就可以把這個文件交給CPU去執行。編譯性語言的特點,程序員在自己的開發環境內開發程序開發完成之後,統一交給編譯器。編譯器統一進行翻譯,並且最終生成一個獨立的可執行文件。用戶在需要的時候,就可以執行可執行文件看到最終的效果。
解釋性語言的特點,python語言就是一個解釋性語言,那解釋性語言在開發的時候,跟編譯性語言並沒有太大的區別,成員仍然是在自己的開發環境內來編寫代碼。假設現在寫了三行代碼,那這三行代碼怎麼運行啊?要想運行解釋性語言,我們就把這個源程序丟給解釋器。解釋器拿到源程序之後,會按照從上向下的方式逐一讀取代碼中央解釋器稱一行一行來翻譯的。首先讀出第一行代碼,就立刻翻譯成機器碼。翻譯完成之後,就丟給CPU去執行CPU在執行的過程中,解釋器在讀取第二行代碼進行翻譯。翻譯完成之後,再交給CPU去執行,然後依次類推,從上到下一次讀取每行代碼讀取一行。翻譯一行執行一行。
編譯性語言是統一編譯一次性執行。
解釋性語言是一行一行代碼進行翻譯,翻譯一行執行一行,編譯性語言最終產生的文件執行速度快,解釋性語言執行速度慢。因為最終生成的可執行文件中不需要任何的介入。
解釋性語言不同。解釋語言在執行的時候,必須是翻譯一行執行一行。解釋性語言的執行速度就相對慢一些,需要考慮的因素就所謂跨平台,就是我們開發完成的程序,既可以在windows上運行,也可以在linux上運行,還可以在MAC上運行一次編寫在任何一個平台上都能運行,這種方式就叫做跨平台。
如果我們使用的編譯器是在windows平台上編譯的程序,那麼最終生成的可執行文件只能在windows平台上運行,它並不能夠在linux上運行,並不能也不能在MAC上運行,這個是編譯性語言的特點。如果使用某一個操作系統的編譯器,那麼,這個編譯器最終生成的可執行文件就只能在這個操作系統上運行,而不能在其他操作系統上運行。
解釋性語言相對來說就簡單了,程序員仍按照習慣的方式來編寫代碼,程序編寫完成之後,如果想要執行,如果是windows,就在windows上安裝一套windows的解釋器,如果想在linux上執行呢,就在linux上安裝一套linux的解釋器,就是在不同的操作系統上安裝不同的解釋器。既然在每個操作系統上都已經安裝了解釋器,那源代碼就不需要任何的修改。這個就是解釋性語言在跨平台上的優勢。至於程序的執行是解釋器的工作,只需要在不同操作系統中安裝不同的解釋器同一份代碼就可以在不同操作系統中執行了。
開發完成的源程序要想執行,就必須找一個翻譯性語言要找的翻譯叫做編譯器,解釋性語言要找的翻譯叫做解釋器,而從執行效率上講,編譯性語言執行效率要比解釋性語言執行效率高,但是從跨平台來講解釋性語言跨平台能力要比邊形語言跨平台能力要強好。
4.面向對象的程序設計語言
隨著像Windows這樣具有圖形用戶界面的操作系統的廣泛使用,人們又形成了一種面向對象的程序設計思想。這種思想把整個現實世界或是其一部分看做是由不同種類對象(Object)組成的有機整體。同一類型的對象既有共同點,又有各自不同的特性。各種類型的對象之間通過發送消息進行聯系,消息能夠激發對象做出相應的反應,從而構成了一個運動的整體。採用了面向對象思想的程序設計語言就是面向對象的程序設計語言,當前使用較多的面向對象語言有Visual_Basic、C++、Java等。
面向對象語言:是一類以對象作為基本程序結構單位的程序設計語言,指用於描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。面向對象語言:系統中的基本構件可識認為一組可識別的離散對象,在基本層次關系的不同類中共享數據和操作。
Python是一個完全面向對象的語言,那什麼又是面向對象?
面向對象是一種思維方式,同時也是一門程序設計技術。程序員每天的工作是使用自己熟悉的語言來解決一個又一個問題,那在解決問題的時候,有兩種方式,第一種方式要解決這個問題,自己一步一步把這個問題解決掉,自己來逐步的解決一個問題。第二種方式就是面向對象的這種解決問題的方法,用面向對象來解決一個問題的時候,通常我們要首先考慮由誰(這里指對象,而其具備解決該問題能力)來做。找一個別人來幫助自己做事情,而我們找到了這個對象,已經具備了解決這個問題的能力。這個對象做完之後,問題也同樣得到了解決。這個就是面向對象的解決方法。
第一種方式自己逐步來解決問題的每一個步驟,第二種方式我們來找一個對象替自己做事情,對象又具有做這件事情的能力。
如果開發程序,當然更傾向於第二種方式。找個對象來完成,這個思路就是面向對象的思維方式。在做事情的時候,找一個具有能力的對象,幫我們把問題解決掉就好了。這個就是從思維方式角度所謂面向對象的概念。
python是一個完全面向對象的語言。在python中,無論是函數,模塊,數字以及字元串等等等等,全部都是對象。在python中所有的東西都是對象,python這門語言中已經提供有各種各樣,具有很強大能力的對象。在工作中遇到不同的問題,就找不同的對象來幫我們解決問題就可以。這個是python面向對象語言的一個特點,同時大家在看第二個特點。Python應用一個強大的標准庫,所以強大的標准庫在python這門語言中已經內置有非常非常多,是具有強大能力的對象。當在開發時遇到不同的問題,可以在標准庫中來找不同的對象,幫我們把問題解決掉就好,在python的標准庫中提供有類似於系統管理,網路文本處理等,它的功能還是非常強大的。第三個特點:Python社區提供了大量的第三方模塊,什麼又是第三方模塊?所謂第三方模塊就是跟標准庫類似的一個庫,但是第三方模塊並不是由官方來開發的,而是由網路上非常非常多python愛好者來開發的。那這些愛好者為什麼要開發第三方模塊原因很簡單,因為標准估雖然很強大,但是標准庫的力量有限,而全世界有非常多的python愛好者以及開發團隊或者公司。針對當今市場上最主流的一些應用技術開發有非常多的模塊,把自己開發好的這些模塊開源出來。這些模塊都涉及到哪些領域,分別包括有科學計算,人工智慧機器學習,以及web開發大數據等。在python社區中有大量的第三方模塊,而這些第三方模塊在使用的,基本的方式是跟標准庫類似的,python這門語言既有一個能力非常強大的標准庫,又有一個非常非常豐富的第三方模塊。那麼,作為python的成員在開發的時候是不就非常容易了。面向對象的思維方式,就是在做事情之前,先找一個具有能力的對象,幫我們來解決問題。而python的標准庫也好。Python第三方模塊也好,實際上內置有大量的具有強大能力的對象,我們在使用python進行日常開發時,只需要從標准庫中或者第三方模塊中找到。能夠幫我們解決問題的對象,並且使用對象已經具有的能力,通常就可以快速的把我們日常開發中需要解決的問題搞定了,Python提供有強大的標准庫和第三方模塊。在開發時,只需要找到相應具有能力的對象,就可以解決日常工作中遇到的問題了。
程序設計語言的支持環境
操作系統是計算機最重要的一類軟體,其他程序的運行都要在操作系統支持與控制下進行。設計者編制的源程序並不能直接操作計算機,而要在要具體的程序設計語言的支持下通過操作系統來完成。它們之間如何相互配合,因語言、操作系統、計算機硬體的不同而不同。大多數情況下,編程人員沒必要關心程序每一個細節。