導航:首頁 > 源碼編譯 > 行代碼實現超輕量級編譯器

行代碼實現超輕量級編譯器

發布時間:2022-07-17 18:56:08

『壹』 如何用basic語言實現一個最簡單的解釋器/編譯

首先Basic語言是解釋型的語言,而C語言是編譯型的語言。什麼意思呢,就是你編寫的Basic語言程序運行的時候需要一個解釋器將高級語言代碼轉為機器碼然後才可以執行。C語言程序一般經過編譯和聯接後直接生成目標代碼。目標代碼本身就是機器碼所以可以直接運行。

從語法來看,C語言是面向過程的語言。Basic語言嚴格意義上只是一個腳本語言,語法相對來講非常簡單。

另外,C語言是最接近匯編語言的一種語言,功能非常強大,但是要求開發人員對硬體,操作系統等底層的東西要有很深的了解,開發程序相對來講麻煩一些,但是程序性能非常好。Basic語言相封裝了很多底層的東西,所以不要求開發人員有很深的計算機專業背景,開發簡單,但是不要指望用Basic語言開發真正的商業程序。

由於以上的區別,造成這兩種語言的用途不一樣。Basic語言常用來寫一些腳本,或者在真正開發之前作一個軟體模型。實際開發用C語言以確保運行速度和較小的內存需求等其他性能。

顯然,這兩種語言還有其他區別,但上面應該是最重要的區別吧

『貳』 在Windows平台上,如何搭一個最簡單最輕量級的C語言開發環境

需要適合編寫計算機程序代碼的文本編輯工具,以及C語言編譯器。使用Notepad++亦或是EditPlus都可以,編譯器選用Windows版的GCC。

『叄』 求簡單行編譯器

C++ 實現的,用的一個Editor類.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class Editor
{
public:
Editor(){} //預設構造函數
Editor(const string s):line(s){} //帶參數構造函數
void ReadFile(const char * filename); //如果從文件讀取
int Find(const string & f) const; //查找
int Replace(const string & from,const string & to); //替換
int ReplaceAll(const string & from,const string & to); //替換所有
int Edit(); //編輯
void display() const //輸出
{
cout<<line<<endl;
}
private:
string line;
};

void Editor::ReadFile(const char * filename)
{
fstream infile(filename,ios::in);
if(! infile)
{
cerr<<"初始化失敗!"<<endl;
exit(0);
}
getline(infile,line);
}

int Editor::Find(const string & f) const
{
return line.find(f,0);
}

int Editor::Replace(const string & from,const string & to)
{
if(Find(from)==string::npos)
return 0;
line.replace(Find(from),from.size(),to);
return 1;
}

int Editor::ReplaceAll(const string & from,const string & to)
{
while(Find(from)!=string::npos)
Replace(from,to);
return 1;
}

int Editor::Edit()
{
cout<<"input the new line:"<<endl;
getline(cin,line);
return 1;
}

int main()
{
Editor e("how are you today! you are right!");
e.display();
e.ReplaceAll("you","we");
e.display();
return 0;
}

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

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

『伍』 製作一個簡單的編譯器

還能編譯匯編。。。
我暈。。。
我想這個不是一般人可以做到的,祝你好運!
如果你僅僅針對文本編輯器的話就好辦了。

『陸』 求php輕量級編輯器

Editplus 3

有中文版,支持代碼高亮,瞬間啟動、關閉。

注冊碼網上一大堆
------------------------------------
PHP是腳本語言,並非html標簽語言,不可能所見即所得。
你的系統一定是windows,如果是這樣,建議你裝一個AppServ ,是一個apache + php + mysql 的集成php伺服器。這樣你就可以一邊寫代碼一邊用瀏覽器來看效果。

方法如下,AppServ 裝在C盤根目錄下,至於為什麼以後你會知曉。
那麼它的web伺服器根目錄就是C:\AppServ\www
你把寫好的PHP代碼保存在這個目錄下,然後打開瀏覽器
地址欄寫: http://localhost/xxx.php
後面寫上你寫好的php文件名,即可在瀏覽器里看到效果。

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

寫編譯器重點就是設計並實現一些數據結構和演算法,語言特點太多的話,代碼寫起來不容易,建議你找一個小語言嘗試下,不要一開始就去嘗試成熟語言。否則你會在寫完語法分析程序以後,遭遇到很大的困難。多數人都是在寫語義分析程序的時候,突然發現自己設計的數據結構很爛,後邊越寫越要命。
如果你想入門編譯器的話,那麼可以看《編譯原理與實踐》,整本書先將編譯器理論,然後後邊教你一步步實現c-miuns(c的子集)的編譯器,包括lex,yacc,都在幾千行代碼左右。這本書講的比較簡單易懂一點
也可以學學斯坦福大學的編譯器設計公開課(aiken設計了一個叫cool的語言,專門用來教人寫編譯器),課程地址上面有人給了:Compilers。這門課以前有個實驗環境(據說已經給了,我以前寫的時候還是用的網上一個不完整的實驗環境),把和編譯器知識無關的內容都給你寫好了,你只需要在固定的地方填上你的內容就可以寫出你的編譯器(不要覺得很簡單哦,人家的代碼寫的很精巧的,讀完就發現寫個好編譯器還是很費腦子的),另外,這個實驗環境有個特點,就是在每一步都提供標准程序做對比,你可以在寫完一部分以後就同標准程序對比,及時發現錯誤。這種方式為寫編譯器又提供了很多幫助
先找個小的,慢慢研究,弄懂了整體的結構再說

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

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

『玖』 在編寫程序時要用到編譯器,什麼是編譯器有什麼用

VC Borland C Eclipse 都是編譯器 就是把你的源代碼 編譯 解釋成機器能讀懂的機器碼 因為機器內部是用二進制的嘛 所以最終也就是一串 1 0 組成的序列

閱讀全文

與行代碼實現超輕量級編譯器相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:577
python員工信息登記表 瀏覽:375
高中美術pdf 瀏覽:158
java實現排列 瀏覽:511
javavector的用法 瀏覽:979
osi實現加密的三層 瀏覽:230
大眾寶來原廠中控如何安裝app 瀏覽:911
linux內核根文件系統 瀏覽:240
3d的命令面板不見了 瀏覽:523
武漢理工大學伺服器ip地址 瀏覽:146
亞馬遜雲伺服器登錄 瀏覽:521
安卓手機如何進行文件處理 瀏覽:70
mysql執行系統命令 瀏覽:928
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:249
哈夫曼編碼數據壓縮 瀏覽:424
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:348