為什麼js不能直接編譯成機器碼
① Android 程序為什麼不直接編譯成機器碼
編譯單元無法確定要訪問的邏輯地址,也就無法轉為機器碼,
必須由鏈接過程分配地址。 先編譯後鏈接,
應該是易於編譯器的實現和擴展並且能夠增加靈活性和多文件項目的編譯效率
② javaScript到底是解釋型語言還是編譯型語言
編譯型語言是把源代碼先編譯為機器碼(也就是所謂的可執行程序,比如windows系統的exe文件),運行的時候電腦只需直接把機器碼交給CPU執行即可。編譯型語言的特點是運行速度快,效率高。缺點是可移植性差。
解析型語言則是直接以源代碼的形式出現,運行的時候再實時解析為機器碼並執行。所有的腳本語言(當然也包括JavaScript)都是解析型語言。這類語言有個最大特點就是它們都不能獨立存在,必須寄生在其他程序(比如瀏覽器)內。
③ javascript語言被計算機識別的過程,計算機新語言是怎樣誕生並被推廣的
計算機只識別一種語言,那就是機器碼,那些形形色色的高級語言,都是給人使用的,並不是給電腦看的!這點一定要搞清楚!因為人不可能直接輸入機器碼,所以就需要通過高級語言寫好代碼,然後通過編譯器轉為機器碼(編譯型語言如C、C++、VB等等採用的是這種方式),或者用軟體實時解析為機器碼(腳本類語言如JavaScript就是這種方式)。
因此,所謂新語言的誕生,完全是為了方便人類更方便高效地編製程序,但是如果編的程序沒有編譯或解析為機器碼,電腦是不可能認識它的,更談不上理解了。
最接近機器碼的語言應該是匯編語言,但它仍然不是計算機能夠直接識別的語言哦(其實「計算機識別的語言」這種提法也是有問題的,准確的說法應該是「計算機識別的指令」)
再次強調:程序設計語言是供程序員使用的,並不是給電腦看(或者說識別)的,程序員利用程序設計語言寫出來的那些整齊的、漂亮的程序代碼,離實際可供計算機執行的指令代碼還差著十萬八千里呢!所謂語言的語法、特徵等等這些東西,與計算機本身也不存在半毛錢關系!
要想知道機器碼什麼樣,用一個可進行16進制編輯的編輯器(UltraEdit、EditPlus等)打開一個EXE可執行文件就知道了。而且這些代碼在內存和硬碟中是以二進制方式儲存的,這也就是為什麼說計算機只識別0和1這兩個數字的原因了,這不是調侃,而是事實!
④ 請問高級語言為什麼不直接編譯成機器碼,而編譯成匯編代碼
2.Que:? ACK:1)其中有一個好處是方便優化,因為,編譯器也是工具,也是機器,畢竟是機器生成的程序,不可以非常 完美的,而匯編是機器指令的助記符,一個匯編指令就對應一條機器指令(特殊指令除外)調試起來肯定會比 機器指令方便的方便,這樣優化起來也方便。 2)高級語言只需要編譯成匯編代碼就可以了,匯編代碼到機器碼的轉換是由硬體實現即可,有必要用軟體實 現這樣分層可以有效地減弱編譯器編寫的復雜性,提高了效率.就像網路通訊的實現需要分成很多層一樣,主要 目的就是為了從人腦可分析的粒度來減弱復雜性. 3)如果把高級語言的源代碼直接編譯成機器碼的話,那要做高級語言到機器碼之間的映射,如果這樣做的 話,每個寫編譯器的都必須熟練機器碼。這個不是在做重復勞動么。
⑤ gcc編譯器為什麼不直接編譯成機器代碼
編譯單元無法確定要訪問的邏輯地址,也就無法轉為機器碼,必須由鏈接過程分配地址。
先編譯後鏈接,應該是易於編譯器的實現和擴展並且能夠增加靈活性和多文件項目的編譯效率。
⑥ java語言為什麼使用的java虛擬機而不是直接翻譯成機器代碼(即和C語言一樣)
目前常用的系統或者平台其實沒有幾個,這種跨平台性,在我看來真的是浪費了。C/C++可以高效率運行是因為直接編譯成機器碼,按說Java語法的也可以的啊,只是它選擇了虛擬機來搞快平台,用喜歡的語法,翻譯成機器碼,豈不是和C/C++一樣的效率了。
⑦ JavaScript問題
兩種語言在其瀏覽器中所執行的方式不一樣。
Java的源代碼在傳遞到客戶端執行之前,必須經過編譯,因而客戶端上必須具有相應平台上的模擬器或解釋器,它可以通過編譯器或解釋器實現獨立於某個特定的平台編譯代碼的束縛。
JavaScript是一種解釋性編程語言,其源代碼在發往客戶端執行之前不需經過編譯,而是將文本格式的字元代碼發送給客戶編由瀏覽器解釋執行。
⑧ 請高手解釋下為什麼Javascript是一種解釋性語言,不需要進行編譯和構建.在看Jquery的書,有句話是這樣說的
解釋執行主要是針對編譯執行編譯執行來說的,C語言,java等靜態語言,寫好代碼後需要經過編譯器編譯,將源代碼編譯成別的代碼,比如機器碼,匯編等,解釋執行則不需要編譯過程,直接由解釋器解析並執行代碼。
javascript就屬於解釋執行,所以說他是一種解釋性語言。
但是,隨著技術的發展,越來越多的javascript引擎為了提高性能,也會對javascript進行一些編譯,所以也很難清楚的界定javascript到底是解釋執行還是編譯執行。所以也沒必要去深究,知道就行。
⑨ javascript是什麼該如何寫
JS(也就是javascript)是一種語言,就像C語言一樣,簡單的說就是用來實現網頁的動態效果的一種語言啦。
HTML你一定知道吧。
比如說:HTML加CSS可以讓能讓一個圖片在瀏覽器上顯示,但是如果要讓這張圖片在瀏覽器上來回的動,那多半要用到JS。
當然,JS的功能不只是能讓圖片在瀏覽器上動啦,還有比如什麼改變文字大小啦、顯示時間啦都能用javascript.
總之,現在javascript幾乎在哪能一個網站上都能看到。有必要學它一下喲!!!
至於怎麼寫,你學一下就了解了,就好像下面的形式:
<script>
function myFn()
{
alert('你好呀,學JS吧');
}
</script>
這就是簡單和JS了。
不知道這么說回答了你的問題沒有!??
⑩ 操作系統是和CPU打交道的,那麼編譯器寫的程序為什麼還需要編譯。操作系統不能直接翻譯成機器碼么
操作系統同cpu打交道用的是機器碼,但是對我們來說他用的是自然語言即所說的高級語言,編譯器是的程序就是我們用高級語言寫的,要執行的時候還需要把他翻譯回機器碼,這個過程就是編譯。由於操作系統自身不帶有這種翻譯的功能,因此不能直接翻譯成機器碼,而且高級語言也分好多種,每種語言對應的翻譯方式也不一樣。