导航:首页 > 源码编译 > 行代码实现超轻量级编译器

行代码实现超轻量级编译器

发布时间: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