Any book covers materials on implementing parallel/concurrent programming language?

climber.cui@gmail.com
Tue, 28 Aug 2007 09:09:14 -0700

          From comp.compilers

Related articles
Any book covers materials on implementing parallel/concurrent programm climber.cui@gmail.com (2007-08-28)
Re: Any book covers materials on implementing parallel/concurrent prog mailbox@dmitry-kazakov.de (Dmitry A. Kazakov) (2007-08-28)
Re: Any book covers materials on implementing parallel/concurrent prog climber.cui@gmail.com (2007-08-29)
Re: Any book covers materials on implementing parallel/concurrent prog mrd@cs.cmu.edu (Matthew Danish) (2007-08-31)
| List of all articles for this month |
From: climber.cui@gmail.com
Newsgroups: comp.compilers
Date: Tue, 28 Aug 2007 09:09:14 -0700
Organization: Compilers Central
Keywords: parallel, question
Posted-Date: 28 Aug 2007 15:49:51 EDT

Hi ALL,
    I am working on my master thesis now. Its main task is to design
simple concurrent programming language, and then develop a compiler
that produce assembly code. Rather than using existing Pthread
library, I am going to do it from 'scratch', because we want to
achieve reasonable performance.
    The language design is nearly finished, we extend Pascal with Box
type and actions, each box is very similar to a monitor with the
exception that actions defined within a box runs autonomously, a piece
of code from the Dining-philosopher program is attached below.
      I have done some research, and checked several books and other
languages' implemenations. The only two books briefly discussing
implementing concurrent language are:
    "Modern compiler design" and "programming language pragmatics".
    I was wondering if there are better books for this particular
subject under the compiler context. Or, do you think these two books
should be sufficient by themself?
    Any suggestions?


    thanks.


tony
======================================================
type
box Philosopher (Index: integer);
const
LIMIT=5 : integer;
var
                times_eaten: integer;


    proc Say(msg:String)
    begin
            writeln("Philosopher", Index, msg);
    end


    action start
    begin
        for times_eaten=1 to LIMIT loop
            butler.Enter_sitdown;


            F(Index + 1).Pick_Up;
            Say ("has right fork and is waiting for left");
            F(Index).Pick_Up;
            Say ("got the left fork and is eating");


            F(Index + 1).Put_Down;
            F(Index).Put_Down;
            Say ("has put down the fork and is leaving the table");


            if butler.occupants>3 then
            begin Host.Getup_leave; Say("has putdown the forks and left --
>"); end;


        end loop;
        Say ("is dead");


    end;
    begin
        times_eaten:=0;
    end Philosopher;


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.