Picat Stable Version 0.1 Released



We are pleased to announce the release of the first stable
version of Picat, version 0.1, on picat-lang.org. This
version has undergone intensive testing, using a
comprehensive unit-test suite and a collection of several
hundred programs of over 70,000 lines of code in total.

Picat is a simple, and yet powerful, logic-based
multi-paradigm programming language aimed for
general-purpose applications. Picat is a rule-based
language, in which predicates, functions, and actors are
defined with pattern-matching rules. Picat incorporates
many declarative language features for better productivity
of software development, including explicit
non-determinism, explicit unification, functions, list
comprehensions, constraints, and tabling. Picat also
provides imperative language constructs, such as
assignments and loops, for programming everyday things. The
Picat implementation, which is based on a well-designed
virtual machine and incorporates a memory manager that
garbage-collects and expands the stacks and data areas when
needed, is efficient and scalable. Picat can be used for
not only symbolic computations, which is a traditional
application domain of declarative languages, but also for
scripting and modeling tasks.

Example programs for various kinds of domains, ranging from
scripting, dynamic programming, constraint solving with CP
and SAT, to planning, are available at:


As demonstrated by these examples, Picat offers many
advantages over other languages. Compared with functional
and scripting languages, the support of explicit
unification, explicit non-determinism, tabling, and
constraints makes Picat more suitable for symbolic
computations. Compared with Prolog, Picat is arguably more
expressive and scalable: thanks to the availability of
loops and list comprehension, it is not rare to find
problems for which Picat requires an order of magnitude
fewer lines of code to describe than Prolog, and Picat can
be significantly faster than Prolog because
pattern-matching facilitates indexing of rules.

Picat can be used for any fair purpose, including
commercial applications. The C source code is available to
registered developers and users free of charge. The project
is open to anybody and you are welcome to join, as a
developer, a sponsor, a user, or a reviewer. Please contact
(e-mail address removed).

The next version will focus on interoperability with other
systems. Please stay tuned.


The Picat Team


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question