高清英文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
1、 该软件只支持ANSI编码文本,不支持Unicode编码文本。
2、 汉语文本可不进行分词处理。
3、 中英文文本文件要求分别以*.ZH.txt和*.EN.txt方式命名。
4、 数据文件必须严格行对齐,如包含空行也必须达到文本对应,即平行文件的对应行都是空的。
软件不能智能自动对齐语料。
5、 软件支持正则表达式检索。
6、 软件默认支持英文词形还原检索(lemmatizedsearch),如,检索go,可得到含有go、goes、went、going、gone等的平行句对。
去除lemmatized前的复选框,则可以检索实际输入的检索项(比如搜goes,只能得到含goes的平行句对)。
7、 软件还支持对应语言文本中包含或不含(exclude)某词项的检索。
如检索education,以及结果中包含(或不含)“教育”的句对。
8、 结果可存为tab符分隔的文本文件,便于后续分析。
2023/8/23 14:49:52 4.6MB 双语平行语料
1
正则表达式检测工具,非常方便的工具,还可以生成c#代码。
2023/8/6 6:06:05 184KB RegExBuilder,正则表达式
1
作者:胡彦本框架是一个lex/yacc完整的示例,用于学习lex/yacc程序基本的搭建方法,在linux/cygwin下敲入make就可以编译和执行。
本例子虽小却演示了lex/yacc程序最常见和重要的特征:*lex/yacc文件格式、程序结构。
*如何在lex/yacc中使用C++和STL库,用extern"C"声明那些lex/yacc生成的、要链接的C函数,如yylex(),yywrap(),yyerror()。
*重定义YYSTYPE/yylval为复杂类型。
*用%token方式声明yacc记号。
*用%type方式声明非终结符的类型。
*lex里正则表达式的定义、识别方式。
*lex里用yylval向yacc返回属性值。
*在yacc嵌入的C代码动作里,对记号属性($1,$2等)、和非终结符属性($$)的正确引用方法。
*对yyin/yyout重赋值,以改变yacc默认的输入/输出目标。
*如何开始解析(yyparse函数),结束或继续解析(yywrap函数)。
本例子功能是,对当前目录下的file.txt文件,解析出其中的标识符、数字、其它符号,显示在屏幕上。
linux调试环境是Ubuntu10.04。
总之,大部分框架已经搭好了,你只要稍加扩展就可以成为一个计算器之类的程序,用于《编译原理》的课程设计。
文件列表:lex.l:lex程序文件。
yacc.y:yacc程序文件。
main.hpp:共同使用的头文件。
Makefile:makefile文件。
file.txt:给程序解析的文本文件。
使用方法:1-把lex_yacc_example.rar解压到linux/cygwin下。
2-命令行进入lex_yacc_example目录。
3-敲入make,这时会自动执行以下操作:(1)自动调用flex编译.l文件,生成lex.yy.c文件。
(2)自动调用bison编译.y文件,生成yacc.tab.c和yacc.tab.h文件。
(3)自动调用g++编译、链接出可执行文件main。
(4)自动执行main,得到如下结果:。
bison-dyacc.yg++-clex.yy.cg++-cyacc.tab.cg++lex.yy.oyacc.tab.o-omainid:abcid:defghiint:123int:45678op:!op:@op:#op:$AllId:abcdefghi参考资料:《Lex和Yacc从入门到精通(6)-解析C-C++包含文件》,http://blog.csdn.net/pandaxcl/article/details/1321552其它文章和代码请留意我的blog:http://blog.csdn.net/huyansoft2013-4-27
1
js简单应用的课程设计,主要运用多种简单js,知识点:JavaScript+jQuery+Ajax+正则表达式+面向对象+js插件+代码性能优化+github+seaJs+requireJs+gulp通过学习JavaScript基础变量、运算符、数据类型,函数,DOM高级操作,实现前端的数据处理与响应用户的各种操作学习ajax数据交互,与JSON数据处理,对象解析与面向对象开发,实现网页异步更新
2023/7/20 12:29:28 3.84MB JS
1
用百度云下载了很多文件后缀名都是.baiduyun.p.downloading怎么办?下载了一堆视频教程或连续剧名字很乱怎么办?想给很多音乐文件批量加专辑和歌手标签怎么办?可以用这个批量更名工具解决。
这是一个我见过最强大的批量更名工具。
例如批量修改百度云下载后缀名baiduyun.p.downloading:1、在上方输入文件夹路径,载入路径,并选择【遍历文件夹】。
2、点击【E扩展名变更】-【E.1.添加替换扩展名】-【替换】,输入【.downloading】,点击上方【开始更名】,这时后缀名变为baiduyun.p。
3、重复步骤2,依次替换【.p】和【.baiduyun】。
大功告成。
工具支持正则表达式,应该还有更简便的方法。
2023/7/17 18:18:43 5.69MB 批量 更名 改名 修改后缀名
1
compose-regexp.js用JavaScript构建和编写可维护的正则表达式。
正则表达式不能正确对待正则语法。
正规的语法/语言形式主义全都与。
但是RegExps被设计为ed和grep等。
使用RegExp文字无法从较小的抽象模式构建大型表达式。
这使得复杂的RegExps难以阅读,调试和修改...compose-regexp可以解救!它并不能使常规语法变得更强大,但它们上仍然,但是由于它们无处不在,因此我们也可能拥有更好的工具来实现它们……用法$npminstall--savecompose-regexpimport{sequence,either,capture,  ref,suffix,flags,avoid}from"compose-regexp";//canberequire
2023/7/12 13:46:05 14KB JavaScript
1
根据正则表达式反向生成测试数据
2023/6/30 21:38:32 3.12MB 正则表达式
1
利用委托于与事件的原理,实现窗体的传值,在这个程序里面应用了正则表达式,委托,事件的原理。
能够帮助你近一步了解窗体的复杂操作!!
1
5.4:正则表达式、sed基本用法、sed文本块处理.docx
2023/5/30 1:57:13 105KB linux
1
共 92 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡