编译原理大讨论,请大家发表高论(300分)

  • 主题发起人 主题发起人 zgdtxf
  • 开始时间 开始时间
Z

zgdtxf

Unregistered / Unconfirmed
GUEST, unregistred user!
前几天看书后,脑袋一陈晕,实在是不好懂,请大家讨论讨论,互相学习
分数暂提供300分(本来想提供500分的)可最高只有出300分,没办法,如果大家讨论激烈
可以再提供300分,谢谢。
内容是:编译原理
 
本人没有系统学习过!
听课[:D]
 
慢慢看吧!计算机方面的东西都这样。呵呵!弄本好书道是不错的选择。不过不要指望
看一边你就懂了。反正我不是神童。
 
其实编译的核心是语法分析和符号组织,语法分析你这样理解可能容易一些:
:Pascal语言中的Type定义
Type
TSocket=LongInt;
为了翻译这个结构,你可以这样设想: 建立一个符号表
SymbolTable=Record
Name: String;
Ident: Integer;
BaseType: Integer;
End;
当读到Type时,可知后面将是类型定义,类型定义的产生式如下:[...]表示后面
还有非终结符 <> 表示必须存在的项 () 表示后面为空 | 表示或
<Ident> -> <','|'='>[...]
<','> -> <Ident>[...]
<'='> -> <类型定义>
根据这个产生式,你就可以编制程序了,如:
假设从Type之后开始分析
Var
Name: String;
Begin
While True Do
Begin
if GetToken.Ident<>ID_IDENT Then Error(Syntaxerror);
if Token.Name in SymbolTable Then Error(VarReDefine);
Name:=Token.Name;
Case GetToken.Ident of
SYM_COMMA: //','
Begin
AddToTmpSymbolTable(Name);
End;
SYM_EQUAL: //'='
Begin
if GetToken.Ident<>ID_IDENT Then Error(Syntaxerror);
if Not isAlreadyDefineType(Token.Name) Then Error(TypeNotSuport)
ResetTmpSymbolTable(NowType);
InsertTmpSymbolTable Into SymbolTable;
End;
End;
End;
End;
 
to TK128:
[...]表示后面还有非终结符 <> 表示必须存在的项 () 表示后面为空 | 表示或
<Ident> -> <','|'='>[...]
<','> -> <Ident>[...]
<'='> -> <类型定义>
这里的->应该算是一个推导吧?
产生式如果形成??
 
写编译器要画好你的状态转换图,选好数据结构。
毕业设计的时候混了一个简单的词法分析器。
完成绝大部分的数学运算包括微分。
反正当时也是稀里糊涂,用的二叉树。
编译原理太复杂了。
 
难是难了一点,看了一次不懂得,再看第二次,三次。。
如是一来,也就懂了许多。
 
我不是科班毕业的,计算机我是自学的,因此我表达的东西可能和书上的不一样
这种表达方式只是给自己用的,希望能多交流,QQ:25644550 EMAIL:LYD_YL@163.NET
 
编译原理太难了,看了教材还是糊里糊涂的。
推荐看陈火旺编的《编译原理》!
 
请问哪里可以下到这本陈火旺编的《编译原理》!
 
陈火旺编的《编译原理》那有下载?
 
这是大学本科教材,好像没有ebook下载。
如果感兴趣,建议买一本,30多块。
 
推荐<<编译方法>> (修订版) 作者:阎天民 倪朝奎 西安电子科技大学出版社
特点:通过简化PASCAL语言(简称SPL)教学编译程序实例,不但学到编译程序构造的基本
原理,更能掌握具体的编程方法。
 
to:IT书生
有e版的吗?
 
前两天刚考过,咳,建议看一本翻译版,比较易懂。火旺的比较全,理论性强
 
我从未看到过介绍可视化开发工具原理的书,
哪位大侠给推荐两本,唉,中国什么时候才能搞出自己的Delphi?
 
西安电子科技大学出版社的《编译原理》不错
 
to zgdtxf:窑洞里有篇文章,说不定有帮助http://202.117.210.31/wz/8.htm
to 涤新:中国的软件公司忙着做数据库赚钱,搞出自己的编译系统简直是做梦!!:(
 
数据库也没做出来啊?
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部