[fpc-pascal] Common OpenMP syntax?

Vinzent Höfler JeLlyFish.software at gmx.net
Fri Jul 21 12:16:15 CEST 2006


John Coppens wrote:
> On Thu, 20 Jul 2006 21:11:49 +0200
> Vinzent Höfler <JeLlyFish.software at gmx.net> wrote:
> 
>> Alan Burns? That's a name which rings a bell. You could have send the 
>> URL, though. ;)
>>
>> http://www-users.cs.york.ac.uk/~burns/pf.html
>>
>> Hmm, and taking a peek look at the examples, it doesn't really surprise 
>> me, that this just looks like the Pascal version of Ada's tasking.
> 
> Hi Vinzent.
> 
> Yes - quite famous. 
> 
> But apart from the ADA style resources, it also implement a number of
> other tools, such as channels/remote invocation, etc.

Yes, he borrowed from quite some concurrent languages (the semaphore 
could be Modula, and the channels maybe occam, I'm not sure). It still 
looks very much like Ada to me, especially the remote invocation just 
looks like Ada's rendezvous. Well, he calls it process, not task - just 
like in VHDL - but apart from that it looks very similar.

 > The cobegin/coend
> pair to specify concurrency is elegant, though maybe somewhat 'flat'.

What do you mean by 'flat'? That it can't be nested? If I read the 
OpenMP specs correctly, they say there, that they don't expect vendors 
to implement nested stuff real soon anyway. :)

Yet, I don't see a compelling reason - apart from the question how to 
implement it - why a nice new syntax couldn't nest "cobegin"s just like 
we already do with "begin"s:

cobegin
    Do_This;
    Do_That;

    cobegin
      Do_More;
      Do_Much_More;
    coend;
coend;

Not sure of that would work. ;)

Well, I guess, I have to read the specs more thoroughly, perhaps I come 
up with an idea, how all this stuff can be mapped nicely to this ugly C 
hack. They even state, that they are so much more special an better 
compared with all the existing concurrent languages, that I'd like to 
prove them otherwise. ;)


Vinzent.




More information about the fpc-pascal mailing list