編譯過程包括哪幾個主要階段及每個階段的主要功能。
詞法分析階段:讀入源程序,對構成源程序的字符流進行掃描和分解,識別出單詞,
語法分析階段:機器通過詞法分析,將單詞序列分解成不同的語法短語,確定整個輸入串能夠構成語法上正確的程序。
語義分析階段:檢查源程序上有沒有語義錯誤,在代碼生成階段收集類型信息
中間代碼生成階段:在進行了上述的語法分析和語義分析階段的工作之后,有的編譯程序將源程序變成一種內部表示形式
代碼優化:這一階段的任務是對前一階段產生的中間代碼進行變換或進行改造,目的是使生成的目標代碼更為高效,即省時間和省空間
目標代碼生成:這一階段的任務是把中間代碼變換成特定機器上的絕對指令代碼或可重定位的指令代碼或匯編指令代碼