scribbled a60

svn: r8312
This commit is contained in:
Matthew Flatt 2008-01-12 23:36:27 +00:00
parent 1bb2aad735
commit 21d43e4635
3 changed files with 74 additions and 62 deletions

View File

@ -0,0 +1,71 @@
#lang scribble/doc
@(require scribble/manual
(for-label algol60/algol60))
@title{Algol 60}
@section{Implementation}
The ``Algol 60'' language for DrScheme implements the language defined
by the ``Revised Report on the Algorithmic Language Algol 60,'' edited
by Peter Naur.
@section{Including Algol 60 Programs}
Although Algol 60 is mainly provided as a DrScheme language,
@scheme[include-algol] supports limited use of Algol 60 programs in
larger programs.
@defmodule[algol60/algol60]
@defform[(include-algol path-string)]{
Includes the Algol 60 program indicated by @scheme[path-string] as an
expression in a Scheme program. The included Algol 60 program is
closed (i.e., it doesn't see any bindings in the included context),
and the result is always @|void-const|.}
@section{Language}
The DrScheme and @scheme[include-algol] implementation departs from
the Algol 60 specification in the following minor ways:
@(itemize (item "Strings are not permitted to contain nested quotes.")
(item "Identifiers cannot contain whitespace.")
(item "Argument separators are constrained to be identifiers (i.e., they
cannot be keywords, and they cannot consist of multiple
identifiers separated by whitespace.)")
(item "Numbers containing exponents (using the ``10'' subscript) are not
supported."))
Identifiers and keywords are case-sensitive. The boldface/underlined
keywords of the report are represented by the obvious character
sequence, as are most operators. A few operators do not fit into
ASCII, and they are mapped as follows:
@(verbatim
" times *
quotient div
exponential ^
less or equal <=
greater or equal >=
not equal !=
equivalence ==
implication =>
and &
or |
negation !")
In addition to the standard functions, the following output functions
are supported:
@(verbatim
" prints(E) prints the string E
printsln(E) prints the string E followed by a newline
printn(E) prints the number E
printnln(E) prints the number E followed by a newline")
A prompt in DrScheme's Interactions window accepts whole programs only
for the Algol 60 language.

View File

@ -1,61 +0,0 @@
_Algol 60_
The "Algol 60" language for DrScheme implements the language defined
by the "Revised Report on the Algorithmic Language Algol 60", edited
by Peter Naur.
The "algol60.ss" library provides an `include-algol' form for including
an Algol 60 program as an expression in a Scheme program:
> (include-algol file-path-string)
The included Algol 60 program is closed (i.e., it doesn't see any
bindings in the included context), and the result is always void.
Language
--------
The DrScheme/`include-algol' implementation departs from the
specification in the following minor ways:
* strings are not permitted to contain nested quotes;
* identifiers cannot contain whitespace;
* argument separators are constrained to be identifiers (i.e., they
cannot be keywords, and they cannot consistent of multiple
identifiers separated by whitespace); and
* numbers containing exponents (using the "10" subscript) are not
supported.
Identifiers and keywords are case-sensitive. The boldface/underlined
keywords of the report are represented by the obvious character
sequence, as are most operators. A few operators do not fit into
ASCII, and they are mapped as follows:
times *
quotient div
exponential ^
less or equal <=
greater or equal >=
not equal !=
equivalence ==
implication =>
and &
or |
negation !
In addition to the standard functions, the following output functions
are supported:
prints(E) prints the string E
printsln(E) prints the string E followed by a newline
printn(E) prints the number E
printnln(E) prints the number E followed by a newline
A prompt in DrScheme's Interactions window accepts whole programs only
for the Algol 60 language.

View File

@ -2,5 +2,7 @@
(define name "Algol 60")
(define doc.txt "doc.txt")
(define tools '(("tool.ss")))
(define tool-names '("Algol 60")))
(define tool-names '("Algol 60"))
(define scribblings '(("algol60.scrbl")))
(define doc-categories '(other)))