導航:首頁 > 源碼編譯 > 編譯後程序塊過大不適合

編譯後程序塊過大不適合

發布時間:2024-11-26 04:49:54

㈠ 本科獨立用C語言完成沒有優化的C語言編譯器屬於什麼水平

我覺得水平還是很高的,但意義恐怕不大。編譯器技術是非常成熟的領域,而且由於應用場景的限
制實時,復雜的演算法已經自動出局了,你可選的東西是有限的。編譯器可能有很多實現的形
式,虛擬機/解釋器/靜態編譯器 等,也有成熟的開源實現。作為本科生,而非專門研究該分支的學生,應該合理分配自己學習的時間,如果做這個編譯器就干
掉了大半年,那計網和OS這些課程該咋辦? 

我知道很多人會認為沒有做編譯器優化特指中段優化,不考慮機器碼上的優化比較劃水。但編
譯器優化是一個很復雜的東西:首先它和你用的IR表示有關而且是強烈耦合,SSA IR基本還
好,有開源代碼和文獻記載,你想要的都能在網上挖到但這怎麼體現你的水平是吧。你
要考慮編譯器的性能,盡管編譯器的後端優化基本上可以納入到某種PEabstract interpretation的
范疇中。

要不然你可以通過編寫插件的方式白嫖例如visual studio code這類軟
件的強大編輯功能,如果你寫的不是c compiler,你也可以盡量把語法設計得很像c,這樣你又能進一步
白嫖其強大的intellisense code,當然仍然有不少人或者應該說團隊達到了這一步,到這里,應該卷死
了99.99%的同行應該毫無問題。

㈡ keil編譯後code的大小問題

這個很簡單,首先先說最後一條,你涉及到了小數,也就是浮點數的計算,在所有的單片機中,有的帶有浮點數計算,比如高級的ARM,有些不帶,凡是不帶浮點數硬體計算模塊的,都要通過語言來處理,浮點數的計算是非常復雜的,所以,最後一個代碼最大,當然,結果也最精確。
再說第一個,為什麼會最小,因為單片機會先計算 625/10000,你認為結果是多少?0.0625?
錯,如果你的res是浮點型的,那麼,計算的結果可能是 0.0625,如果你的res是整形的,那麼,計算的結果是0,而這里,我敢肯定,你的res是整形的,相當於再計算 tem = res*0,結果是0,也就是說,你第一條是個錯誤的,得到的結果恆0
而第2條語句,先是計算 res*625,再去計算除法,這樣,不會出現常數結果,所以耗時比第一條語句大。
如果你的結果要求比較准確,我建議你用第三條語句,雖然費時間。
另外,你完全可以用查表法來完成,而不必要用浮點數計算,畢竟51單片機的能力比較差。

㈢ 用keil編譯51程序時,下面的Program Size: data=47.0 xdata=0 code=3092,是什麼意思各個值允許最大是多少

data=47.0 編譯器編譯後,程序總共需要佔用47位元組的片內RAM空間。注意這個大小僅僅是累加而已,並未考慮各個塊之間的空隙,也就是說實際佔用的RAM空間可能多於此數值。
xdata=0 程序未使用片外RAM(映射)空間
code=3092 編譯器編譯出的各個代碼塊總共大小為3092位元組。與前面的data一樣,由於各個塊之間可能存在空隙,因此實際生成的代碼大小可能多於此數值。

閱讀全文

與編譯後程序塊過大不適合相關的資料

熱點內容
sql如何查看伺服器地址 瀏覽:775
編譯速度和系統有關嗎 瀏覽:54
復盛製冷壓縮機 瀏覽:979
雲伺服器共享手機流量 瀏覽:833
星界邊境像素壓縮 瀏覽:459
演算法分析與設計二手 瀏覽:981
學編程如何配電腦 瀏覽:971
怎麼看特徵找卡密的加密方式 瀏覽:526
方舟非官方伺服器怎麼賺錢 瀏覽:516
明日之後伺服器無效是怎麼回事 瀏覽:270
蛋殼公寓app如何查水電表 瀏覽:718
ad20庫中的51單片機怎麼找 瀏覽:624
阿里雲伺服器有點卡嗎 瀏覽:215
蘋果7如何讓app後台運行 瀏覽:170
耐克app預售產品哪裡看 瀏覽:209
補全演算法一年級 瀏覽:131
evd數據調校軟體加密 瀏覽:442
app聽課與微信如何設置分屏 瀏覽:911
加密的excel怎麼撤銷 瀏覽:43
java動態數組初始化 瀏覽:978