🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.sys.transputer
2 messages
2 total messages Started by dan Daniel Cohen Sat, 03 Feb 1990 03:00
STRAND88
#2773
Author: dan Daniel Cohen
Date: Sat, 03 Feb 1990 03:00
65 lines
2959 bytes
uunet!wuibc3!gerald writes:

	To: dan@ssti
	Subject: What is STRAND ?

	I have been seeing the name STRAND88 going by for some time
	on the Transputer news group, but I have never seen an
	explanation of what it is.

	Could you give me a short description of STRAND...

Sounds like we're not getting our marketing done!

Strand is a parallel programming language with research roots
in the PARLOG group at Imperial College, the Concurrent Prolog group
at the Weitzman Institute, and the ICOT project. Although its' origins
are in logic programming, it's a dataflow language as much as an LP
language ( although some people say it's an OOP language! )

STRAND88 is an implementation of the Strand language produced by
Strand Software Technologies in conjunction with Ian Foster and
Steve Taylor. It's available on a number of systems - parallel
and sequential - including transputers ( mostly plug-in boards ).

Strand is good for parallel programming because of its' computational
model; a program runs by the repeated reduction of processes - when
one process is reduced others may be spawned - until the processes
are defined by built-in kernels. Processes communicate via shared
variables, which we implement using message-passing when
the processes run on different processors. The point is that the code
to achieve inter-process communications is the same, regardless of
whether the processes are running on the same processor or on
different processors ( in fact, the programmer does nothing;
both processes refer to the variable and the Strand system handles
the communication ). That makes it good for prototyping since the
process-processor allocation is not set in stone and can be changed
for experimentation.

There's a foreign function interface ( C and Fortran at the moment )
so you don't have to do everything in Strand - some use Strand just
for the top level: starting processes and handling the communication
between them, while the 'real work' is done by conventional code.

If anyone wants more information, feel free to contact me ( if you're
in N. America ) or the UK office if you're elsewhere. Ignore the
return address in the header - I have to fix sendmail.cf!

Otherwise, we'll be at NATUG 3 in Santa Clara in April.

Daniel Cohen
Strand Software Technologies Inc.
15220 NW Greenbrier Parkway, Suite 350
Beaverton, OR 97006, USA
Tel: +1 (503) 690 9830

e-mail: dan%ssti@uunet.uu.net  or  uunet!ssti!dan

UK office:
Strand Software Technologies
Greycaine Road
Watford, Herts. WD2 4JP
Tel: +44 923 247707

e-mail: STRAND88@ail.co.uk
Re: STRAND88
#2776
Author: Nick Rothwell
Date: Mon, 05 Feb 1990 13:40
46 lines
2650 bytes
In article <9002030300.AA00916@>, dan% (Daniel Cohen) writes:
>Strand is a parallel programming language with research roots
>in the PARLOG group at Imperial College, the Concurrent Prolog group
>at the Weitzman Institute, and the ICOT project. Although its' origins
>are in logic programming, it's a dataflow language as much as an LP
>language ( although some people say it's an OOP language! )

Sounds just like Shapiro's Concurrent Prolog to me. Concurrent Prolog
is quite nice (as long as you don't want to backtrack, since it
doesn't), but it has some flaws, such as the fact that the guards are
supposed to execute (and unify) without affecting the rest of the
system, and I could never figure out a way of ensuring this without a
huge overhead (Shapiro's papers seem to punt on this one); so, my
compiler didn't bother. Does Strand deal with this?

If Strand is aimed at a local-memory model of computation, how is
store management handled? (not to mention chains of unification and
all this nasty stuff.)

What sort of type system does the language have? Polymorphic? Dynamic?

Does it address the problems associated with programming in the
large (modules, interfaces, abstraction)? - or is that outside its
scope?

>Strand is good for parallel programming because of its' computational
>model; a program runs by the repeated reduction of processes - when
>one process is reduced others may be spawned - until the processes
>are defined by built-in kernels.

This sounds like parallel combinator reduction, which is fine as an
intermediate form but I don't know if I'd like to program that way.

Could you post some examples of Strand programs? (Do you have a
mailing list, electronic or otherwise?) It's interesting to hear what
it can do, but that's not much use without some actual examples of
code to illustrate some of the above points.

>Daniel Cohen

		Nick.
--
Nick Rothwell,	Laboratory for Foundations of Computer Science, Edinburgh.
		nick@lfcs.ed.ac.uk    <Atlantic Ocean>!mcvax!ukc!lfcs!nick
~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~
		       ...als das Kind, Kind war...
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads