# SUMMARY: Reduced Instruction Set Languages

## masticol@cadenza.rutgers.edu (Steve Masticola)Thu, 21 May 1992 01:48:47 GMT

From comp.compilers

Related articles
Re: Reduced Instruction Set Languages masticol@cs.rutgers.edu (1992-05-11)
SUMMARY: Reduced Instruction Set Languages masticol@cadenza.rutgers.edu (1992-05-21)
| List of all articles for this month |

 Newsgroups: comp.compilers From: masticol@cadenza.rutgers.edu (Steve Masticola) Keywords: design, summary Organization: Rutgers Univ., New Brunswick, N.J. References: 92-05-068 Date: Thu, 21 May 1992 01:48:47 GMT

A few weeks ago, I posted the following article to comp.compilers
(with some editing by John R. Levine; thanks, it was an improvement!):

> Does anyone out there have a reference to reduced instruction set
> languages, i.e. HLLs with a simplified set of language primitives. What
> I'd ideally like to learn about are languages supporting concurrency, with
> a few primitives that are as orthogonal to each other as possible.
> Modula-3, with its 50-page language reference manual, would be an example,
> but ideally I'd like a language with a definition based on a formal
> semantics.

> I'd heard the term, "reduced instruction set language" before, but
> don't remember where.

> - Steve (masticol@cs.rutgers.edu).

Scheme 4
occam/occam2 4
CSP 1
Eiffel 1

Personally, I don't think Eiffel qualifies as a RISL; it's far from a
simple language, and I don't know of a formal semantic definition for
it. While I haven't read Meyer's "Eiffel: the language", 50 pages of
syntax and semantics imply either a very complicated language or the
lack of a formal specification.

For those interested, I have the following references.

\bibitem[CR91]{cr:91}Clinger, W. and Rees, J., ed. Revised Report on
the Algorithmic Language Scheme.'' {\em LISP Pointers}, {\bf 4:3},
July 1, 1991.

\bibitem[Inmo84]{inmo84}Inmos, Ltd. {\em Occam programming manual.}
Prentice/Hall International, Englewood Cliffs, N.J., 1984. ISBN
0-1362-9296-8.

\bibitem[Hoar85]{hoar85}Hoare, C. A. R. {\em Communicating sequential
processes.} Prentice/Hall International, Englewood Cliffs, N.J., 1985.
ISBN 0-1315-3271-5.

The replies below contain many others. Thanks to all who replied!

- Steve Masticola (masticol@cs.rutgers.edu).

-=-=-

scheme has a very small definition, including a formal semantics.
try ftp to altdorf.ai.mit.edu. There is a descendent called Mul-T
which is a high performance multi-processing version of scheme.

-=-=-

I think Scheme would fit the bill perfectly. It's a small, simple language,
and the Scheme standard includes denotational semantics for the language.

The Revised^4 Report on the Algorithmic Language Scheme (R4RS) is available
from the Scheme Repository (nexus.yorku.ca), and there's also an IEEE
standard that you can purchase.

Joe

-=-=-

How aboud Scheme? The Draft Standard for the Scheme Programming
Language (P1178/D4) is 51 pages including appendices and index and
forward. Here is a quote from the forward:

"Programming languages should be designed not by piling feature on
top of feature, but by removing the weaknesses and restrictions that
make additional features appear necessary. Scheme demonstrates that
a very small number of rules for forming expressions, with few
restrictions on how they are composed, suffice to form a practical
and effecient programming language that is flexible enough to
support most of the major programming paradigms in use today."

Currently, concurrency is not part of the Scheme standard (except for
promises), although various groups are experimenting with different
constructs. One of the appendices is a "formal denotational semantics
for the primitive expressions of Scheme and selected build-in
procedures."

As an alternative, Linda seeks to be a concurrent (coordination)
extension for any language.

Samuel Paik
d65y@vax5.cit.cornell.edu <-- this is my "long term" address,
the account I am writing from goes
away in August
-=-=-

How about scheme? The definitions I've seen (i.e. r4rs) come with
(unofficial) formal semantics.

-=-=-

Try to look to OCCAM:
- it is concurrent;
- is is restricted by definition (at least by name :-) )

Regards,
Algirdas Pakstas

-=-=-

try:
the original version of occam
(manuals etc. from prentice hall)
csp (communicating sequential processes)
(Hoare: paper in CACM about 10 years back)

both are simple parallel languages with formal definitions available:
occam: e.g. Oxford Programming Research Group, A.W.Roscoe
csp: the original paper? Hoare?

if you want non-parallel languages, try Dijkstra's work, or Gries', etc.

-=-=-

Reply-To: mauney@csc.ncsu.edu (Jon Mauney) [posted to comp.compilers]

Try occam, designed by D. May. It's about as stripped down as you can
get, and it is designed for concurrency. A report was printed in SIGPLAN
Notices about 10 years ago, and there is at least one book.
--
Jon Mauney, parsing partisan
Mauney Computer Consulting
mauney@csc.ncsu.edu (919) 828-8053

-=-=-

You might try occam2. It is very reduced and corresponds roughly
to Tony Hoare's CSP semantics.

-=-=-

I've heard the term 'RISC language' used to refer to the
object-oriented language 'Eiffel'.

It is described in the book 'Eiffel: The language' by Bertrand Meyer

Although the book itself is 500pp long, it describes philosophy and
methodology as well as syntax and semantics.

The syntax productions and semantic definitions wouldn't fill 50 pages
on their own and are well signposted in the book's text.

Definitely worth a look if nothing else.

Neil Wilson (Lucan)
csf004@cch.cov.ac.uk
--

Post a followup to this message