Communicating sequential processes
Communicating sequential processes
Parallel logic programming in PARLOG: the language and its implementation
Parallel logic programming in PARLOG: the language and its implementation
Theoretical Computer Science
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Linear logic: its syntax and semantics
Proceedings of the workshop on Advances in linear logic
Efficient implementation of a linear logic programming language
JICSLP'98 Proceedings of the 1998 joint international conference and symposium on Logic programming
Concurrency in Prolog using threads and a shared database
Proceedings of the 1999 international conference on Logic programming
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
The C++ Programming Language
Concurrent PROLOG: Collected Papers
Concurrent PROLOG: Collected Papers
Java Virtual Machine Specification
Java Virtual Machine Specification
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Programming in PROLOG
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
SICStus MT - A Multithreaded Execution Environment for SICStus Prolog
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Programming C#
Natural language processing: a prolog perspective
Artificial Intelligence Review
Towards a jitting VM for prolog execution
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Integrated symbol table, engine and heap memory management in multi-engine prolog
Proceedings of the international symposium on Memory management
Prolog Cafe: a prolog to java translator system
INAP'05 Proceedings of the 16th international conference on Applications of Declarative Programming and Knowledge Management
Hi-index | 0.00 |
We discuss P#, our implementation of a tool that allows 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. We can thus create C# objects from Prolog and use C#'s graphical, networking and other libraries. We add language constructs on the Prolog side that allow concurrent Prolog code to be written. A primitive predicate is provided that 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. We discuss two software engineering tools implemented using P#.