跳到主要内容
研究论文
开放式访问

将布尔等式转换为约束

出版:2017年5月1日出版历史
跳过抽象节

摘要

摘要

尽管函数语言和逻辑语言都使用相等来区分逻辑上不同的情况,但相等的操作含义在这些语言中是不同的。函数式语言将等式表达式简化为布尔表达式值True或False,逻辑语言仅使用统一检查有效性,否则将失败。因此,融合了函数和逻辑编程特性的语言Curry提供了两种等式表达式,因此程序员必须区分这些用法。我们表明,通过提供自动选择适当操作的分析和转换方法,可以避免这种差异。如果在源程序中没有这种区别,则可以简化语言设计并优化程序的执行。因此,我们证明了一种方程表达式是充分的,而统一只不过是布尔等式的优化。

工具书类

  1. 计轴评估器+02Alpunte M,Comini M,Escobar S,Falaschi M,Lucas S(2002)功能程序的抽象诊断。摘自:第十二届基于逻辑的程序合成和转换国际研讨会论文集(LOPSTR 2002),LNCS 2664。柏林施普林格,第1-16页谷歌学者谷歌学者
  2. AEH00型Antoy S公司Echahed R公司哈纳斯M需要的缩小战略美国临床医学杂志2000474776822186617710.1145/347476.3474841327.68141谷歌学者谷歌学者数字图书馆数字图书馆
  3. 空气处理10Antoy S公司哈纳斯M功能逻辑编程通用ACM2010534748510.1145/1721654.1721675谷歌学者谷歌学者数字图书馆数字图书馆
  4. 啊12Antoy S,Hanus M(2012),功能逻辑编程合同和规范。摘自:第14届声明性语言实用方面国际研讨会论文集(PADL 2012),LNCS 7149。柏林施普林格,第33-47页谷歌学者谷歌学者
  5. AH14型Antoy S,Hanus M(2014)库里没有成功。摘自:第23届函数和(约束)逻辑编程国际研讨会论文集(WFLP 2014)。CEUR研讨会记录,第1335卷。CEUR-WS.org,第140–154页谷歌学者谷歌学者
  6. AHH+05阿尔伯特·E哈纳斯MHuch F公司奥利弗·J维达尔G声明性多仿射语言的操作语义J Symb计算机200540179582921693592016年10月10日/j.jsc.2004.01.011129.68042谷歌学者谷歌学者数字图书馆数字图书馆
  7. 蚂蚁01Antoy S(2001)基于构造函数的条件收缩。摘自:第三届ACM SIGPLAN国际声明性编程原则和实践会议记录(PPDP 2001)。纽约ACM出版社,199-206页谷歌学者谷歌学者
  8. 蚂蚁10Antoy S公司窄化编程J符号计算2010455501522260861110.1016/j.jsc.2010.01.0061192.68135谷歌学者谷歌学者数字图书馆数字图书馆
  9. AGL94型Arenas-Sánchez P,Gil-Luezas A,López-Fraguas FJ(1994),结合惰性狭窄和疾病约束。摘自:第六届编程语言实现和逻辑编程国际研讨会论文集,LNCS 844。柏林施普林格,第385-399页谷歌学者谷歌学者
  10. BE95标准Bert D,Echahed R(1995)条件项重写系统的抽象。1995年国际逻辑编程研讨会论文集。麻省理工学院出版社,马萨诸塞州,第147–161页谷歌学者谷歌学者
  11. 比利时Ø93Bert D,Echahed R,Østvold M(1993)抽象重写。摘自:第三届静态分析国际研讨会论文集,LNCS 724。柏林施普林格,第178-192页谷歌学者谷歌学者
  12. 制动马力11Braßel B,Hanus M,Peemöller B,Reck F(2011)KiCS2:从Curry到Haskell的新编译器。摘自:第20届函数和(约束)逻辑编程国际研讨会论文集(WFLP 2011),LNCS 6816。柏林施普林格,第1-18页谷歌学者谷歌学者
  13. BHPR13型Braßel B,Hanus M,Peemöller B,Reck F(2013)《在函数语言中实现等式约束》。摘自:第十五届声明性语言实用方面国际研讨会论文集(PADL 2013),LNCS 7752。柏林施普林格,第125-140页谷歌学者谷歌学者
  14. CC77号机组Cousot P,Cousot R(1977)摘要解释:通过构造不动点的近似,用于程序静态分析的统一格模型。摘自:第四届ACM编程语言原理研讨会论文集,第238-252页谷歌学者谷歌学者
  15. 库97Cousot P(1997)类型作为抽象解释。摘自:第24届ACM编程语言原理研讨会会议记录(巴黎),第316-331页谷歌学者谷歌学者
  16. DM82型Damas L,Milner R(1982)功能程序的主要类型模式。摘自:第九届编程语言原理年度研讨会论文集,第207-212页谷歌学者谷歌学者
  17. HAB+16号机组Hanus M、Antoy S、Braßel B、Engelke M、Höppner K、Koj J、Niederau P、Sadre R、Steiner F(2016)PAKCS:波特兰-亚琛-基尔-咖喱体系。http://www.informatik.uni-kiel.de/~块/谷歌学者谷歌学者
  18. 汉97Hanus M(1997)用单一计算模型教授函数和逻辑编程。摘自:第九届编程语言、实现、逻辑和程序国际研讨会论文集(PLILP’97),LNCS 1292。柏林施普林格,第335-350页谷歌学者谷歌学者
  19. 汉01Hanus M(2001)Curry中的高级服务器端web脚本。摘自:1990年LNCS第三届声明性语言实践方面国际研讨会论文集(PADL'01)。柏林施普林格,第76-92页谷歌学者谷歌学者
  20. 汉07Hanus M(2007)《将声明性编程引入网络:将Curry转换为JavaScript》。摘自:第九届ACM SIGPLAN声明式编程原理与实践国际会议记录(PPDP'07)。纽约ACM出版社,第155-166页谷歌学者谷歌学者
  21. 汉08Hanus M(2008)功能逻辑程序的调用模式分析。摘自:第十届ACM SIGPLAN声明式编程原理与实践国际会议记录(PPDP'08)。纽约ACM出版社,第67–78页谷歌学者谷歌学者
  22. 汉12Hanus M(ed)(2012)Curry:一种集成函数逻辑语言(版本0.8.3)。http://www.curry-language.org谷歌学者谷歌学者
  23. 汉13Hanus M(2013)《函数逻辑编程:从理论到Curry》。In:为纪念Harald Ganzinger,LNCS 7797编程逻辑分析。施普林格,柏林,第123–168页谷歌学者谷歌学者
  24. 汉16Hanus M(ed)(2016)Curry:一种集成函数逻辑语言(0.9.0版)。http://www.curry-language.org谷歌学者谷歌学者
  25. 第14页Hanus M,Skrlac F(2014)功能逻辑程序的模块化通用分析服务器系统。摘自:2014年ACM SIGPLAN部分评估和程序操作研讨会会议记录(PEPM’14)。纽约ACM出版社,第181-188页谷歌学者谷歌学者
  26. KLMR92型Kuchen H,López-Fraguas FJ,Moreno-Navarro JJ,Rodríguez-Artalejo M(1992)实现带有不合格约束的惰性函数逻辑语言。1992年逻辑程序设计联合国际会议和专题讨论会会议记录。麻省理工学院出版社,剑桥谷歌学者谷歌学者
  27. 2007年3月Mitchell N,Runciman C(2007)Haskell中用于安全模式匹配的静态检查器。收录:《函数编程趋势》,第6卷。Intellect,纽约,第15-30页谷歌学者谷歌学者
  28. Myc80型Mycroft A(1980)将呼叫者需求转化为呼叫者价值的理论与实践。摘自:LNCS 83国际编程研讨会论文集。柏林施普林格,第269-281页谷歌学者谷歌学者
  29. OSS02系统Overton D,Somogyi Z,Stuckey PJ(2002),汞的基于约束的模式分析。摘自:第四届ACM SIGPLAN声明式编程原理与实践国际会议记录(PPDP'02)。柏林ACM出版社,第109-120页谷歌学者谷歌学者
  30. PJ03页Peyton Jones S(ed)(2003)Haskell 98语言和图书馆——修订报告。剑桥大学出版社谷歌学者谷歌学者
  31. 红色85Reddy US(1985)作为函数语言的操作语义进行了狭义化。收录:IEEE国际会议录。逻辑编程研讨会,波士顿,第138-151页谷歌学者谷歌学者
  32. 雷伊72Reynolds JC(1972)高阶编程语言的定义解释器。在:ACM年会论文集,第717–740页。纽约ACM出版社谷歌学者谷歌学者
  33. 罗布65罗宾逊JA基于分辨原理的面向机器的逻辑美国临床医学杂志1965121234117049410.1145/321250.321253139.12303谷歌学者谷歌学者数字图书馆数字图书馆
  34. 上海C96索莫吉Z亨德森F康威T高效的纯声明逻辑编程语言mercury的执行算法J逻辑程序1996291–3176410.1016/S0743-1066(96)00068-4877.68015谷歌学者谷歌学者交叉引用交叉引用
  35. 第74条矿渣JR具有简化器、交换性和结合性的理论的自动理论证明美国临床医学杂志197421462264242885110.1145/321850.321859296.68092谷歌学者谷歌学者数字图书馆数字图书馆
  36. 第03学期Bezem M,Klop JW,de Vrijer R(eds)(2003)术语重写系统。剑桥大学出版社谷歌学者谷歌学者
  37. 战争82Warren DHD(1982)序言的高阶扩展:它们需要吗?In:机器智能,第10卷,第441-454页谷歌学者谷歌学者

建议

评论

马修·马克·亨巴赫

在声明性编程语言中,变量是表示由计算规则确定的值的符号,而不是内存中的空间。声明性语言的两种主要形式是函数式和逻辑式。在函数语言中,变量与表达式相关联,通过计算将表达式简化为最终形式的值。逻辑语言的工作原理不同。计算包括测试表达式是否有效。表达式可能包含未分配的变量,测试可能需要为其提供使表达式有效所需的值。逻辑语言可能是不确定的,这意味着一个变量可能有多个值。如果一个变量是共享的,如果需要使另一个表达式有效,那么一个表达式的计算可能会回溯,以给一个变量一个替代值。Curry是试图将这两种形式结合在一种编程语言中的主要示例。因此,它需要两个相等运算符。它们是x==y,函数形式等待x和y完全求值,以及逻辑形式x=:=y,如果未赋值,可以通过为其中一个变量赋值另一个变量的值来工作。这两种形式的平等之间的微妙区别可能很难理解,并可能导致效率低下。本文建议通过使用一个等式操作符来避免这种情况,并展示了程序的自动分析如何确定程序何时应该像=:=而不是==那样工作。在线计算评论服务

访问计算机文献的批评性评论在这里

成为评论员计算评论。

评论

登录选项

检查您是否可以通过登录凭据或您的机构访问本文。

登录

完全访问权限

  • 发布于

    封面图像计算的形式方面
    计算的形式方面 第29卷第3期
    2017年5月
    196页
    国际标准编号:0934-5043
    EISSN公司:1433-299X年
    期刊目录

    ©英国计算机学会2016

    出版商

    Springer-Verlag公司

    柏林,海德堡

    出版历史

    • 出版:2017年5月1日
    • 认可的:2016年9月28日
    • 收到:2016年3月31日
    发布于fac公司第29卷第3期

    限定符

    • 研究论文

PDF格式

以PDF文件查看或下载。

PDF格式

电子阅读器

使用eReader联机查看。

电子阅读器