Pascal-FC is a programming language aimed at supporting the teaching of concurrent programming. It supports a wide range of concurrency primitives including semaphores, monitors with condition variables, synchronous message passing using channels (as in occam and CSP), remote invocation (as used in the Ada rendezvous), protected resources (as used in Ada 95 protected objects) and requeue. All of these features can be easily used, either in isolation or together.

An important feature of the implementation of Pascal-FC is the random switching between user processes incorporated into the run-time system. This provides an excellent simulation of true parallelism and invariably finds bugs in poorly structured programs.

It seems like Pascal-FC wasn't mentioned here before, and since there are implementations for various platforms I thought some of you may want to download and play with it a bit.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


By the way, I was looking for a good and complete discussion of the producer/consumer problem (pattern?) which also deals with termination issues (i.e., when the producer is done producing). Couldn't find a good link. Suggestions anyone?

A wide range of primitives

The sentence "a wide range of primitives" gives me an uneasy feeling.


The language is intended to be used for teaching about all these primitives..

Surely they are not all primitive

What they should have done is find a minimal set of primitives, and the explain the wide range of features using these primitives.

Other concurrent Pascals

There's also Concurrent Pascal, which has been around quite a while. And Ericsson had its own concurrent variation of Pascal called Eri-Pascal, which at least had some influence on the design of Erlang.