Task granularity analysis in logic programs
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Compile-time derivation of variable dependency using abstract interpretation
Journal of Logic Programming
Global flow analysis as a practical compilation tool
Journal of Logic Programming
Cost analysis of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Some paradigms for visualizing parallel execution of logic programs
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
An introduction to LIFE-programming with logic, inheritance, functions, and equations
ILPS '93 Proceedings of the 1993 international symposium on Logic programming
Implementation of multiple specialization in logic programs
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
A methodology for granularity-based control of parallelism in logic programs
Journal of Symbolic Computation - Special issue on parallel symbolic computation
Lower bound cost estimation for logic programs
ILPS '97 Proceedings of the 1997 international symposium on Logic programming
Partial order and contextual net semantics for atomic and locally atomic CC programs
Science of Computer Programming - Special issue on concurrent constraint programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Object-Oriented Programming; An Evolutionary Approach
Object-Oriented Programming; An Evolutionary Approach
A Comparison of 12 Parallel FORTRAN Dialects
IEEE Software
An Abstract Machine for Restricted AND-Parallel Execution of Logic Programs
Proceedings of the Third International Conference on Logic Programming
PPCP '94 Proceedings of the Second International Workshop on Principles and Practice of Constraint Programming
Towards a Concurrent Semantics based Analysis of CC and CLP
PPCP '94 Proceedings of the Second International Workshop on Principles and Practice of Constraint Programming
An Assertion Language for Constraint Logic Programs
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
Metastructures versus Attributed Variables in the Context of Extensible Unification
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Towards Independent And-Parallelism in CLP
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
A New Module System for Prolog
CL '00 Proceedings of the First International Conference on Computational Logic
A Documentation Generator for (C)LP Systems
CL '00 Proceedings of the First International Conference on Computational Logic
From Eventual to Atomic Locally Atomic CC Programs: A Concurrent Semantics
ALP '94 Proceedings of the 4th International Conference on Algebraic and Logic Programming
Approximating Constraint Logic Programs Using Polymorphic Types and Regular Descriptions
Approximating Constraint Logic Programs Using Polymorphic Types and Regular Descriptions
Distributed WWW programming using (Ciao-)Prolog and the PiLLoW library
Theory and Practice of Logic Programming
CCured: type-safe retrofitting of legacy software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
PyPy's approach to virtual machine construction
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
High-level languages for small devices: a case study
CASES '06 Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Specification and verification challenges for sequential object-oriented programs
Formal Aspects of Computing
RPython: a step towards reconciling dynamically and statically typed OO languages
Proceedings of the 2007 symposium on Dynamic languages
User-definable resource bounds analysis for logic programs
ICLP'07 Proceedings of the 23rd international conference on Logic programming
An improved continuation call-based implementation of tabling
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Integrating an answer set solver into prolog: ASP-PROLOG
LPNMR'05 Proceedings of the 8th international conference on Logic Programming and Nonmonotonic Reasoning
Abstract interpretation with specialized definitions
SAS'06 Proceedings of the 13th international conference on Static Analysis
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Determinacy analysis for logic programs using mode and type information
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Combining static analysis and profiling for estimating execution times
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
The Life of a Logic Programming System
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Logic–based decision support for strategic environmental assessment
Theory and Practice of Logic Programming
ICSOC/ServiceWave'09 Proceedings of the 2009 international conference on Service-oriented computing
On the portability of prolog applications
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
On the implementation of the CLP(BN) language
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
Theory and Practice of Logic Programming - Prolog Systems
Hi-index | 0.00 |
We describe some of the novel aspects and motivations behind the design and implementation of the Ciao multiparadigm programming system. An important aspect of Ciao is that it provides the programmer with a large number of useful features from different programming paradigms and styles, and that the use of each of these features can be turned on and off at will for each program module. Thus, a given module may be using e.g. higher order functions and constraints, while another module may be using objects, predicates, and concurrency. Furthermore, the language is designed to be extensible in a simple and modular way. Another important aspect of Ciao is its programming environment, which provides a powerful preprocessor (with an associated assertion language) capable of statically finding non-trivial bugs, verifying that programs comply with specifications, and performing many types of program optimizations. Such optimizations produce code that is highly competitive with other dynamic languages or, when the highest levels of optimization are used, even that of static languages, all while retaining the interactive development environment of a dynamic language. The environment also includes a powerful auto-documenter. The paper provides an informal overview of the language and program development environment. It aims at illustrating the design philosophy rather than at being exhaustive, which would be impossible in the format of a paper, pointing instead to the existing literature on the system.