Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status Build Status

The Ciao Programming Language

Ciao is a programming language that builds up from a logic-based simple kernel, and is designed to be extensible and modular. It supports:

  • constraint logic programming (and, in particular, Prolog)
  • different levels of modularity (from small to large scale)
    • modules as (analysis-friendly) compilation units
    • bundles as collections of modules
  • packages as modules implementing language extensions (syntactic definitions, compilation options, compiler plugins)
  • assertions (as a homogeneous framework that allows static and dynamic verification to work cooperatively in a unified way)
  • multiparadigm constructs (meta-programming, higher-order, mutables, concurrency, functions, etc.) and interfacing with foreign code

This repository contains the compiler and Ciao standard libraries. Together with the builder bundle it can be used as a minimal Ciao installation.

Other advanced features (such as global program analysis and transformations, static debugging, documentation generation, Emacs-based development environment, etc.) are provided in separate bundles.


Please consult the quick installation instructions or refer to the INSTALLATION file.

NOTE: This repository is automatically synchronized from the Ciao monorepo.