前段时间自己业余抽空花了三个月编了一个c语言编译器,将c语言编译成masm32。
总共4个文件,2000多行的代码,其中sca.c是词法,p.c生成语法树,table.c是符号表,g.c是转化成具体masm32代码,只支持char,short,int,double四种类型数据,其他的有兴趣的可以自己修改增加,由于masm32限制,目前该编译器只支持局部变量在函数开头定义,全局变量不能和局部变量同名。
不支持变量强制转变,也不支持switch语句,个人感觉swich没用,#include不支持,只支持“”,现在打包给大家分享,包括源代码(感兴趣的可以自己修改或者转发学习,不允许商业用途),里面还有一些例子,想学习编译原理或者masm32的同志可以看看(特别是学习masm32的,可以把写好的c语言直接编译成masm32代码)!遇到问题可以跟我联系,尽量跟你们回复!
2023/9/9 7:57:32 55KB c yuyan masm32 assamble
1
1.对循环语句和条件判断语句编写词法分析编译程序,只能通过一遍扫描完成。
词法分析程序的功能输入:源程序输出:二元组(词法记号,属性值/其在符号表中的位置)构成的序列。
附加题:擦,我们的密码设置才奇葩呢。
2023/7/3 11:52:44 4KB 编译原理 大工上机作业
1
1、课件包括形式语言基础自动机基础词法分析语法分析符号表组织优化目标代码生成2、实验源代码有词法分析、语法分析、优化、中间代码生成及配有实验报告3、考试复习题
2023/6/8 23:05:15 4.75MB 编译原理 实验源代码 实验报告
1
反汇编带符号表的32位/64位ELF目标文件,CPU类型:ARMPowerPCMIPS操作菜单选择:文件解析Alx+PELF文件解析Alt+E另有文本比较等杂项功能。
V1.23.03相对上一版本,提供32位X86反汇编;
V1.23.02相对上一版本,提供源代码行查询指令地址,OBJ/COREDUMP文件解析,sprintf函数参数特定检查,完善文件拖放操作,修复小BUG;
V1.23.01相对上一版本,提供ELF文件指令修改,修复ARMMLS指令反汇编错误等BUG;
V1.23.00相对上一版本,提供程序地址对应源代码行查询,修复MIPS调试信息错误;
V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;
V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;
另部分增强功能的菜单操作设有密码,如有兴味欢迎咨询QQ2016508061。
欢迎大家反馈相关软件使用过程中的问题!
2020/11/1 23:05:31 456KB ARM MIPS X86 反汇编
1
词法分析器:1)定义目标语言的可用符号表和构词规则;
2)依次读入源程序符号,对源程序进行单词切分和识别,直到源程序结束;
3)对正确的单词,按照它的种别以的方式保存在符号表中;
4)对不正确的单词,做出错误处理。
算符优先算法:若输入文法:E->E+T|TT->T*F|FF->(E)|i根据算符优先分析法,将赋值语句进行语法语义分析,翻译成等价的一组基本操作,每一基本操作用四元式表示
1
注意不是书籍,是随书源代码《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》重点讲解autolisp、dcl、visuallisp三合一的autocad二次程序开发技术。
《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》分为4篇,共35章。
第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。
第2篇(第11章)为62个精选实用autolisp程序设计范例,通过精讲62个autolisp程序设计范例,让读者将autolisp知识融会贯通。
第3篇(第12~21章)为autolisp与dcl对话框整合应用,主要介绍了dcl的基础知识、dcl对象属性的定义速查、autolisp掌控dcl的关键技巧;
还介绍了编辑框、按钮和文字、切换开关、单选按钮、列表框、下拉菜单、图像,图像按钮及滑动条的设计技巧;
另外介绍了新手常犯错误分析及应对技巧。
第4篇(第22~35章)为visuallisp程序设计应用与整合,主要介绍visuallisp的基本环境、重要函数和程序调试;
还介绍了autocadactivex对象控制以及visuallisp在e2d、3d、文字编辑、图层管理、块与属性管理、options选项控制、excel及word中的应用;
最后介绍了visuallisp应用程序的创建与维护。
  《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》语言风趣生动,内容全面,是一本不可多得的完全学习指南。
它可以帮助读者扎扎实实学好autolisp+dcl+visuallisp程序设计,迅速提升读者的设计效率及绘图质量。
《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》非常适合autocad的初、中、高级读者使用。
2018/7/23 1:26:41 2.04MB AutoLISP DCL Visual LISP
1
这个里面的都是测试数据,总共得分5分。
从控制台输入,不能从文件中读取。
实现了基本功能,加分项目都没有去实现,没有函数数组这些的实现。
这是用C++语言写的,新建parser类别要选C++,其他对于VS的配置和C语言一样。
for语句用的是枚举所有情况,你可以自行修改。
对预备工作中自然语言描述的简化C编译器的语言特性的语法,设计上下文无关文法进行描述借助Yacc工具实现语法分析器考虑语法树的构造:1.语法树数据结构的设计:节点类型的设定,不同类型节点应保存哪些信息,多叉树的实现方式2.实现辅助函数,完成节点创建、树创建等功能3.利用辅助函数,修改上下文无关文法,设计翻译模式4.修改Yacc程序,实现能构造语法树的分析器考虑符号表处理的扩充1.完成语法分析后,符号表项应添加哪些标识符的属性,保存语法分析的结果2.如何扩充符号表数据结构,Yacc程序如何与Lex程序交互,正确填写符号表项以一个简单的C源程序验证你的语法分析器,可以文本方式输出语法树结构,以节点编号输出父子关系,来验证分析器的正确性,如下例:main(){ inta,b; if(a==0) a=b+1;}可能的输出为:0:TypeSpecifier,integer,Children:1:IDDeclaration,symbol:aChildren:2:IDDeclaration,symbol:bChildren:3:VarDeclaration,Children:0124:IDDeclaration,symbol:aChildren:5:ConstDeclaration,value:0,Children:6:Expr,op:==,Children:457:IDDeclaration,symbol:aChildren:8:IDDeclaration,symbol:bChildren:9:ConstDeclaration,value:1,Children:10:Expr,op:+,Children:8911:Expr,op:=,Children:71012:ifstatement,Children:61113:compoundstatement,Children:3 12
2015/5/4 5:41:12 3.77MB LEX YACC 南开 王刚
1
中缀式转后缀式主要功能与要求:采用语法制导翻译模式设计一个包含词法分析,语法分析,符号表管理,错误处理及输出功能模块的,由中缀式转换为后缀式的编译器。
该编译器能够分析的表达式中能够包含+,-,*,/,(),变量名,常数等。
要求:1)可以输入要编译的文件名,从给定文件中读取编译的源程序,也可从键盘输入;
2)能进行功能选择进行词法分析,语法分析,中间代码生成,输出;
3)可以输出二元式序列(种别编码,属性值),符号表,状态栈分析过程,四元式表;
4)能够分析括号能否匹配,如有错误,给出相应错误提示信息,及错误定位;
5)输出表达式的后缀式采用语法制导翻译模式设计一个包含词法分析、语法分析、符号表管理、错误处理及输出等功能模块的、由中缀表达式到后缀表达式的完整编译器。
2019/7/11 19:36:26 987KB 编译原理 文档 代码
1
windows7SP1符号表,32位,用于调试程序时零碎符号加载。
2017/7/2 19:58:26 55MB windows7 x86符号表
1
符号表设计与完成编译原理湖南大学
2021/4/18 12:12:50 15KB 符号表 编译原理
1
共 33 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡