Task granularity analysis in logic programs
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
A practical framework for the abstract interpretation of logic programs
Journal of Logic Programming
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
ACM Transactions on Programming Languages and Systems (TOPLAS)
Should your specification language be typed
ACM Transactions on Programming Languages and Systems (TOPLAS)
Concurrency in Prolog using threads and a shared database
Proceedings of the 1999 international conference on Logic programming
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
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
A Generic Processor for Program Validation and Debugging
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
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
More Precise Yet Efficient Type Inference for Logic Programs
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
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
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)
Constraint-Based Local Search
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
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
A practical type analysis for verification of modular prolog programs
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The design and implementation of typed scheme
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Comparing tag scheme variations using an abstract machine generator
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Towards execution time estimation in abstract machine-based languages
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Efficient constraint propagation engines
ACM Transactions on Programming Languages and Systems (TOPLAS)
A High-Level Implementation of Non-deterministic, Unrestricted, Independent And-Parallelism
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Integrating Software Testing and Run-Time Checking in an Assertion Verification Framework
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
Constraint Handling Rules
User-definable resource bounds analysis for logic programs
ICLP'07 Proceedings of the 23rd international conference on Logic programming
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
Context-sensitive multivariant assertion checking in modular programs
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Improving the ISO prolog standard by analyzing compliance test results
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
An overview of the Ciao system
RuleML'2011 Proceedings of the 5th international conference on Rule-based reasoning, programming, and applications
Constraint-Based runtime prediction of SLA violations in service orchestrations
ICSOC'11 Proceedings of the 9th international conference on Service-Oriented Computing
A segment-swapping approach for executing trapped computations
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
A general implementation framework for tabled CLP
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Modular extensions for modular (logic) languages
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Symbolic evaluation graphs and term rewriting: a general methodology for analyzing logic programs
Proceedings of the 14th symposium on Principles and practice of declarative programming
Tor: extensible search with hookable disjunction
Proceedings of the 14th symposium on Principles and practice of declarative programming
Lightweight compilation of (c)lp to javascript*
Theory and Practice of Logic Programming
A modular and generic analysis server system for functional logic programs
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
We provide an overall description of the Ciao multiparadigm programming system emphasizing some of the novel aspects and motivations behind its design and implementation. An important aspect of Ciao is that, in addition to supporting logic programming (and, in particular, Prolog), 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 (including those of Prolog) 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 assignment, predicates, Prolog meta-programming, 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 optimizations (including automatic parallelization). Such optimizations produce code that is highly competitive with other dynamic languages or, with the (experimental) optimizing compiler, even that of static languages, all while retaining the flexibility and interactive development of a dynamic language. This compilation architecture supports modularity and separate compilation throughout. The environment also includes a powerful autodocumenter and a unit testing framework, both closely integrated with the assertion system. 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 a single journal paper, pointing instead to previous Ciao literature.