高清英文PDF版。
DSL领域的丰碑之作,软件开发“教父”MartinFowler历时多年的心血结晶,ThoughtWorks中国翻译。
  全面详尽地讲解各种DSL及其构造方式,揭示与编程语言无关的通用原则和模式,阐释如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通。
《领域特定语言》是dsl领域的丰碑之作,由世界级软件开发大师和软件开发“教父”martinfowler历时多年写作而成,thoughtworks中国翻译。
全面详尽地讲解了各种dsl及其构造方式,揭示了与编程语言无关的通用原则和模式,阐释了如何通过dsl有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用dsl提供有效的决策依据和指导方法。
  全书共57章,分为六个部分:第一部分介绍了什么是dsl,dsl的用途,如何实现外部ds和内部dsl,如何生成代码,语言工作台的使用方法;
第二部分介绍了各种dsl,分别讲述了语义模型、符号表、语境变量、构造型生成器、宏和通知的工作原理和使用场景;
第三部分分别揭示分隔符指导翻译、语法指导翻译、bnf、易于正则表达式表的词法分析器、递归下降法词法分析器、解析器组合子、解析器生成器、树的构建、嵌入式语法翻译、内嵌解释器、外加代码等;
第四部分介绍了表达式生成器、函数序列、嵌套函数、方法级联、对象范围、闭包、嵌套闭包、标注、解析数操作、类符号表、文本润色、字面量扩展的工作原理和使用场景;
第五部分介绍了适应性模型、决策表、依赖网络、产生式规则系统、状态机等计算模型的工作原理和使用场景;
第六部分介绍了基于转换器的代码生成、模板化的生成器、嵌入助手、基于模型的代码生成、无视模型的代码生成和代沟等内容。
2023/9/14 16:33:38 5.53MB 领域特定语言
1
第一章、绪论,第二章:产生式,第三章:状态空间,第四章:语义网络、第五章:不确定问题的求解。



2023/8/24 14:36:57 2.27MB 天津大学 人工智能 课件
1
1.使用如下文法: E®E+T|T T®T*F|F F®(E)|id2.对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。
手工构造LR分析表,利用移进-归约分析算法(P71图3.12)输出(P73表3.8)对应的动作部分。
如:输入:id*+id/(id+id)#输出:移进按F->id归约按T->F归约移进error……3.要有一定的错误处理功能。
即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。
例如:从状态0开始的记号流为:bm将b移进之后,栈里的情况应该为:0b2此时查表发现action[2,m]=error输出打印:error把A和状态1相继压入栈,用户指针后移到FOLLOW(A)对应的元素继续分析。
4.利用P94页的表3.13的方式将错误进行分类提示,即给出具体的出错信息。
扩展:在已有文法的基础上再加上减法“-”和除法“/”对应的产生式构成最终的文法。
从而使得记号流可以处理带括号的加、减、乘、除四则运算。
2023/8/20 23:55:43 6KB 编译原理
1
基于产生式的动物识别系统,用MFC实现可视化功能。
《人工智能》大作业。
2023/6/4 13:55:08 112.05MB 算法 MFC
1
LR分析器工作过程算法描述:一个LR分析器的工作过程可看成是栈里的状态序列,已规约串和输入串所构成的三元式的变化过程。
分析开始时的初始三元式为(s0,#,a1a2……an#)其中,s0为分析器的初态;
#为句子的左括号;
a1a2……an为输入串;
其后的#为结束符(句子右括号)。
分析过程每步的结果可表示为(s0s1……sm,#X1X2……Xmai,ai+1……an#)分析器的下一步动作是由栈顶状态sm和现行输入符号ai所唯一决定的。
即,执行ACTION(sm,ai)所规定的动作。
经执行每种可能的动作之后,三元式的变化情形是:(1)若ACTION(sm,ai)为移进,且s=GOTO(sm,ai),则三元式变成:(s0s1……sms,#X1X2……Xmai,ai+1……an#)(2)若ACTION(sm,ai)={A→β},则按照产生式A→β进行规约。
此时三元式变为(s0s1……sms,#X1X2……XmA,aiai+1……an#)此处s=GOTO(Sm-r,A),r为β的长度,β=Xm-r+1……Xm。
(3)若ACTION(sm,ai)为“接受”,则三元式不再变化,变化过程终止,宣布分析成功。
(4)若ACTION(sm,ai)为“报错”,则三元式的变化过程终止,报告错误。
一个LR分析器的工作过程就是一步一步的变换三元式,直至执行“接受”或“报错”为止。
2023/5/15 20:36:36 12.74MB 编译原理实验 LR分析表 LR分析器
1
利用语法分析器生成工具Yacc/Bison编写一个语法分析程序,与词法分析器结合,能够根据语言的上下文无关文法,识别输入的单词序列能否文法的句子。
有报告,有代码输入:代码片断输出:规约产生式
2023/2/10 7:14:24 189KB 编译原理 语法分析器
1
理解和掌握产生式知识表示方法及产生式零碎的基本过程,能够利用Web编程技术建立一个基于产生式知识表示的简单的智能零碎。
2019/5/7 10:57:14 2.15MB java Web servlet tomcat
1
为处理模糊Petri网建模效率低、工作量大、易出错等问题,提出了模糊产生式规则自动生成模糊Petri网的方法,并给出了其映射模型。
该方法通过模型映射,结合图元生成与定位实现了模糊Petri网的自动建模。
避免了模糊Petri网建模的人为失误,提高了建模效率。
使知识库与模型库同步更新,保证二者的一致性。
有利于充分发挥模糊Petri网的知识表示、模糊信息处理与动态并行推理的优势,对模糊Petri网理论的广泛应用具有推动作用。
通过实例表明该方法是可行的。
1
编译原理课程设计项目,带报告根据LL(1)分析法编写的语法分析程序:(1)输入已知文法,由程序自动构造文法的分析表M。
(2)所开发的程序可适用于不同的文法和任意输入串,且能判断该文法能否为LL(1)文法。
(3)对于输入的文法和符号串,正确判断此串能否为文法的句子,输出分析过程。
(4)可消除左递归左公因子图形界面良好可分析如下产生式集合(空字用‘@’表示)"E->E+T|T,T->T*F|F,F->i|(E)";"S->ME,E->+ME|@,M->FT,T->*FT|@,F->i|(S)";"S->AB,S->bC,A->@,A->b,B->@,B->aD,C->AD,C->b,D->aS,D->c";"S->AB|b,A->Sm,B->eA";
2018/9/1 10:39:25 1.57MB LL(1) 编译原理 课程设计 项目
1
一:实验内容:编写语法分析程序,实现对算术表达式的语法分析,要求所分析的算术表达式由如下的文法产生。
◆E->E+T|E-T|T◆T->T*F|T/F|F◆F->id|(E)|num二:实验要求:在对表达式进行分析的同时,输出所采用的产生式
可以采用多种方法◆编写递归调用程序,实现自顶向下的分析。
◆编写LL(1)语法分析程序,要求:◇编程实现算法4.2,为给定的文法自动构造预测分析表◇编程实现算法4.1,构造LL(1)预测分析程序,◆编写语法分析程序,实现自底向上的分析,要求:◇构造识别一切活前缀的DFA◇构造LR分析表◇编程实现算法4.3,构造LR分析程序◆利用yacc自动生成语法分析程序,调用LEX自动生成的词法分析器程序
2015/6/11 23:58:37 664KB 语法分析 实验报告 LL(1) LR
1
共 30 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡