c语言 词法分析器《编译原理》课程设计 文本形式保存

词法分析器的功能输入源程序,按照构词规则分解成一系列单词符号。单词是语言中具有独立意义的最小单位,包括关键字、标识符、运算符、界符和常量等。

(1) 关键字:是由程序语言定义的具有固定意义的标识符。例如begin,end,if,while都是保留字。这些字通常不用作一般标识符。

(2) 标识符:用来表示各种名字,如变量名,数组名,过程名等等。

(3) 数字 :数字的类型一般有整型、小数型等。

(4) 运算符:如+、-、*、/等等。

(5) 界符 :如逗号、分号、括号、等等。

执行代码后,输入需要检查的文本名,比如1.txt,输入你想要保存文本名,比如2.txt,然后系统开始分析语句,并将分析的结果放到2.txt中。查看2.txt文件即可。

  • 收获、不足与感想

通过对词法分析器的开发,让我学到了很多基础c语言支持,

学到了词法分析的基础知识:代码中实现了一个简单的词法分析器,对于分析关键字、标识符、数字和一些符号有了更深入的理解。

熟悉了C语言的文件操作和字符串处理:通过程序中的文件读写和字符串操作,增强了对C语言基础的掌握。

使用了结构体来组织数据:通过定义结构体 keywords 来存储关键字和对应的标记,体验了更灵活的数据组织方式。当然了还有一些不足之处,比如错误处理不够健壮:程序对于一些异常情况的处理可能还不够完善,例如字符串中的转义字符和注释的处理,可以进一步优化。

可读性和可维护性:代码的可读性和可维护性有待改进,可以考虑更具意义的变量命名和代码结构,以提高代码的可理解性。

编写一个完整的编译器是一项复杂的任务,而这个代码是编译器中词法分析部分的简单实现。通过编写这个程序,我更深刻地认识到了编译器设计的挑战和复杂性。遇到问题时,通过查阅文档和调试,我学到了解决问题的方法。这锻炼了我的自学能力和问题解决能力。在以后的学习中,我计划深入了解编译原理和编译器设计,以提高对整个编译过程的理解。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值