🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #1118

Sather loops (was Re: Scientists as ...

#1118
From: Ari Juhani Huttunen
Date: Fri, 04 Sep 1992 00:18
76 lines
3657 bytes
! In article <ARI.HUTTUNEN.92Aug30182130@hulk.hut.fi> Ari.Huttunen@hut.fi (Ari Juhani Huttunen) writes:
!    Yes, I would myself like to see these loop-constructs in Sather:

!   loop       until <xxxx> loop   while <xxxx> loop  for <xxxx> to <yyyy> loop
!     <xxxx>     <yyyy>              <yyyy>             <zzzz>
!   end        end                 end                end

				   ^
				   |
				   | Forget that one.

! IMHO the above are quite poor syntax for expressing the kinds of loops
! that I see in numerical code.  Quite often it is possible to work in
! parallel, and all the above do is make it harder to extract the
! parallelism (of course so does the FORTRAN notation, but there is not
! reason to make the same mistake :-).

I can't know what kinds of loops you see in numerical code, so I can't
comment on that. I got the impression from the previous article that
a for-loop is wanted. Now it is not wanted?

As for the parallelism... You *do not* extract parallelism from
a sequential program. You design a parallel program. That is not
the same thing. Extracting parallelism from a sequantial loop does
not help 0.01 cents if the computer has 64000 processors and now
it uses 3 of them instead of 1.

!  In the cases where it is not
! numerical, syntax like the above is often useless as it is usually
! restricted so that you can only iterate over integer indices (cf
! Oberon-2).  Note some languages get this right and let you iterate
! over whatever you want e.g. Eiffel and C (given Sather's parentage I
! guess it does to) 

Sather has the same loop construct that Eiffel has, and it is written
on my list. The reason why I put the for-loop in the list is that it
is so common. Take a look at this piece of code from the Sather library:

      -- Clear out the array. 
      i:INT; until i=asize1 loop
	 j:INT; until j=asize2 loop
	    k:INT; until k=asize3 loop
	       [i,j,k]:=void;
	       k:=k+1;
	    end; -- loop
	    j:=j+1;
	 end; -- loop
	 i:=i+1; 
      end; -- loop

With the for-loop it becomes shorter and much easier to read. To see
what I mean, note that at the first sight, you look at the beginning 
of the rows and see 'for ...'. You immediately notice a keyword. In
contrast the above code has 'k:INT; ...' at the beginning. 

      -- Clear out the array. 
      for i:INT to asize1 loop
	 for j:INT to asize2 loop
	    for k:INT to asize3 loop
	       [i,j,k]:=void;
	    end; -- loop
	 end; -- loop
      end; -- loop

You wouldn't need the for-loop for iterating over the elements of a list
(for example), so it need not be overly general. The existing loop is
perfect for that. You could, however, have something like:

	for r=0.0 to 5.3 step 0.1 loop
		...
	end
--
...............................................................................
Ari Huttunen   			       Any similarity to other alien life forms
				          is purely coincidental.
					      <Alien 3 misquote>
Technical Details
Message-ID: <ARI.HUTTUNEN.92Sep4021832@supergirl.hut.fi>
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!news.funet.fi!funic!news.cs.hut.fi!news!Ari.Huttunen
References: <17opl4INN5gb@roundup.crhc.uiuc.edu> <17ov89INNdls@network.ucsd.edu> <ARI.HUTTUNEN.92Aug30182130@hulk.hut.fi> <BEVAN.92Aug30182505@tiger.cs.man.ac.uk>

Show Full Headers
Complete Article Headers
Newsgroups: comp.lang.misc
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!news.funet.fi!funic!news.cs.hut.fi!news!Ari.Huttunen
From: Ari.Huttunen@hut.fi (Ari Juhani Huttunen)
Subject: Sather loops (was Re: Scientists as ...
In-Reply-To: bevan@cs.man.ac.uk's message of 30 Aug 92 17:25:05 GMT
Message-ID: <ARI.HUTTUNEN.92Sep4021832@supergirl.hut.fi>
Sender: usenet@cs.hut.fi (Uutis Ankka)
Organization: Helsinki University of Technology, Finland
References: <17opl4INN5gb@roundup.crhc.uiuc.edu> <17ov89INNdls@network.ucsd.edu>
 <ARI.HUTTUNEN.92Aug30182130@hulk.hut.fi>
 <BEVAN.92Aug30182505@tiger.cs.man.ac.uk>
Date: Fri, 4 Sep 1992 00:18:32 GMT
Lines: 76