Picat Stable Version 0.1 Released

neng.zhou at gmail.com neng.zhou at gmail.com
Wed Feb 5 23:35:24 CET 2014

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 
picat at picat-lang.org. 

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


The Picat Team

More information about the Python-list mailing list