没有合适的资源?快使用搜索试试~ 我知道了~
作为文件标题的一个20字中文总结可能为:“当今编程语言中的策略与实现的挑战”
理论计算机科学电子笔记124(2005)113-118www.elsevier.com/locate/entcs当今编程语言中的策略萨尔瓦多·卢卡斯DSIC,UniversidadPolit′ecnicadeValencaa,CaminodeVeras/n,46022Valenca,Spain。slucas@dsic.upv.es摘要本文简要介绍了作为第四届重写和编程中的缩减策略国际研讨会(WRS'04)的一部分而组织的“当今编程语言中的策略”圆桌会议的动机、主题和研究方向。保留字:编程语言,策略。1介绍在计算系统中使用策略有着悠久的历史。非常简单的形式主义,如λ-演算已经表明,正确选择计算(归约)步骤对于在非确定性计算是可能的情况下实现良好的运算性是必不可少的:这反映在λ-演算中的正常和应用复杂的编程语言,其操作原理基于归约原理(的变体)(例如,CafeOBJ,Clean,Curry,ELAN,Haskell,Lisp,Maude,ML,OBJ*,Toy,.)已经对这些评估模式进行了选择(并进行了适当的调整),从而导致了懒惰编程语言和渴望编程语言之间的通常区别。这种选择是语言定义的一部分,一旦在实现中固定下来,就不能改变。这与这些编程语言的声明性精神是一致的,其中逻辑和控制没有混合。程序员(只)负责程序的逻辑;控制由设计者和实现者固定。1571-0661 © 2005 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2004.11.023114S. Lucas/Electronic Notes in Theoretical Computer Science 124(2005)113虽然这基本上是正确的,但这些语言的日常使用表明,很难实现完美的解决方案。这一点在λ演算中已经很清楚了,在λ演算中,使用正常的和可应用的求值顺序既有优点也有缺点。在真正的编程语言中,情况也是类似的,事情往往变得更加复杂,心理因素也可能与之相关。因此,一些学者致力于分析当使用给定的–fixed– evaluation strategy could be improved and how to do it. For instance,regarding eager programming languages, implementations of Lisp where thelist constructor operator (此外,由于每一种策略都只表现得很好(即,它是标准化的、最优的等等)。对于特定类别的程序,编程语言的设计者已经开发了一些特征和语言构造,旨在给予用户对程序执行的更灵活(和明确)的控制例如,代数(渴望)语言,如Maude,OBJ2,OBJ3和CafeOBJ,允许显式指定特定类别的策略注释,这些注释(基本上)是与函数符号相关联的整数列表,这些符号指定函数调用中参数(最终)评估的顺序。其他的编程语言,如ELAN,包含了一个强大的策略语言作为其设计的一个重要组成部分;程序员可以使用这个策略语言来指定程序的具体评估策略在惰性函数式编程中,已经引入了程序上的不同类型的语法注释(例如严格性注释,或Clean中使用的全局和局部注释),以便在基本的底层惰性评估策略中驱动局部变化并获得更有效的执行。在这些语言中,构造器符号是惰性的,即,直到需要时才评估它们的参数。这允许包含元素的结构,如果计算这些元素,将导致错误或无法终止。由于在实现此功能时有许多开销,像Haskell这样的惰性函数语言允许对数据类型构造函数的参数进行显式语法注释,从而允许立即求值。1它是一个简单的概念,用来解释Haskell的一个重要特征:Haskell的参数顺序的选择:“参数的从左到右的评估”是首选,“因为它向用户呈现了最简单的语 义 , 这 被 认 为 比 使 参 数 的 顺 序 无 关 紧 要 更 重 要 ” ( 参 见 [ 3 ] , 第 2. 4. 3节)。S. Lucas/Electronic Notes in Theoretical Computer Science 124(2005)1131152有什么问题吗?前面的概述引出了WRS'04圆桌会议的主要目标这对Elan、Haskell和Maude等公司来说尤其如此。因此,我们面临着以下一般性问题:策略在编程语言的现实建模、分析和优化中的具体作用是什么?更准确地说:我们的抽象模型,定义和处理归约策略的分析技术基本上是为使用术语重写系统进行完全重写而开发的(最近的调查见[4]),它们不容易应用于使用术语重写系统的真实程序。(i) 策略语言(或固定策略),(ii) 条件TRS,(iii) 类型/排序信息,(iv) 高阶函数,(v) 多态性,(vi) 数据结构,(vii) 内置符号,(viii) ACI符号,(ix) 共享信息(图形而不是术语),(x) 模块,(xi) ...作为一个激励性的例子,考虑在使用条件规则的编程语言中使用最内层重写策略;我们将看到这些系统的最内层重写→i的定义可能是有问题的。莱马泰克下面的例子中的系统借用了[1,结论]2中的类似系统。例2.1考虑下面的条件项重写系统:f(a)→f(c)a→b如果f(a)→f(c)[2][1]中的一个例子,在很大程度上是由于Cla ud eMarch′e。116S. Lucas/Electronic Notes in Theoretical Computer Science 124(2005)113一旦我们接受f(a)→if(c),我们也必须接受a→iB. 然后,我们进入了一个明显的矛盾与通常的定义,最内层重写(重写一个Redex,前提是它不包含任何其他Redex),因为我们应该有f(a)→if(b),因此,f(a)/→if(c)。在这种情况下,然而,我们不能包括ea→iba nymore,我们再次回到f(a)→if(c)!上一个例子表明,直觉和非常流行的策略(如最内)在某些情况下会变得违反直觉(或不可行)(参见[2]以获得更多这个意义上的例子)。这意味着在真正的编程语言中推理策略编程是困难的。在这种情况下,未来的研究应该有希望澄清我们是否有适当的(i) 战略概念(ii) 分析程序(iii) 定义和分析决定论的方法,NF的唯一性,...(iv) 分析复杂性和测量效率(v) 策略语言(vi) ...从这个意义上说,WRS'04圆桌会议的目的是提供来自知名编程语言的通常实践的经验,技术和结果的第一个3编程语言中的策略景观圆桌会议的参与者是开发上述编程语言的团队或研究团体的领导成员:Maudedevelopmentroup 的 成 员 FranciscoDura′n , ELAN 团 队 的 领 导 者ClaudeKirchner,以及Haskell社区的RalfLam?mel这些作者所写的笔记被收集作为本卷的一部分,并讨论了关于策略在使用相应编程语言中的作用的最新技术和未来发展。Kirchner声明式语言,特别是基于规则的语言(有两个主要组成部分:模式匹配和规则应用)特别适合将策略付诸实践。Elan的经历被描述为一个具体的S. Lucas/Electronic Notes in Theoretical Computer Science 124(2005)113117(and早期)尝试利用可编程策略作为编程工具。Kirchner还列举了一些战略挑战,包括开发语言和组合子来指定和构建战略;分析战略重写的属性(将可达性、终止性、连续性等标准问题,(此字段);策略的评估和转换;以及策略在实际应用和当前技术中的使用(包括定理证明、编程、XML技术、生产和业务规则、生物计算等)。Lüammel这是通过斯特拉芬斯基方法来说明的,该方法将策略(本质上)引入Haskell中的数据库(或“术语类型”)上的多态函数。这种方法的优点进行了讨论,然后通过替代的“报废你的样板”的方法进行比较的通用编程框架Léammel alsofnisheswith h a nn ontofchallenges(特别是,但不总是, 面向Haskell用户),这是“随时等待”一些研究关注:终止,愚蠢,捷径,可组合性的分析;新的表达性新的opportunitite s:对策略的各种影响,对象syn t ax a ` la A S F + S D F,图管理,策略和属性语法的最后,Duran因此,策略被认为是一种元编程能力。尽管(如引言中所述)Maude已经包含了一种简单的策略语言,它能够将策略注释与签名的符号相关联,但反射可以用于在评估过程中引入更深层次的修改这是通过META-LEVEL模块,这是简要描述的文件,从而显示如何使用它来控制程序的执行。这个基本过程的一些应用被列举:实时Maude,其中实现了明确区分渴望和懒惰规则;移动Maude,其中实现了对象公平策略并以这种方式使用;用于实现初始表达式的穷举评估和规范化的新命令;上述策略语言的扩展以应对按需策略注释;更强大和完整的策略语言,包括复杂的遍历和模式匹配设施;不变驱动策略等。118S. Lucas/Electronic Notes in Theoretical Computer Science 124(2005)113引用[1] F. 杜兰,S。 Lucas,J. Meseguer,C. 马克和X。你在这里。会员平等计划的条款。在P.Sestoft和N. Heintze,编辑,Proc.ofACMSIGPLAN 2004 Symposium on PartialEvaluation and Program Manipulation , PEPM'04,第147-158页,ACM Press,NewYork,2004。[2] B.格拉姆利克条件方程逻辑中最小不动点的(不)存在性与条件改写。在重症Guessarian,编辑,Proc.2nd Int. Workshop on Fixed Points in Computer Science,FICS[3] P·胡达克函数式程序设计语言的概念、发展和应用。ACM Computing Surveys,21(3):359-411,1989.[4] 诉van Oostrom和R.德·弗里耶战略布局在TeReSe,术语重写系统,第9章中。剑桥大学出版社,2003年。
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 计算机系统基石:深度解析与优化秘籍
- 《ThinkingInJava》中文版:经典Java学习宝典
- 《世界是平的》新版:全球化进程加速与教育挑战
- 编程珠玑:程序员的基础与深度探索
- C# 语言规范4.0详解
- Java编程:兔子繁殖与素数、水仙花数问题探索
- Oracle内存结构详解:SGA与PGA
- Java编程中的经典算法解析
- Logback日志管理系统:从入门到精通
- Maven一站式构建与配置教程:从入门到私服搭建
- Linux TCP/IP网络编程基础与实践
- 《CLR via C# 第3版》- 中文译稿,深度探索.NET框架
- Oracle10gR2 RAC在RedHat上的安装指南
- 微信技术总监解密:从架构设计到敏捷开发
- 民用航空专业英汉对照词典:全面指导航空教学与工作
- Rexroth HVE & HVR 2nd Gen. Power Supply Units应用手册:DIAX04选择与安装指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)