導航:首頁 > 源碼編譯 > 如何使用c編寫一個編譯器

如何使用c編寫一個編譯器

發布時間:2022-04-27 05:24:38

A. 第一個 C 語言編譯器是怎樣編寫的

第一個C語言編譯器
是先制定了簡單的C語法後,用B語言寫的
這個是C語言的前身。
當時B語言已經比較成熟 只不過 沒有C強大
於是 發明了C語言
之所以叫C,其實也是因為在B基礎上加一。

後續的C編譯器 就都是用C寫的了。

B. 我想先用C語言做個C編譯器,然後再編譯其他C程序

可以採用自展的方法。當年的PASCAL語言編譯器就是這樣被創造出來的。
具體方法是:首先用其它任何一門語言寫一個非常精簡的C語言內核,可以只具備基本的功能。再用這個內核本身來編寫更大一點的內核。不斷重復以上的步驟就可以得到一個完整的C語言編譯環境,只是這樣做的難度太高了,做起來恐怕有困難。

C. 用C編寫一個流程圖編譯器

用C編寫, 要寫 Win API 程序。
建窗(畫布):
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);
。。。
在 LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) 里
調 hdc=GetDC(hwnd); 得到 DC 可以畫圖寫字。
例如:
color=RGB(0,128,128); // 設顏色
hP1=CreatePen(PS_SOLID,0,color); // 線型
SelectObject(hdc,hP1); // 建畫筆
MoveToEx( hdc,x0, y0, NULL ); //落筆
LineTo(hdc,x1,y1);LineTo(hdc,x2,y2);
LineTo(hdc,x0,y0); // 畫線
TextOut(hdc,。。。。); // 寫字
自己定一個數據文件,記錄畫的東西,例如:
rect 40 80 100 30 -- 表示畫矩形,原點(40,80),長100寬30。
lingxin x0 y0 x1 y1 x2 y2 x3 y3 -- 表示畫菱形
用屏幕抓圖存圖像(或畫圖在dib設備):
keybd_event(VK_LMENU,0xA4,0,0);
keybd_event(VK_SNAPSHOT,0x2C,0,0);
keybd_event(VK_SNAPSHOT,0x2C,KEYEVENTF_KEYUP,0);
keybd_event(VK_LMENU,0xA4,KEYEVENTF_KEYUP,0);
從Clipboard取出圖像:
h_bitmap = GetClipboardData(CF_BITMAP);
h_dib = GetClipboardData(CF_DIB);
memcpy(&bmi,h_dib,sizeof(bmi));
調 PNG 庫 存 bitmap 到 PNG。
修改,重畫 要用 前面的 自己定那個數據文件,不能用 PNG。

D. 怎樣去寫一個編譯器(用C語言寫C語言編譯器),需要哪些知識做鋪墊,可以給一下相關網站和書籍的推薦嗎

書籍請參考編譯原理的龍書,以及flex,bison,llvm的manual。
如何寫我可以給你一個大致的流程,
編譯器由詞法分析器->語法分析器->中間代碼生成器->後端組成。
用C語言寫編譯器一般可以按照以下步驟:
1.使用flex生成詞法分析器。(flex可以通過自己編寫的描述文件來自動生成詞法分析器)
2.使用bison生成語法分析器。(bison可以通過自己編寫的描述文件來自動生成語法分析器)
3.通過語法分析器得到輸入代碼的語法樹表示。
4.編寫遍歷函數遍歷語法樹生成中間代碼。(這里推薦使用LLVM的中間代碼表示)
5.利用LLVM工具集來編譯執行所得到的中間代碼。
相關網站:
龍書(當當上去買一本)

http://dinosaur.compilertools.net/flex/index.html(flex手冊)
http://dinosaur.compilertools.net/bison/index.html(bison手冊)
http://www.llvm.org(LLVM官網)

E. 怎樣去寫一個編譯器(用C語言寫C語言編譯器),需

這個需要考慮到很多的問題 各種錯誤的類型 以及可能出現的情況
這個可以先去看看c編譯器的原理(最好是源代碼) 然後可以自己試著 編寫其中一部分實現的原理 如果是簡單的查錯 也要分析錯誤的類型等 修正方法

F. 如何用c寫一個編譯器

先學編譯原理。
然後根據步驟,
1 處理預編譯
2 詞法分析
3 語法分析
4 語義分析
5 中間代碼轉換
6 二進制代碼生成。
簡單起見,不需要考慮優化。 初期可以不需要支持太多語法。

G. 自己寫編譯器怎麼寫,我想為中國程序員做個編譯C語言的編譯器。

首先做這個東西的意義並不大,如果是想學習的話,看看這本書Modern Compiler by Andrew W. Appel

H. vc2010怎麼進行c語言編譯

1,在windows桌面中Visual Studio打開軟體並新建項目。

I. 如何用c/c++實現一個簡單的編譯器

c++和c語言編譯器顯然是gcc和g++最好。這個是毫無爭議的。他最大的特點是完全符合ANSI標准,語法比較靈活,代碼短小可靠,在全球應用太廣了,沒太多bug對應的ide有:MINGW,DEVC++

閱讀全文

與如何使用c編寫一個編譯器相關的資料

熱點內容
ug命令視頻大全 瀏覽:610
箱子裝貨物最小容量編程 瀏覽:99
cad2014教程pdf 瀏覽:200
怎麼遍歷伺服器同一類型的文件 瀏覽:436
惠普戰66畫圖編程 瀏覽:806
java面向對象作業 瀏覽:570
cad插件製作加密狗 瀏覽:924
cmd命令對話框 瀏覽:291
安卓應用怎麼常駐 瀏覽:677
安卓手機怎麼群發小費才不會被鎖 瀏覽:742
相機文件夾設置 瀏覽:856
centos7php怎麼用 瀏覽:119
查看linux操作系統版本的命令 瀏覽:384
收支預演算法怎麼做 瀏覽:876
模板如何上傳到伺服器 瀏覽:372
如何同步安卓信息到新ipad 瀏覽:365
騰訊雲輕量伺服器流量警告 瀏覽:504
u盤備份linux 瀏覽:121
高壓縮比活塞 瀏覽:93
壓縮彈簧標准件 瀏覽:26