【24h】

From Boolean Equalities to Constraints

机译:从布尔等式到约束

获取原文

摘要

Although functional as well as logic languages use equality to discriminate between logically different cases, the operational meaning of equality is different in such languages. Functional languages reduce equational expressions to their Boolean values, True or False, logic languages use unification to check the validity only and fail otherwise. Consequently, the language Curry, which amalgamates functional and logic programming features, offers two kinds of equational expressions so that the programmer has to distinguish between these uses. We show that this distinction can be avoided by providing an analysis and transformation method that automatically selects the appropriate operation. Without this distinction in source programs, the language design can be simplified and the execution of programs can be optimized. As a consequence, we show that one kind of equational expressions is sufficient and unification is nothing else than an optimization of Boolean equality.
机译:尽管功能语言和逻辑语言都使用相等性来区分逻辑上不同的情况,但是在这种语言中,相等性的操作含义是不同的。功能语言将等式表达式简化为布尔值True或False,逻辑语言仅使用统一来检查有效性,否则将失败。因此,融合了功能和逻辑编程功能的Curry语言提供了两种方程式,以便程序员必须区分这些用法。我们表明,可以通过提供一种自动选择适当操作的分析和转换方法来避免这种区别。在源程序中没有这种区别,可以简化语言设计并优化程序的执行。结果,我们证明了一种方程式表达式是足够的,并且统一不过是布尔等式的优化而已。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号