1、機器語言:java
是由二進制描述的機器指令,所有指令的集合構成了機器語言;因爲全都是二進制,python
因此缺點是:程序員
1.不具有明顯特徵,難以記憶,不便於閱讀;編程
2.每種計算機支持的指令也不盡相同,而致使了其侷限性較大;ruby
3.須要涉及硬件操做,因此對編程人員的計算機知識要求較高spa
因爲是二進制編寫的最底層指令因此優勢也是至關明顯的:翻譯
1.能夠被計算機直接執行調試
2.執行速度最快開發
2、彙編語言:編譯器
本質上和機器語言是相同的,僅僅是將指令從二進制變成了英文縮寫,更容易理解和記憶
缺點:
1.代碼依然很複雜 容易出錯
2.對程序員的計算機知識要求高
優勢:
1.指令豐富能夠完成高級不少高級語言沒法完成的操做
2.生成的可執行文件體積小,執行速度快
3、高級語言:
更加貼近人類的表達方式
將不少相關的指令組合成一條指令,屏蔽了硬件操做,讓咱們能夠專一完成業務邏輯
因此
1.開發效率高
2.容易理解
3.下降了程序員的工做量
4.對計算機知識需求下降
可是因爲須要翻譯爲二進制機器指令
因此
1.執行速度比底層語言慢
2.可使用的指令比底層語言少
高級語言由於執行過程的不一樣又能夠分爲兩類:
1.編譯型:
須要編譯器一次性翻譯所有,翻譯後獲得可執行文件才能執行,就像谷歌翻譯同樣,這個翻譯過程稱之爲編譯 這樣會形成一個問題 當咱們修改了代碼時就須要從新翻譯一遍 生成新的可執行文件才能執行
,編譯事後的二進制可執行文件能夠脫離原來的語言環境直接交給計算機單獨執行(exe)
缺點是:調試起來速度慢,
移植性差
優勢是:執行速度快
可執行文件體積小
例如:C C++
2.解釋型:
執行到哪行就翻譯哪行
就像同聲傳譯同樣,在談話結束前翻譯官不能離開,因此在運行前必須安裝解釋器
缺點是:執行速度慢
程序體積比編譯型更大
優勢是:調試速度快
跨平臺型好
例如:python ruby 等
java比較特別是先編譯 後解釋