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++