導航:首頁 > 源碼編譯 > 簡易編譯器實現

簡易編譯器實現

發布時間:2024-07-12 18:55:38

① 我想用JAVA做個簡易編譯器,說說思路,或者有沒有現成的代碼JAVAC的代碼有嗎

要寫編譯器?自己開發語言?很牛X,先贊一個!
自己寫編譯器,原理其實不難,就那麼點東西。找一個編譯原理看明白就OK了,詞法、語法、語義、語境。
這些東西用一些自動機,圖靈機,範式,正規之類的就可以搞定。分析嘛,什麼逆波蘭,樹形,一共也沒幾種的。
但最難做的是優化,還有機器代碼生成這二部分。
優化怎麼做?你的中間代碼放哪?先優化還是先生成中間代碼?
機器代碼怎麼搞?用匯編?還是直接和機器特性相關?
反正這二點我是暈,雖然原理還是那點東西,但真搞起來,我一點思路都沒有。。。
國內寫編譯器的有,但都不是很牛X。
想要寫好,還得多看E文資料。
加油吧。

② C語言編譯器是什麼

C語言是一門面向過程的計算機編程語言,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。C語言描述問題比匯編語言迅速,工作量小、可讀性好,易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%~20%。因此,C語言可以編寫系統軟體。[2]
二十世紀八十年代,美國國家標准局為了避免各開發廠商用的C語言語法產生差異,給C語言制定了一套完整的美國國家標准語法,稱為ANSI C。作為C語言最初的標准。[3]2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言編譯器普遍存在於各種不同的操作系統中,例如Microsoft Windows, Mac OS X, Linux, Unix等。C語言的設計影響了眾多後來的編程語言,例如C++、Objective-C、Java、C#等。

例:
#include <stdio.h>

int main() {
printf("Hello,world!");

return 0;
}

編譯運行將輸出: Hello,world!

③ 鐢–璇璦緙栦竴涓紼嬪簭錛岃緭鍏ヤ竴涓鍦嗭紝杈撳嚭鍛ㄩ暱銆

緙栧啓紼嬪簭錛

# include<stdio.h>

void main()

{

float r,c,s;

printf("璇瘋緭鍏ュ渾鐨勫崐寰勶細 ");

scanf("%f",&r); /*鐢ㄤ簬杈撳叆涓涓嫻鐐規暟鎹瀛樻斁浜庡湴鍧&r*/

c=2*3.1415926*r; /*璁$畻鍛ㄩ暱錛岃祴鍊肩粰C*/

s=3.1415926*r*r; /*鐢ㄤ簬璁$畻闈㈢Н*/

printf("鍛ㄩ暱c=%8.4f錛沑n闈㈢Нs=%8.4f ",c,s); /*鍛ㄩ暱錛岄潰縐閮芥槸8涓瀛楃﹀斤紝4浣嶅皬鏁*/

}

緙栬瘧錛岃繛鎺ワ紝榪愯屼慨鏀歸敊璇錛

鎵╁睍璧勬枡錛

C璇璦鏄涓闂ㄩ氱敤璁$畻鏈虹紪紼嬭璦錛屽箍娉涘簲鐢ㄤ簬搴曞眰寮鍙戙侰璇璦鐨勮捐$洰鏍囨槸鎻愪緵涓縐嶈兘浠ョ畝鏄撶殑鏂瑰紡緙栬瘧銆佸勭悊浣庣駭瀛樺偍鍣ㄣ佷駭鐢熷皯閲忕殑鏈哄櫒鐮佷互鍙婁笉闇瑕佷換浣曡繍琛岀幆澧冩敮鎸佷究鑳借繍琛岀殑緙栫▼璇璦銆

灝界C璇璦鎻愪緵浜嗚稿氫綆綰у勭悊鐨勫姛鑳斤紝浣嗕粛鐒朵繚鎸佺潃鑹濂借法騫沖彴鐨勭壒鎬э紝浠ヤ竴涓鏍囧噯瑙勬牸鍐欏嚭鐨凜璇璦紼嬪簭鍙鍦ㄨ稿氱數鑴戝鉤鍙頒笂榪涜岀紪璇戱紝鐢氳嚦鍖呭惈涓浜涘祵鍏ュ紡澶勭悊鍣錛堝崟鐗囨満鎴栫ОMCU錛変互鍙婅秴綰х數鑴戠瓑浣滀笟騫沖彴銆

浜屽嶮涓栫邯鍏鍗佸勾浠o紝涓轟簡閬垮厤鍚勫紑鍙戝巶鍟嗙敤鐨凜璇璦璇娉曚駭鐢熷樊寮傦紝鐢辯編鍥藉浗瀹舵爣鍑嗗矓涓篊璇璦鍒跺畾浜嗕竴濂楀畬鏁寸殑緹庡浗鍥藉舵爣鍑嗚娉曪紝縐頒負ANSI C錛屼綔涓篊璇璦鏈鍒濈殑鏍囧噯銆[1]鐩鍓2011騫12鏈8鏃ワ紝鍥介檯鏍囧噯鍖栫粍緇囷紙ISO錛夊拰鍥介檯鐢靛伐濮斿憳浼氾紙IEC錛夊彂甯冪殑C11鏍囧噯鏄疌璇璦鐨勭涓変釜瀹樻柟鏍囧噯錛屼篃鏄疌璇璦鐨勬渶鏂版爣鍑嗭紝璇ユ爣鍑嗘洿濂界殑鏀鎸佷簡奼夊瓧鍑芥暟鍚嶅拰奼夊瓧鏍囪瘑絎︼紝涓瀹氱▼搴︿笂瀹炵幇浜嗘眽瀛楃紪紼嬨

C璇璦鏄涓闂ㄩ潰鍚戣繃紼嬬殑璁$畻鏈虹紪紼嬭璦錛屼笌C++錛孞ava絳夐潰鍚戝硅薄鐨勭紪紼嬭璦鏈夋墍涓嶅悓銆

鍏剁紪璇戝櫒涓昏佹湁Clang銆丟CC銆乄IN-TC銆丼UBLIME銆丮SVC銆乀urbo C絳夈




鍙傝冭祫鏂欙細C璇璦鈥斺旂櫨搴︾櫨縐

④ c璇璦緙栫▼鎬庢牱榪愯岀▼搴忥紵

榪愯岀▼搴忔ラわ細

1.緙栬緫錛氳緭鍏ユ簮紼嬪簭騫跺瓨鐩(.C)

2.緙栬瘧錛氬皢婧愮▼搴忕炕璇戜負鐩鏍囨枃浠(.OBJ)

3.閾炬帴錛氬皢鐩鏍囨枃浠剁敓鎴愬彲鎵ц屾枃浠( .EXE)

4.榪愯岋細鎵ц.EXE鏂囦歡,寰楀埌榪愯岀粨鏋溿

涓婃満1 C璇璦綆鍗曠▼搴忕殑緙栧啓鍜岃皟璇


鎷撳睍璧勬枡:

C璇璦鏄涓闂ㄩ氱敤璁$畻鏈虹紪紼嬭璦錛屽簲鐢ㄥ箍媧炴淳娉涖侰璇璦鐨勮捐$洰鏍囨槸鎻愪緵涓縐嶈兘浠ョ畝鏄撶殑鏂瑰紡緙栬瘧銆佸勭悊浣庣駭瀛樺偍鍣ㄣ佷駭鐢熷皯閲忕殑鏈哄櫒鐮佷互鍙婁笉闇瑕佷換浣曡繍琛岀幆澧冩敮鎸佷究鑳借繍琛岀殑緙栫▼璇璦銆俢 璇璦搴旂敤紼嬪簭涓婃満榪囩▼鍏蜂綋姝ラゅ備笅錛

鎵撳紑VC++ 6.0紼嬪簭 2銆佺偣鈥滄枃浠垛濓紝鈥滄柊寤衡溿

鍦ㄦ柊寤鴻倖鍑欏甸潰涓婄撼闆硅春閫夋嫨鏂囦歡鈫扖++ Source File 騫跺湪鍙寵竟緙栬緫鏂囦歡鍚嶇О錛岄夋嫨淇濆瓨浣嶇疆錛岀『瀹氥

綆鍗曠▼搴忕ず鑼冦

榧犳爣鍙抽敭Compile(Ctrl+F7)濡傚浘錛岀『瀹氫袱嬈★紝娉ㄦ剰涓嬫柟鍙鏌ョ湅閿欒錛屽彲涓婁笅鎷夊姩銆傜『瀹氭棤閿欎箣鍚庯紝鍙抽敭Build(F7)濡傚浘錛屽悓鏍鋒敞鎰忎笅鏂規槸鍚﹀嚭鐜伴棶棰橈紝鏈鍚庡彸閿瓸uildExecute(Ctrl+F5)銆傚畬鎴愩

鍙傝冭祫鏂:銆愩恈璇璦_鐧懼害鐧劇戙戙

閱讀全文

與簡易編譯器實現相關的資料

熱點內容
深圳壓縮機製造公司 瀏覽:882
如何給u盤單獨文件加密碼 瀏覽:284
恆溫機故障源碼 瀏覽:418
如何打開管家婆伺服器支持者 瀏覽:266
安卓手機自帶瀏覽器有什麼用 瀏覽:532
老闆咨詢阿里雲還是獨立伺服器 瀏覽:814
諾基亞手機app哪裡下載 瀏覽:520
看比賽用哪個app 瀏覽:976
如何評價如故app 瀏覽:151
建立表結構的命令 瀏覽:581
安卓文件為什麼蘋果手機打不開 瀏覽:84
東奧輕4可以在哪個app做題 瀏覽:165
金融科技加密卡 瀏覽:837
程序員那麼開一共有多少集 瀏覽:982
面試程序員被問數學問題怎麼辦 瀏覽:93
背大學英語的app哪個最好 瀏覽:721
哪個app買的衣服好 瀏覽:470
天刀以前玩過的伺服器忘了怎麼辦 瀏覽:215
單片機基礎代碼解讀 瀏覽:236
廣東青少年編程學習 瀏覽:513