人與計算機之間溝通交流的媒介php
編程語言俗稱「計算機語言」,種類很是的多,總的來講能夠分紅機器語言、彙編語言、高級語言三大類。python
將人的思惟邏輯經過計算機能讀懂的方式寫下來。數據庫
解放人力,讓計算機可以按照人的思惟邏輯去幫你作事編程
優勢:計算機可以直接讀懂,速度快服務器
缺點:開發效率極低編程語言
ps:站在計算機的角度說計算機可以聽懂的話,函數
不一樣型號的CPU都有各自的機器語言,即指令系統。性能
0000,0000,000000010000 表明 LOAD A, 16學習
0000,0001,000000000001 表明 LOAD B, 1測試
0001,0001,000000010000 表明 STORE B, 16
0001,0001,000000000001 表明 STORE B, 1[1]
彙編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其餘可編程器件的低級語言,亦稱爲符號語言。
在彙編語言中,用助記符代替機器指令的操做碼,用地址符號或標號代替指令或操做數的地址。在不一樣的設備中,彙編語言對應着不一樣的機器語言指令集,經過彙編過程轉換成機器指令。特定的彙編語言和特定的機器語言指令集是一一對應的,不一樣平臺之間不可直接移植。
例如:打印一句hello world須要些如下代碼
; hello.asm section .data ; 數據段聲明 msg db "Hello, world!", 0xA ; 要輸出的字符串 len equ $ - msg ; 字串長度 section .text ; 代碼段聲明 global _start ; 指定入口函數 _start: ; 在屏幕上顯示一個字符串 mov edx, len ; 參數三:字符串長度 mov ecx, msg ; 參數二:要顯示的字符串 mov ebx, 1 ; 參數一:文件描述符(stdout) mov eax, 4 ; 系統調用號(sys_write) int 0x80 ; 調用內核功能 ; 退出程序 mov ebx, 0 ; 參數一:退出代碼 mov eax, 1 ; 系統調用號(sys_exit) int 0x80 ; 調用內核功能
優勢:開發效率高於機器語言
高級語言(High-level programming language)對於機器語言來講,他就是一種指令機的體系。在這種語言下,語法和結構更接近於人們用的語言,並且比較遠離對硬件的直接操做,讓通常人通過學習後就能夠去編程。
簡單來講,高級語言分爲編譯型語言和解釋型語言
通常而言,用編譯語言寫成的程式,在執行期的執行速度,一般比用直譯語言寫的程式快。由於程式在編譯期,已經被預先編譯成機器碼,能夠直接執行,不用像直譯語言同樣,還要多一道直譯程序。
可是要先編譯,以後才能執行,這也形成了編譯語言的缺點。通常而言,編譯語言的程式開發速度,以及除錯時間,都是比較長的。由於它不像解釋型語言能夠寫完一行,或一小段程式以後,立刻執行,立刻除錯。解釋型語言一般讓程式開發的總體時間變少,在開發過程當中,解釋型語言也能夠更彈性、快速的測試本身的想法。
優勢:執行效率高
缺點:開發效率低
它是和編譯型語言相反的,這種類型的語言,會將代碼一句一句直接執行,不須要像編譯語言(Compiled language)同樣,通過編譯器先行編譯爲機器碼,以後再執行。
這種程式語言須要利用直譯器,在執行期,動態將程式碼逐句直譯(interpret)爲機器碼,或是已經預先編譯爲機器碼的的子程式,以後再執行。
(就算有小BUG,但若是用不到,就不會報錯)
特色:依賴解釋器,跨平臺性好.
優勢:開發效率高
缺點:執行效率低
編譯型與解釋型,二者各有利弊
前者因爲程序執行速度快,同等條件下對系統要求較低,所以像開發操做系統、大型應用程序、數據庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網頁腳本、服務器腳本及輔助開發接口這樣的對速度要求不高、對不一樣系統平臺間的兼容性有必定要求的程序則一般使用解釋性語言,如JavaScript、VBScript、Perl、Python、Ruby、 等等。
但隨着硬件的升級和設計思想的變革,編譯型和解釋型語言愈來愈籠統,主要體如今一些新興的高級語言上,而解釋型語言的自身特色也使得編譯器廠商願意花費更多成原本優化解釋器,解釋型語言性能超過編譯型語言也是必然的。
我的感受:其實各類語言相差的執行效率也就那樣,
主要仍是看開發的效率,就像火了一個遊戲,其餘遊戲就會爭相模仿,開發快的幾天就弄出來了,開發慢的,一個多月,一個多月事後,遊戲還火嗎?搶的就是時間,搶的就是用戶,搶的就是市場。
低級語言和編繪語言,是站在計算機的角度,說計算機的語言
學習難度:
機器語言->彙編語言->高級語言
執行效率:
機器語言->彙編語言->高級語言
開發效率: