diff --git a/collects/algol60/algol60.scrbl b/collects/algol60/algol60.scrbl new file mode 100644 index 0000000000..01f7cfee91 --- /dev/null +++ b/collects/algol60/algol60.scrbl @@ -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. + diff --git a/collects/algol60/doc.txt b/collects/algol60/doc.txt deleted file mode 100644 index 27eca42387..0000000000 --- a/collects/algol60/doc.txt +++ /dev/null @@ -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. - diff --git a/collects/algol60/info.ss b/collects/algol60/info.ss index e85f80ada3..e8d888b584 100644 --- a/collects/algol60/info.ss +++ b/collects/algol60/info.ss @@ -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)))