ALGOL 68RS: Difference between revisions

From Rosetta Code
Content added Content deleted
m (short ALGOL 68RS description.)
 
(→‎Example: fix typos)
Line 46: Line 46:
</pre>
</pre>


An entire program can thus be '''composed''' of pieces of other modules, particularly if a ''hole'' contains a sub-'hole'' (eg displaypiece), then this le can hoin-turn be pulled into the composition.
An entire program can thus be '''composed''' of pieces of other modules, particularly if a ''hole'' contains a sub-''hole'' (eg displaypiece), then this ''hole'' can in-turn be pulled into the composition.


Example:
Example:
Line 54: Line 54:
FINISH
FINISH
</pre>
</pre>
FINISH

Revision as of 23:27, 22 November 2008

This page uses content from Wikipedia. The original article was at ALGOL 68RS. The list of authors can be seen in the page history. As with Rosetta Code, the text of Wikipedia is available under the GNU FDL. (See links for details on variance)

ALGOL 68RS from RSRE was a portable compiler system written in ALGOL 68RS (bootstrapped from ALGOL 68R), and implemented on a variety of systems including the ICL 2900/Series 39, Multics and VAX/VMS.

The language was based on the Revised Report, but with similar subset restrictions to ALGOL 68R. This compiler survives i/n the form of an Algol68-to-C compiler aka ELLA ALGOL 68.

Modules

ALGOL 68RS allow the programmer the ability of creating modules, these can be used by other programs and also allowed separate compilation.

Syntax:

PROGRAM [ (holelist ) ] progtitle
[ CONTEXT holename IN progtitle ]
[ USE uselist ]
enclosed clause
FINISH
DECS dectitle
CONTEXT holename IN progtitle
[ USE uselist ]
decsbody
KEEP keeplist
FINISH

Example

PROGRAM (thinking, displaying) chess
BEGIN
  MODE PIECE = STRUCT(...);
  [12]PIECE pieces;
  ...
  HERE thinking(PIECE, pieces, BOARD, game);
  ...
  HERE displaying(PIECE, pieces, BOARD, game);
  ...
END
PROGRAM thinkmodule
CONTEXT thinking IN chess
...
FINISH

An entire program can thus be composed of pieces of other modules, particularly if a hole contains a sub-hole (eg displaypiece), then this hole can in-turn be pulled into the composition.

Example:

PROGRAM abc
COMPOSE game(thinking=thinkmodule, displaying=displayingmodule(piece=displaypiece))
FINISH