亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java代碼編譯過程簡述

2019-11-14 09:28:04
字體:
來源:轉載
供稿:網友

java代碼編譯是由Javac編譯器來完成,流程如下圖1所示:

圖1

Javac是一種編譯器,能將一種語言規范轉化成另外一種語言規范,通常編譯器都是將便于人理解的語言規范轉化成機器容易理解的語言規范,如C/C++或者匯編語言都是將源代碼直接編譯成目標機器碼,這個目標機器代碼是CPU直接執行的指令集合。這些指令集合也就是底層的一種語言規范。

Javac的編譯器也是將Java這種對人非常友好的編程語言編譯成對對所有機器都非常友好的一種語言。這種語言不是針對某種機器或某個平臺。怎么消除不通種類,不同平臺之間的差異這個任務就有JVM來完成,而Javac的任務就是將Java源代碼語言轉化為JVM能夠識別的一種語言,然后由JVM將JVM語言再轉化成當前這個機器能夠識別的機器語言。

Javac的任務就是將Java源代碼編譯成Java字節碼,也就是JVM能夠識別的二進制代碼,從表面看是將.java文件轉化為.class文件。而實際上是將Java源代碼轉化成一連串二進制數字,這些二進制數字是有格式的,只有JVM能夠真確的識別他們到底代表什么意思。

編譯器把一種語言規范轉化為另一種語言規范的這個過程需要哪些步驟?回答這個問題需要參照《編譯原理》,總結過程如下:

1)詞法分析:讀取源代碼,一個字節一個字節的讀進來,找出這些詞法中我們定義的語言關鍵詞如:if、else、while等,識別哪些if是合法的哪些是不合法的。這個步驟就是詞法分析過程。

詞法分析的結果:就是從源代碼中找出了一些規范化的token流,就像人類語言中,給你一句話你要分辨出哪些是一個詞語,哪些是標點符號,哪些是動詞,哪些是名詞。

2)語法分析:就是對詞法分析中得到的token流進行語法分析,這一步就是檢查這些關鍵詞組合在一起是不是符合Java語言規范。如if的后面是不是緊跟著一個布爾型判斷表達式。

語法分析的結果:就是形成一個符合Java語言規定的抽象語法樹,抽象語法樹是一個結構化的語法表達形式,它的作用是把語言的主要詞法用一個結構化的形式組織在一起。這棵語法樹可以被后面按照新的規則再重新組織。

3)語義分析:語法分析完成之后也就不存在語法問題了,語義分析的主要工作就是把一些難懂的,復雜的語法轉化成更簡單的語法。就如難懂的文言文轉化為大家都懂的百話文,或者是注釋一下一些不懂的成語。

語義分析結果:就是將復雜的語法轉化為簡單的語法,對應到Java就是將foreach轉化為for循環,還有一些注釋等。最后生成一棵抽象的語法樹,這棵語法樹也就更接近目標語言的語法規則。

4)字節碼生成:將會根據經過注釋的抽象語法樹生成字節碼,也就是將一個數據結構轉化為另外一個數據結構。就像將所有的中文詞語翻譯成英文單詞后按照英文語法組裝文英文語句。代碼生成器的結果就是生成符合java虛擬機規范的字節碼。這個過程中的需要的組件如下圖2所示:

圖2

從上面的描述中我們知道編譯就是將一種語言通過分析分解,再按照一定的方式先形成一個簡單的框架(將Java源文件的字節流轉化為對應的token流)然后在通過詳細的分析按照一定的規定在這個框架里添加東西使這個token流形成更加結構化的語法樹(就是將前面生成的token流中的一個個單詞組裝成一句話),但是這棵樹離我們的目標—Java字節碼還有點差距,所以再進行語義分析使那顆粗糙的樹更加完整完善(給類添加默認的構造函數,檢查變量在使用前有沒有初始化,檢查操作變量類型是否匹配),然后javac編譯器調用com.sun.tools.javac.jvm.Gen類遍歷這棵語法樹將java方法中的代碼塊轉換成符合JVM語法的命令形式的二進制數據。按照JVM的文件組織格式將字節碼輸出到以class為擴展名的文件中,也就是生成最終的java字節碼。詞法分析就是將關鍵詞組織成token流即檢查源碼中的的關鍵詞是否真確并組織成token流,而語法分析就是檢查源碼是否符合java語法規范并將詞組成語句。語義分析就是簡化復雜的添加缺少的,檢查變量類型是否合法。代碼生成器就是遍歷這棵樹生成符合JVM規范的代碼。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲片国产一区一级在线观看| 欧美午夜精品在线| 久久久久日韩精品久久久男男| 久久黄色av网站| 欧美国产日产韩国视频| 亚洲风情亚aⅴ在线发布| 久热精品视频在线免费观看| 国产啪精品视频网站| 国产精品旅馆在线| 成人激情视频免费在线| 在线亚洲国产精品网| 尤物精品国产第一福利三区| 欧美激情啊啊啊| 亚洲天堂男人的天堂| 中文字幕久久久av一区| 国产成人精品视频在线| 欧美一区三区三区高中清蜜桃| 国产精品久久久精品| 中文字幕日韩欧美在线| 久久精品视频免费播放| 欧美激情一区二区三区成人| 精品欧美激情精品一区| 亚洲免费中文字幕| 姬川优奈aav一区二区| 啪一啪鲁一鲁2019在线视频| 欧美乱大交xxxxx| 亚洲高清久久网| 亚洲a在线播放| 欧美性xxxx在线播放| 国产精品爽爽ⅴa在线观看| 最近2019中文字幕在线高清| 欧美日韩中文字幕综合视频| 国产精品www网站| 日韩av综合中文字幕| 精品国产电影一区| 日韩精品视频观看| 亚洲成人三级在线| 欧美成人精品h版在线观看| 欧美网站在线观看| 亚洲国产成人精品久久| 欧美成人小视频| 色诱女教师一区二区三区| 欧美日韩性视频| 91精品在线观| 欧美乱人伦中文字幕在线| 久久久国产一区二区三区| 欧美专区第一页| 国产成人精品网站| 亚洲黄色有码视频| 欧美人与性动交a欧美精品| 97av在线播放| 午夜免费在线观看精品视频| 一区二区三区视频免费| 美女精品久久久| 69久久夜色精品国产69乱青草| 国产精品免费网站| 国产精品成av人在线视午夜片| 亚洲乱码国产乱码精品精| 成人情趣片在线观看免费| 国产91亚洲精品| 欧美电影第一页| 欧美日本在线视频中文字字幕| 欧美专区第一页| 国产成人精品视频| 在线日韩av观看| 91在线看www| 亚洲国产精品va在线观看黑人| 欧美视频在线视频| 亚洲电影免费观看高清完整版在线观看| 成人女保姆的销魂服务| 国产精品久久久久久五月尺| 亚洲欧美日韩中文在线制服| 欧美午夜视频在线观看| 久久精品亚洲一区| 成人xxxxx| 欧日韩不卡在线视频| 久久久亚洲网站| 国产精品久久久久影院日本| 91精品国产高清久久久久久久久| xxav国产精品美女主播| 色综合久久天天综线观看| 成人黄色免费片| 日本国产高清不卡| 国产日韩欧美视频在线| 国产精品久久久久久久久免费| 亚洲视频欧美视频| 国产视频观看一区| 国产在线久久久| 久久精品国产亚洲精品2020| 欧美一级高清免费| 岛国视频午夜一区免费在线观看| 青青久久aⅴ北条麻妃| 精品久久久久久久久久ntr影视| 国产日韩欧美在线视频观看| 亚洲人成网站免费播放| 欧美整片在线观看| 欧美日韩精品在线观看| 久久久人成影片一区二区三区观看| 久热在线中文字幕色999舞| 日韩福利伦理影院免费| 尤物yw午夜国产精品视频明星| 琪琪第一精品导航| 久久中文精品视频| 色综合导航网站| 色多多国产成人永久免费网站| 成人免费自拍视频| 成人性生交大片免费看小说| 国产日产欧美精品| 5252色成人免费视频| 日韩欧美亚洲成人| 国产日韩av在线| 亚洲国产日韩欧美综合久久| 91在线免费视频| 秋霞午夜一区二区| 668精品在线视频| 欧美一级bbbbb性bbbb喷潮片| 久久人人97超碰精品888| 亚洲第一区在线| 亚洲一区二区三区777| 精品久久久久久国产91| 亚洲人成啪啪网站| 久久久久久久久久久久久久久久久久av| 国产亚洲欧美另类中文| 国产一区二区日韩精品欧美精品| 亚洲人成电影网站色…| 91国产精品91| 在线播放精品一区二区三区| 美日韩精品视频免费看| 九九久久国产精品| 国产午夜一区二区| 日韩精品视频免费专区在线播放| 国产亚洲精品久久久久动| 操人视频在线观看欧美| 精品国偷自产在线| 国产精品国产三级国产专播精品人| 欧美日韩免费看| 欧美成年人视频网站| 国产精品欧美激情在线播放| 伊人久久久久久久久久久久久| 亚洲天堂男人天堂女人天堂| 在线观看不卡av| 91精品国产免费久久久久久| 亚洲欧洲国产伦综合| 精品人伦一区二区三区蜜桃免费| 国产精品美女久久久免费| 国产亚洲精品美女久久久久| 亚洲色图18p| 国产亚洲一区二区精品| 国产精品999999| 亚洲视频一区二区三区| 久久天天躁狠狠躁夜夜av| 日本国产一区二区三区| 国产亚洲欧美日韩精品| 亚洲精品一区二区三区婷婷月| 精品丝袜一区二区三区| 欧美性视频网站| 91精品综合久久久久久五月天| 欧美一区亚洲一区| 亚洲欧美日韩国产成人| 亚洲国产成人久久| 日韩av网站导航| 91久久精品国产91性色| 国产精品日韩精品| 久久国产精品首页|