javac編譯器的知識點

javac是什麼,是命令?其實是一種編譯器,將人可讀的java程序語言轉化成java虛擬機可讀的字節碼文件。這裏要說名下爲什麼java是門高級語言呢,相對於C,C++,彙編語言等,它們的源碼可以直接編譯成目標機器碼,從而CPU能直接執行,但是JAVA語言確是運行在JAVA虛擬機上的,JAVA虛擬機把經過javac編譯後的字節碼文件轉轉化成針對每臺不同主機識別的機器語言,所以java語言才實現了與平臺無關性,簡言之就是 javac把java代碼編譯成java字節碼,JVM負責將java字節碼(.class文件)zhua轉成cpu可執行的目標文件。

Java編譯器介紹:

首先要想編譯一個文件,首先得把該文件一個字節一個字節的讀進來,找到那些是java的關鍵詞,比如if  else for  while等等啦,這個步驟就是語法分析,語法分析後把語法不對的進行錯誤提示,反饋給我們。正確的語法分析結果,會得到一個符合java語言規範的抽象語法樹,它是有結構性的,把主要詞法用結構性的形式組織在一起。

語法分析後進入語義分析,就是將複雜的語法轉換成簡單的語法,比如foreach轉換成for結構,這樣抽象語法樹更加豐滿也更接近於目標語言的語法規則。

最後通過字節碼生成器轉換成字節碼文件,相當於漢譯英,英譯漢,這是數據結構也發生了變化,但是這樣JVM就可以識別這份字節碼文件了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章