(download, screenshots, manual, overview, latest)

P# is a compiler which facilitates interoperation between a concurrent superset of the Prolog programming language and C#. This enables Prolog to be used as a native implementation language for Microsoft's .NET platform. P# compiles a linear logic extension of Prolog to C# source code.
  • P# can create C# objects from Prolog and use C#'s graphical, networking and other libraries.
  • P# adds language constructs on the Prolog side which allow concurrent Prolog code to be written.
  • P# adds a primitive predicate which evaluates a Prolog structure on a newly forked thread. Communication between threads is based on the unification of variables contained in such a structure. It is also possible for threads to communicate through a globally accessible table.
  • All of the new features are available to the programmer through new built-in Prolog predicates.
  • P# itself can be compiled with Mono, the open-source C# compiler developed by Ximian. Mono C# version and higher can compile the C# code generated by P#.
P# has been developed by Jon Cook in the Laboratory for Foundations of Computer Science in The University of Edinburgh and is based on Prolog Café, a Prolog to Java compiler.

Last modified: Tue Jun 22 14:53:31 GMT 2004