Path: utzoo!yunexus!geac!daveb
From: daveb@geac.UUCP (David Collier-Brown)
Newsgroups: comp.lang.misc
Subject: Re: What makes a language "easy" to program in?
Summary: I don't know, and neither does Per Brinch Hansen (:-).
Message-ID: <2810@geac.UUCP>
Date: 3 Jun 88 12:03:50 GMT
Article-I.D.: geac.2810
Posted: Fri Jun  3 08:03:50 1988
References: 
Reply-To: daveb@geac.UUCP (David Collier-Brown)
Distribution: comp
Organization: The Geac "Its Hard to Think Two Things at Once" Department
Lines: 54

In article  feldmark@hanako.stars.flab.Fujitsu.JUNET writes:
>The other day I was having a discussion about "what I would put into a
>parallel processing computer language, if I were designing one".  We
>were trying to quantify what makes certain programming languages "easy"
>to program in.
>
>We were discussing general MIMD parallel processing, and I am a
>consummate C programmer, but wouldn't dream of proposing a sequential
>programming language that is "hacked" to provide parallelism.  

  Well, Per Brinch Hansen (of "Monitors" fame, along with Tony
Hoare) invented an interesting language some years ago for
expressing programmer-visible parallellism in a somewhat "normal"
notation...
  This was Edison, described in a special issue of SP&E, and a
parallel buffer-copier looked something like the following:

   
   while (1) do
	out = in;
	cobegin 
		1 do read(in);
	also
		2 do write(out);
	coend
   end

  As you can see, this allows two long-lived processes to rendesvous
in a common critical section (the assignment statement) without tons
of syntax.
  I infer the code generated from this was substantially more
complex, something like:

	
	process_start(processor=1, process={read(in);});
	process_start(processor=2, process={write(out);});
    loop_label:
	wait_for(1); /* causes suspension */
	wait_for(2);
	out = in;
	run(1);
	run(2);
	goto loop_label;
    exit_label:
	process_stop(processor=1);
	process_stop(processor=2);
	exit;

--dave (its an interesting notation, and subtle) c-b
-- 
 David Collier-Brown.  {mnetor yunexus utgpu}!geac!daveb
 Geac Computers Ltd.,  | "His Majesty made you a major 
 350 Steelcase Road,   |  because he believed you would 
 Markham, Ontario.     |  know when not to obey his orders"