㈠ 紼嬪簭緙栬瘧鍣ㄧ殑浣撶郴緇撴瀯閫傚悎浣跨敤
璇ヤ綋緋葷粨鏋勯傚悎浣跨敤鍓嶇銆佷紭鍖栧櫒銆佸悗絝銆
1銆佸墠絝錛氫富瑕佽礋璐h瘝娉曞拰璇娉曞垎鏋愶紝灝嗘簮浠g爜杞鍖栦負鎶借薄璇娉曟爲銆
2銆佷紭鍖栧櫒錛氬湪鍓嶇鐨勫熀紜涓婏紝瀵瑰緱鍒扮殑涓闂翠唬鐮佽繘琛屼紭鍖栵紝浣誇唬鐮佹洿鍔犻珮鏁堛
鍚庣錛氬皢宸茬粡浼樺寲鐨勪腑闂翠唬鐮佽漿鍖栦負閽堝瑰悇鑷騫沖彴鐨勬満鍣ㄤ唬鐮併
㈡ 編譯原理中的前端,後端和遍是什麼啊能解釋下嗎
遍:對源程序或等價中間語言程序從頭到尾掃視並完成規定任務的過程。
前端:包括詞法分析、語法分析、語義分析及中間代碼生成、部分代碼優化,主要依賴於源程序,與目標機無關;
後端:包括部分代碼優化、目標代碼生成,依賴於中間代碼、計算機的硬體系統和機器指令系統。
㈢ 本科獨立用C語言完成沒有優化的C語言編譯器屬於什麼水平
我覺得水平還是很高的,但意義恐怕不大。編譯器技術是非常成熟的領域,而且由於應用場景的限
制實時,復雜的演算法已經自動出局了,你可選的東西是有限的。編譯器可能有很多實現的形
式,虛擬機/解釋器/靜態編譯器 等,也有成熟的開源實現。作為本科生,而非專門研究該分支的學生,應該合理分配自己學習的時間,如果做這個編譯器就干
掉了大半年,那計網和OS這些課程該咋辦?
我知道很多人會認為沒有做編譯器優化特指中段優化,不考慮機器碼上的優化比較劃水。但編
譯器優化是一個很復雜的東西:首先它和你用的IR表示有關而且是強烈耦合,SSA IR基本還
好,有開源代碼和文獻記載,你想要的都能在網上挖到但這怎麼體現你的水平是吧。你
要考慮編譯器的性能,盡管編譯器的後端優化基本上可以納入到某種PEabstract interpretation的
范疇中。
要不然你可以通過編寫插件的方式白嫖例如visual studio code這類軟
件的強大編輯功能,如果你寫的不是c compiler,你也可以盡量把語法設計得很像c,這樣你又能進一步
白嫖其強大的intellisense code,當然仍然有不少人或者應該說團隊達到了這一步,到這里,應該卷死
了99.99%的同行應該毫無問題。
㈣ 編譯前端和後端各有什麼特點,各自包含編譯過程的哪幾個部分
編譯前端主要包括詞法分析、語法分析、語義分析、中間代碼生成這幾個部分,後端則包含代碼優化和目標代碼生成部分。前端的特點是僅與編譯的源語言有關,而後端則僅與編譯的目標語言及運行環境有關。
將編譯過程劃分成前端和後端,主要目的是在多種源語言和多種目標語言的開發過程中,可以靈活搭配組合,消除重復開發的工作量,提高編譯系統的開發效率。