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: http://picat-lang.org/projects.html http://www.hakank.org/picat/ 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 pi...@picat-lang.org. The next version will focus on interoperability with other systems. Please stay tuned. Sincerely, The Picat Team -- https://mail.python.org/mailman/listinfo/python-list