scribbled a60
svn: r8312
This commit is contained in:
parent
1bb2aad735
commit
21d43e4635
71
collects/algol60/algol60.scrbl
Normal file
71
collects/algol60/algol60.scrbl
Normal 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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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)))
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user