×

Ciao及其设计理念概述。 (英语) Zbl 1244.68019号

摘要:我们对Ciao多半径编程系统进行了总体描述,强调了其设计和实现背后的一些新颖方面和动机。Ciao的一个重要方面是,除了支持逻辑编程(尤其是Prolog)之外,它还为程序员提供了来自不同编程范式和风格的大量有用功能,并且这些功能(包括Prolog的功能)的使用每个程序模块都可以随意打开和关闭。因此,一个给定的模块可能正在使用,例如,高阶函数和约束,而另一个模块可能在使用赋值、谓词、Prolog元编程和并发。
此外,该语言设计为以简单和模块化的方式进行扩展。Ciao的另一个重要方面是它的编程环境,它提供了一个功能强大的预处理器(带有相关的断言语言),能够静态地查找非平凡的错误,验证程序是否符合规范,并执行多种类型的优化(包括自动并行化)。这种优化产生的代码与其他动态语言或(实验性的)优化编译器,甚至与静态语言的编译器,都具有很强的竞争力,同时保留了动态语言的灵活性和交互式开发。
这种编译体系结构始终支持模块化和单独编译。该环境还包括一个功能强大的自动文档器和一个单元测试框架,两者都与断言系统紧密集成。本文对语言和程序开发环境进行了非正式概述。它旨在阐明设计理念,而不是穷尽所有,这在一篇期刊论文中是不可能的,而是指向之前的Ciao文献。

MSC公司:

68N17号 逻辑编程
68甲15 编程语言理论
68N20型 编译与解释理论

软件:

彗星
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Hermenegildo,约束编程原理与实践,第123页–(1994)·doi:10.1007/3-540-58601-695
[2] 内政部:10.1016/0743-1066(92)90053-6·doi:10.1016/0743-1066(92)90053-6
[3] 内政部:10.1016/0743-1066(93)00007-F·Zbl 0829.68023号 ·doi:10.1016/0743-1066(93)00007-F
[4] 内政部:10.1016/j.scico.2005.02.006·Zbl 1076.68540号 ·doi:10.1016/j.scico.2005.02.006
[5] 内政部:10.1007/978-3-642-60085-2_7·doi:10.1007/978-3642-60085-27
[6] 内政部:10.1007/BF03037164·doi:10.1007/BF03037164
[7] Hermenegildo,程序。欧洲并行处理会议(EURO-PAR’04)第21页–(2004)
[8] Hermenegildo,国际计算逻辑会议(CL’00)第1345页–(2000)
[9] 内政部:10.1007/BFb0002715·doi:10.1007/BFb0002715
[10] Mera,程序。国际逻辑编程会议(ICLP’09)第281页–(2009)
[11] Mera,程序。声明性编程原则与实践研讨会(PPDP’08)第174页–(2008)
[12] López-García,符号计算杂志,并行符号计算专刊21,第715页–(1996)
[13] López-García,程序。《国际逻辑编程会议技术通讯》第104页(2010年)
[14] López-García,新一代计算28,第117页–(2010)·兹比尔1192.68130 ·doi:10.1007/s00354-008-0085-1
[15] 内政部:10.1007/s00165-007-0026-7·Zbl 1121.68074号 ·doi:10.1007/s00165-007-0026-7
[16] 内政部:10.1145/319301.319317·doi:10.1145/319301.319317
[17] 内政部:10.1109/52.7943·兹伯利05102299 ·数字对象标识代码:10.1109/52.7943
[18] 吉姆,Proc。USENIX年度技术会议,通用轨道第275页–(2002)
[19] Hudak,Haskell特刊,ACM Sigplan通告27 pp 1–(1992)
[20] Holzbaur,程序。编程语言:实现、逻辑和程序研讨会(PLILP’92)第260–(1992)页·doi:10.1007/3-540-55844-6_141
[21] 卡罗,Proc。1999年逻辑编程国际会议第320页–(1999)
[22] Hermenegildo,逻辑和约束逻辑编程的并行性和实现第65页–(1999)
[23] Hermenegildo,程序。国际逻辑程序设计会议(ICLP’86)第25页–(1986)·doi:10.1007/3-540-16492-8_62
[24] 内政部:10.1145/504083.504085·Zbl 05459272号 ·数字标识代码:10.1145/504083.504085
[25] García de la Banda,《美国计算机学会编程语言与系统汇刊》22,第269页–(2000)·Zbl 01935142号 ·数字对象标识代码:10.1145/349214.3492224
[26] 加西亚·德拉,Proc。编程语言:实现、逻辑和程序研讨会(PLILP’96)第77–(1996)页·doi:10.1007/3-540-61756-678
[27] Wolfram,{\(\lambda\)}Prolog的语义(1992)
[28] 沃伦,Proc。国际逻辑程序设计会议(ICLP’88)第684页–(1988)
[29] 内政部:10.1017/CBO9780511609886·Zbl 1182.68039号 ·doi:10.1017/CBO9780511609886
[30] 德布雷,Proc。逻辑程序设计国际研讨会(ILPS’97)(1997)
[31] 内政部:10.1145/93542.933564·doi:10.1145/93542.933564
[32] 内政部:10.1145/161468.161472·数字对象标识代码:10.1145/161468.161472
[33] Cousot,程序。编程语言原理研讨会(POPL’77)第238页–(1977)
[34] Vaucheret,程序。国际静态分析研讨会(SAS'02)第102页–(2002)
[35] 莫拉莱斯,Proc。声明式编程原理与实践研讨会(PPDP’08)第32页–(2008)
[36] 内政部:10.1007/978-3-540-24836-1_7·doi:10.1007/978-3-540-24836-17
[37] Cabeza,程序。国际静态分析研讨会(SAS’94)第297页–(1994)
[38] 内政部:10.1007/978-3-540-24754-8_9·doi:10.1007/978-3-540-24754-89
[39] 内政部:10.1145/316686.316688·数字对象标识代码:10.1145/316686.316688
[40] Bueno,程序。第三届国际自动调试WS(AADEBUG)第155页–(1997)
[41] 内政部:10.1016/0743-1066(91)80001-T·Zbl 0717.68010号 ·doi:10.1016/0743-1066(91)80001-T
[42] 内政部:10.1145/1297081.1297091·doi:10.1145/1297081.1297091
[43] 内政部:10.1007/s00354-008-0039-7·Zbl 1169.68356号 ·doi:10.1007/s00354-008-0039-7
[44] 艾特·卡奇,程序。1993年逻辑程序设计国际研讨会第52页–(1993)
[45] 内政部:10.1007/978-3-540-24836-1_8·doi:10.1007/978-3-540-24836-18
[46] Van Hentenryck,基于约束的本地搜索(2005)
[47] 内政部:10.1145/227595.2275957·Zbl 0882.68050号 ·数字对象标识代码:10.1145/227595.227597
[48] Tobin Hochstadt,会议记录。程序设计语言原则(POPL)第395页–(2008)
[49] Casas,程序。第24届逻辑程序设计国际会议(ICLP’08)第651页–(2008)
[50] DOI:10.1016/S0743-1066(96)00068-4·Zbl 0877.68015号 ·doi:10.1016/S0743-1066(96)00068-4
[51] 数字对象标识码:10.1145/1452044.1452046·Zbl 05517454号 ·doi:10.1145/1452044.1452046
[52] Schrijvers,程序。国际逻辑编程会议(ICLP’08)第693-(2008)页
[53] Casas,程序。基于逻辑的程序合成与转换国际研讨会(LOPSTR'07)第138页–(2007)
[54] 内政部:10.1145/113445.113469·数字对象标识代码:10.1145/113445.113469
[55] Carro,《嵌入式系统的编译器、体系结构和综合》,第271页–(2006年)
[56] 卡罗,Proc。国际逻辑程序设计会议(ICLP’93)第184–(1993)页
[57] 内政部:10.1145/215465.215561·doi:10.1145/215465.215561
[58] 数字对象标识码:10.1017/S14710684010117X·Zbl 02048607号 ·文件编号:10.1017/S14710684010117X
[59] 普埃布拉,Proc。国际逻辑程序设计会议(ICLP’97)第93页–(1997)
[60] Cabeza,(C)LP系统的并行性和实现专题(2000年)
[61] 数字对象标识码:10.1007/10722311_2·数字对象标识代码:10.1007/10722311_2
[62] Cabeza,程序。国际计算逻辑会议(CL'00)第131页–(2000)
[63] DOI:10.1007/10722311_3·doi:10.1007/10722311_3
[64] Cabeza,程序。COMPULOG-NET并行性和实现技术研讨会(COMPULOG NET’95)(1995年)
[65] 普埃布拉,Proc。国际静态分析研讨会(SAS’06)第107页–(2006)
[66] 内政部:10.1145/1328408.1328418·数字对象标识代码:10.1145/1328408.1328418
[67] 内政部:10.1007/11916277_27·兹比尔1165.68411 ·doi:10.1007/11916277_27
[68] Olmedilla,程序。逻辑程序合成与转换研讨会(LOPSTR'93)第177页–(1993)
[69] 内政部:10.1145/1065887.1065892·Zbl 05459312号 ·doi:10.1145/1065887.1065892
[70] Naish,程序。国际逻辑程序设计会议(ICLP’89)第521页–(1989)
[71] DOI:10.1016/0743-1066(92)90035-2·Zbl 0776.68032号 ·doi:10.1016/0743-1066(92)90035-2
[72] Muthukumar,程序。国际逻辑程序设计会议(ICLP’91)第49页–(1991)
[73] Muthukumar,程序。国际逻辑程序设计会议(ICLP’90)第221页–(1990)
[74] DOI:10.1016/S0743-1066(98)10022-5·Zbl 0927.68018号 ·doi:10.1016/S0743-1066(98)10022-5
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。