附录c编译程序实验实验目的:用c语言对一个简单语言的子集编制一个一遍扫描的编译程序,以加深对编译原理的理解,掌握编译程序的实现方法和技术。
语法分析C2.1实验目的编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析.C2.2实验要求利用C语言编制递归下降分析程序,并对简单语言进行语法分析.C2.2.1待分析的简单语言的语法实验目的通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法.实验要求采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。
实验的输入和输出输入是语法分析提供的正确的单词串,输出为三地址指令方式的四元式序列。
例如:对于语句串begina:=2+3*4;x:=(a+b)/cend#输出的三地址指令如下:(1)t1=3*4(2)t2=2+t1(3)a=t2(4)t3=a+b(5)t4=t3/c(6)x=t4算法思想1设置语义过程(1)emit(char*result,char*arg1,char*op,char*ag2)该函数功能是生成一个三地址语句送到四元式表中。
四元式表的结构如下:struct{charresult[8];charag1[8];charop[8];charag2[8];}quad[20];(2)char*newtemp()该函数回送一个新的临时变量名,临时变量名产生的顺序为T1,T2,….Char*newtemp(void){char*p;charm[8];p=(char*)malloc(8);k++;itoa(k,m,10);strcpy(p+1,m);p[0]=’t’;return(p);}(2)主程序示意图如图c.10所示。
(2)函数lrparser在原来语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列。
在实验中我们只对表达式、赋值语句进行翻译。
语义分析程序的C语言程序框架intlrparser(){intschain=0;kk=0;if(syn=1){读下一个单词符号;
schain=yucu;/调用语句串分析函数进行分析/if(syn=6){读下一个单词符号;
if(syn=0&&(kk==0))输出(“success”);}else{if(kk!=1)输出‘缺end’错误;
kk=1;}else{输出’begin’错误;
kk=1;}}return(schain);intyucu(){intschain=0;schain=statement();/调用语句分析函数进行分析/while(syn=26){读下一个单词符号;
schain=statement();/调用语句分析函数进行分析/}return(schain);}intstatement(){chartt[8],eplace[8];intschain=0;{switch(syn){case10:strcpy(tt,token);scanner();if(syn=18){读下一个单词符号;
strcpy(eplace,expression());emit(tt,eplace,””,””);schain=0;}else{输出’缺少赋值号’的错误;
kk=1;}return(schain);break;}}char*expression(void){char*tp,*ep2,*eplace,*tt;tp=(char*)malloc(12);/分配空间/ep2=(char*)malloc(12);eplace=(char*)malloc(12);tt=(char)malloc(12);strcpy(eplace,term());/调用term分析产生表达式计算的第一项eplace/while(syn=13or14){操作符tt=‘+’或者‘—’;
读下一个单词符号;
strcpy(ep2,term());/调用term分析产生表达式计算的第二项ep2/strcpy(tp,newtemp());/调用newtemp产生临时变量tp存储计算结果/emit(tp,eplace,tt,ep2);/生成四元式送入四元式表/strcpy(eplace,tp);}return(eplace);}char*term(void)/仿照函数expression编写/char*factor
1
采用Dijkstra算法,实现校园最短路径,资源包内包含源代码和文档说明~功能:(1)输出顶点信息:将校园内各位置输出。
(2)输出边的信息:将校园内每两个位置(若两个位置之间有边)的距离输出。
(3)修改:修改两个位置(若两个位置之间有边)的距离,并重新输出每两个位置(若两个位置之间有边)的距离;
(4)求最短路径:输出给定两点之间的最短路径的长度及途经的地点或输出任意一点与其他各点的最短路径。
(5)删除:删除一条无效边。
(6)插入:插入一条无效边。
2018/1/16 4:50:46 1.53MB 数据结构 c++ 最短路径 Dijkstra算法
1
具体可以看我的博客文章https://blog.csdn.net/zyqytsoft/article/details/107161356由于支付宝签约接口有千6的手续费网上查了一下支付宝免签约即时到帐的实现方案基本都是在转账备注里按格式写入固定格式数据然后后台抓取数据入账***##后台的数据实时数据抓取主要2种方式*****一、登录pc端web页面的后台实时刷新和抓取数据通过备注入账**这里主要有2个问题1)现在支付宝的post登录非常难处理,所以一般还是浏览器登录抓取数据不过浏览器登录有个cookie过期的问题支付宝在一段时间后会退出登录2)解决的办法主要是2点第一点、模拟人工操作点击页面和定时刷新页面不过这个只能延长退出登录的时间实际测试一下一般能保证20小时左右不退出第二点,通过判断浏览器地址判断能否退出状态然后写个post脚本不管是微信通知邮件通知反正通知提醒重新登录一下**二、通过手机端的消息栏支付宝消息触发post脚本**这个方式测试了一下不太可行手机的消息只有金额没有备注结论:采用pc端数据抓取结合模拟人工操作演出退出登录时长同时做好退出登录的消息提醒,实测20小时需要登录一次还是能够接受的***##前端生成付款二维码接口1:alipays://platformapi/startapp?appId=20000123&actionType=scan&biz_data={"s":"money","u":"商户id","a":"金额","m":"备注"}接口2:alipays://platformapi/startapp?appId=09999988&actionType=toAccount&goBack=NO&amount=金额&userId=商户id&memo=备注***说明alipays://platformapi/startapp?appId=09999988&actionType=toAccount&goBack=NO&amount=1.00&userId=2088501156491651&memo=备注2088501156491651具体的链接:alipays://platformapi/startapp?appId=09999988&actionType=toAccount&goBack=NO&amount=金额&userId=用户id&memo=备注这里的链接“用户id”并非支付宝收款账号,PC登录到支付宝右键查看源代码,搜索关键字“uid”,出现的就是你的支付宝的用户id,这里的appid不要去动他这是对应的appid来打开支付宝对应操作=======================l二维码例子alipays://platformapi/startapp?appId=20000123&actionType=scan&biz_data={"s":"money","u":"2088501156491651","a":"1","m":"CSDN,一块测试,20200609093339863"}以上文本生成一个二维码![在这里插入图片描述](https://img-blog.csdnimg.cn/20200706163825652.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p5cXl0c29mdA==,size_16,color_FFFFFF,t_70#pic_center)支付宝扫一扫就可以看到效果![在这里插入图片描述](https://img-blog.csdnimg.cn/20200706163947524.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p5cXl0c29mdA==,size_16,color_FFFFFF,t_70#pic_center)***##后台抓取的客户端我写了一个DEMO***下载地址![在这里插入图片描述](https://img-blog.csdnimg.cn/20200706164118645.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p5c
2018/9/17 5:29:50 3.33MB 支付宝免签约即时到账
1
前一段时间做的一个小项目,前端HTML5页面,支持移动端和PC端不同的显示效果。
中英文各做了页面从而可以中英文切换。
使用Ajax进行提交,通过Cookies防止用户多次提交,后台使用asp.net接受ajax请求,并将数据插入数据库,整个项目从前端到后台还是比较完整的,里面不含数据库,数据库可以震惊aspx里面的字段代码自行创建。
前端自创了网上的模板。
1
废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到).1.load(url,[data],[callback]):载入近程HTML文件代码并插入至DOM中。
url?(String):请求的HTML页的URL地址。
data?(Map):(可选参数)发送至服务器的key/value数据。
callback?(Callback):(可选参数)请求完成时(不需要是success的)的回调函数。
这个方法默
2016/4/16 3:30:06 138KB ajax callback html代码
1
诗歌网一个唐宋诗词简单展示的web项目技术构成基于java,框架spring-boot+springMVC+Mybatis数据库为Mysqlweb模板采用freeMarker,以及ajax加载页面由vue重构::,原页面依旧保留查询实现1.mysql全文索引模糊查询通过mysql建立全文索引,未使用分词器,将最小分词数转换2:[mysqld]innodb_ft_min_token_size=2ft_min_word_len=22.分词问题不但mysql没有有效的中文分词器,而且针对古文/古诗的分词器根本就没有。
只进行了简单的分词,保留2个字的结果,放入关键字属性列。
3.查询速度查询采用了布尔布尔模糊婚配,效率虽然比直接模糊查询快,但有时也会很慢。
将查询结果前100条id插入表中,每次查询先查结果表。
数据源唐宋诗词收缩::本项目对应数据库下载(base64,更新时间2020/05/28):aHR0cCUzQS8vbXkuc25vd3RyYWNlcy5jb20vc2l0ZW1hcC9wb2V0cnktc3FsLnppcA==
2017/6/11 22:15:36 147KB mysql spring-boot ajax freemarker-template
1
为更好的运用这两天学到的Ajax的相关的知识,就做了个简单的在线网络聊天室。
思路实现聊天室,基本上就是通过Ajax来传递数据,让PHP来实现对数据的差入和查找,再交给前端JavaScript实现页面的更新,达到即时聊天的功能。
音讯显示区音讯显示区就是一个DIV块,我们会借助Ajax获取到服务器端信息之后,使用JavaScript来更新页面。
音讯显示区发音讯发音讯模块,其实说白了,就是向服务器上插入数据的过程,也是属于比较简单的。
发言栏
2019/8/15 1:34:10 94KB ajax c formdata
1
NURBSToolbox官方网站是http://www.aria.uklinux.net/nurbs.php3%NURBS工具箱。
%版本1.0%%演示-NURBS演示%%nrbmak-从控制点和节点构建NURBS。
%nrbtform-使用缩放、平移或旋转操作符。
%nrbkntins-结插入/细化。
%nrbdegelev-度数提升。
%nrbderiv-导数的NURBS表示。
%nrbdeval-NURBS导数的评估。
%nrbkntmult-求结向量的多重性。
%nrbreverse-NURBS的反向评估方向。
%nrbtransp-交换NURBS曲面的U和V。
%nrbline-构建一条直线。
%nrbcirc-构造一个圆弧。
%nrbrect-构造一个矩形。
%
2020/3/14 9:03:41 36KB matlab
1
学生管理系统包括学生信息的删除添加插入排序等功能
2017/9/17 10:40:52 3.74MB 学生管理
1
项目一:使用ADO.NET技术实现校园BBS;01/;;Command对象实现对数据库执行T-SQL语句或存储过程Command对象的常用属性;Command对象的常用方法;基本步骤打开到数据库连接。
创建新的Command对象。
定义T-SQL命令。
执行T-SQL命令。
关闭数据库连接。
;参数化的好处在实际应用中,常常需要用户在页面上输入信息,并将这些信息插入到数据库中。
只要允许用户输入数据,就有可能出现输入错误,并可能对Web应用程序创建和执行SQL代码产生致命的影响。
为了处理这个问题,除了对输入控件进行检查之外,还可以在生成T-SQL命令时,不使用窗体变量而使用SQL参数来构造连接字符串。
SQL参数不属于SQL查询的可执行脚本部分。
由于错误或恶意的用户输入不会处理成可执行脚本,所以不会影响SQL查询的执行结果。
;Parameters属性和SqlParameter对象要在ADO.NET对象模型中使用SQL参数,需要向Command对象的Parameters集合中添加Parameter对象。
在使用SQLServer.NET数据提供程序时,要使用的Paramet
2015/9/27 3:03:16 899KB asp.net 数据库 文档资料 后端
1
共 740 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡