🚀 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 Tue, 13 Feb 1990 00:10
Re: STRAND88
#2823
Author: dan Daniel Cohen
Date: Tue, 13 Feb 1990 00:10
85 lines
4180 bytes
Nick Rothwell writes:
	Well, I use the term dataflow language to refer to those simple-minded
	antiquated languages which only have integers and single-assignment. I
	think any "real" modern language has a user-extensible type system and
	a fair degree of polymorphism such that you can do "dataflow" on
	objects of any type; then, you start getting into problems with
	structured objects going out of scope, and garbage collection and so
	on.

STRAND88 does have a user-extensible type system, and
is polymorphic, as discussed below: 

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

	Good. Is there a formal type semantics?

You lost me here! Are you asking for a formal semantics
for Strand ( denotational semantics or VDM etc. ) ?

	>	Does it address the problems associated with programming in the
	>	large (modules, interfaces, abstraction)? - or is that outside its
	>	scope?
	>
	>There is a module system which is smart enough
	>to load modules automatically when they are required.
	>...
	>We liked Strand because it seemed like a good language
	>to build up on - object-oriented systems; rule-based
	>systems etc. but most of this work is still at a conceptual
	>level ( except objects ). There's also been a lot of work
	>done on programming methodologies which should eventually
	>result in some dataflow and/or object-oriented CASE tools.

	That's not exactly what I meant; for large systems you want to be able
	to construct interface specifications containing abstract types, and
	have a way of matching these to actual implementations. For a proper
	object-oriented system, you need (multiple) inheritance, and from here
	the type semantics starts to get a little hairy. The problem with
	Prolog and the like is the lack of scoping of declarations, which is a
	serious drawback IMHO.

Hmmm. I think you do need a copy of the Foster and Taylor book
to answer your questions 'cos I'm still not sure I understand
them! As for inheritance; I should distinguish between raw
Strand ( at which level Strand processes can be construed as
proto-objects ) and something built in Strand ( StOOPS ?!? ).
In the former case, there is no inheritance: objects can feed
any other arbitrary object with their leftovers. In the latter
case, any inheritance or delegation scheme you care to think up
can probably be coded in Strand very easily since the language
is designed for manipulating streams. For some reading on the
low-level interpretation of Strand processes as objects, try
"Objects - A Fresh Look" by Xerox PARC's Ken Kahn
( ECOOP 89 proceedings ); you might also like to read:
"Money as a Concurrent Logic Program" by Ken Kahn and
William Kornfeld ( NACLP 89 proceedings ).  


	On a more general note: how much take-up do you expect there to be for
	a new language in a world dominated by Fortrash, C, and to some extent
	Occam? Just curious how much of a commercial risk this is, since I'm
	mostly involved in the academic side of language research.


That's partly up to people like you! The language model is
interesting enough to get lots of academics involved, but
it's not just interesting - there are significant benefits
to a programmer in using Strand. Fortran and C will,
of course, continue to have the lion's share of scientific
and general-purpose computing; but they are not well suited
to parallel processing - Strand is. Research at
Argonne National Laboratory makes it clear that bilingual
( or multilingual ) programming will be of great importance
in the application of parallel systems.

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
Re: STRAND88
#2826
Author: Nick Rothwell
Date: Mon, 19 Feb 1990 12:43
59 lines
2930 bytes
In article <9002130010.AA02911@>, dan% (Daniel Cohen) writes:
>STRAND88 does have a user-extensible type system, and
>is polymorphic, as discussed below: 

No, not by my definitions (and based on a recent Strand-88
presentation I went to). Strand-88 has dynamic point-of-call
typechecking, and no type system.

>You lost me here! Are you asking for a formal semantics
>for Strand ( denotational semantics or VDM etc. ) ?

I wondered if there was any kind of semantics describing the type
system, but since Strand isn't typed, this is mute. I was also
wondering if there was any kind of formal definition of the language;
how do you define the meaning of things like

	Foo :- tt_input(Direction), my_computation()@Direction

for instance? (syntax is approximate.)

In the latter
>case, any inheritance or delegation scheme you care to think up
>can probably be coded in Strand very easily since the language
>is designed for manipulating streams.

I was thinking of inheritance in the Eiffel sense, with static
analysis of class matching and consistency. I wouldn't like to have to
design an inheritance heirarchy without the help of a reliable, sound,
static type system for it.

>That's partly up to people like you! The language model is
>interesting enough to get lots of academics involved,

Interesting, yes, but nothing new; I was hacking together a Concurrent
Prolog compiler back in '83, and Strand isn't much more than
Concurrent Prolog. However, if it does everything that is claimed
(including process and data migration, parallel garbage collection,
and so on), then I'm impressed (especially if you can get decent
performance out of it, given the sort of runtime overheads that
interpreting a Strand program entail). But, I view the lack of a type
system and decent static modularisation facilities as rather a
drawback.

>but Fortran and C will,
>of course, continue to have the lion's share of scientific
>and general-purpose computing; but they are not well suited
>to parallel processing

Fortran and C aren't well suited to any kind of processing any in this
day and age. But that's just my opinion.

>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