
PICAT
Logical Scripting & Modeling Language
Media
Description
PICAT is a compact, rule-based scripting + modeling language for combinatorial search, constraint programming (CP), satisfiability solving (SAT), mixed-integer programming (MIP), planning, natural language processing (NLP), knowledge engineering, complex data processing, and web services.
It combines pattern-matching rules (predicates: 0..n answers; functions: single answer), imperative conveniences (assignable variables, assignments, foreach/loops and comprehensions), event-driven actors (action rules + channels) and tabling (memoization + term-sharing); the planner uses tabled, resource-bounded search and is often competitive with answer set programming (ASP) and Planning Domain Definition Language (PDDL) planners on benchmarks.
Constraint programming dramatically reduces and scans search spaces for NP/dynamic-programming problems (examples of successful applications: shortest path, knapsack, n-queens, Sudoku) without hand-coding the backtracking/search algorithm, and Picat is a great language for learning and applying these concepts as well as for general-purpose scripting.
Picat’s C sources are distributed under the Mozilla Public License 2.0 (MPL 2.0). Created and maintained by Neng-Fa Zhou (with community contributions and notable support/examples from Hakan Kjellerstrand), development spans May 31, 2013, to August 22, 2025 (~12 years).