‘壹’ 高分急求类pascal编译器的源代码(用lex和yacc做的,能够运行成功的 )
pascal 是虾米哟~~~??
‘贰’ 求编译器设计代码,要全
我勒个去~~~ 这麽高深的问题你这样三言两语就问出来了。 这也不是三言两语能够说清楚的,你自己买几本相关的书看看吧
‘叁’ 能不能详细解释下编辑器和编译器区别编辑器是程序吗用来编写源代码的编译器把源代码转换成语言代码
编辑器是文本的,
编译器
是把文本代码转换成可执行的二进制指令(程序),编辑器是程序,不单单源代码,可以编辑文本文件,。
‘肆’ 设计一个中间代码编译器
int main()
{
string s;
cout<<"输入程序,以“#”作为结束标志。"<<endl;
cin >> s;
translate(s);
ofstream coutf;
coutf.open("词法.txt");
if(!coutf)
{ cout<<"Can not open input file:词法.txt !"<<endl;
return 0;
}
int num;
turn=0;
num=buffer()-1; //单词个数-1
int x=0;//计识别的单词的个数
for(turn=1;turn<=num;turn++)//总循环,ch存放刚读入的字符,strtoken[]存放已识别的标志付或保留字,turn是数组str[]的下标
{
ch=GetChar(turn);
ch=GetBC(ch);
if(IsLetter(ch))
{
while(IsLetter(ch)&&turn<=num||IsDigit(ch)&&turn<=num)
{
Concat();
ch=GetChar(++turn);
}
strToken[n]='\0';
ch=NULL;//此ch不是标志符中的符号
turn=turn-1;
kind=Reserve();
record[x]=new Word; record[x]->sort=kind;
coutf<<"(";
for(int i=0;i<n;i++)
{
record[x]->word[i]=strToken[i];
coutf<<record[x]->word[i];//输出识别的标志符或保留字
}
coutf<<","<<kind<<")"<<endl;
record[x]->word[i]='\0';
clear();
x++;
}
else if(IsDigit(ch))
{
while(IsDigit(ch)&&turn<=num)
{
Concat();
ch=GetChar(++turn);
}
ch=NULL;
turn=turn-1;
kind=7;//如果是数字,则kind=7
record[x]=new Word;
record[x]->sort=kind;//将kind的值保存到sort
coutf<<"(";
for(int i=0;i<n;i++)
{
record[x]->word[i]=strToken[i];
coutf<<record[x]->word[i];
}
coutf<<","<<kind<<")"<<endl;
record[x]->word[i]='\0';
clear();x++;
}
else if(ch=='=')
{
kind=8;
record[x]=new Word;
record[x]->word[0]='=';
record[x++]->sort=kind;
coutf<<"(:=,"<<kind<<")"<<endl;
}
else
coutf<<"error input!"<<endl;
}
//////////////////////*语法分析*////////////////
int ana[MAX];//存放词法分析得到的单词序列的编号的序列
int m;
for(m=0;m<x;m++)
{
ana[m]=record[m]->sort;//将sort作为数组保存起来
}
int j=0;
ofstream coutp;
coutp.open("语法.txt");
if(!coutf)
{ cout<<"Can not open input file:语法.txt !"<<endl;
return 0;
}
‘伍’ 制作一个简单的编译器
还能编译汇编。。。
我晕。。。
我想这个不是一般人可以做到的,祝你好运!
如果你仅仅针对文本编辑器的话就好办了。
‘陆’ 如何用编译器将自己的源代码转换成目标代码
我们使用编译器将自己的源代码转换成目标代码,
使用链接器将我们的目标代码链接成一个可执行程序。另外,
我们使用一些程序在计算机中输入源代码文本并且编辑它。这些是最初的和最重要的工具,
它们构成程序员的工具集合或“程序开发环境”。
如果你使用的是命令行窗口,
就像很多专业程序员所做的那样,
你将不得不自己来编写编译和链接命令。如果你使用IDE(“交互式开发环境”或“集成式开发环境”),
就像很多程序员所做的那样,
简单地点击正确按钮就可以完成这个工作。附录C介绍了如何在你的C++实现中编译和链接。
IDE通常包括一个具有有用特性的编辑器,
例如用不同颜色的代码来区分你的源代码中的注释、
关键字和其他部分,
以及其他帮助你来调试代码、
编译和运行代码的功能。调试是发现程序中的错误和排除错误的活动,
你在前进的道路上会听到很多有关它的内容。
我们使用微软的Visual
C++作?喑炭
⒒肪呈道
H绻
颐羌虻サ厮怠氨嘁肫鳌被蚴恰癐DE”的某些部分,
那就是所指Visual
C++系统。但是,
你可以使用一些提供最新的、
符合标准的C++实现的系统。我们所说的大多数内容(经过微小的修改)对所有的C++实现都将是正确的,
并且其代码可以在任何地方运行。在工作中,
我们使用几种不同的实现。
‘柒’ java语言编译器是怎样编写的,源代码是什么
编译器
本身就是一个应用程序,编译器涉及到底层的一些操作,对执行要求比较高的地方使用汇编语言编写的,主要的还是用C语言来编写实现的,在Java的安装路径下的bin目录下有很多的*.exe可执行文件,像jar.exe、javac.exe、java.exe等等,Java编译器这东西它好像不是开源的,如果你对编译器的实现感兴趣的话,推荐你看一本《
编译原理
》这本书,这本书对你了解编译器的实现原理有很大的帮助的。
‘捌’ 编译器设计的介绍
《编译器设计(第2版)》1是编译器设计领域的经典着作,主要从以下四部分详解了编译器的设计过程。第一部分涵盖编译器前端设计和建立前端所用工具的设计和构建;第二部分探讨从源代码到编译器中间形式的映射,考察前端为优化器和后端所生成代码的种类;第三部分介绍代码优化,同时包含对分析和转换的进一步处理;第四部分专门讲解编译器后端使用的算法。 《编译器设计(第2版)》适合作为高等院校计算机专业本科生和研究生编译课程的教材和参考书,也可供相关技术人员参考。
‘玖’ 如何编译C语言源代码
下载一个VC2005软件,把代码复制到里面,设置好C运行环境,点击编译,OK,然后点击那个感叹号,直接链接运行,就OK了。