-
Notifications
You must be signed in to change notification settings - Fork 1
/
first.tex
140 lines (114 loc) · 5 KB
/
first.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
% First page
\thispagestyle{empty}
\topnewpage[{
\begin{center} {\huge\bf
Pico Revised{\Huge$^{\mathbf{7}}$} Report on the Algorithmic Language Scheme}
\vskip 1ex
$$
\begin{tabular}{l@{\extracolsep{.5in}}l@{\extracolsep{.5in}}l}
\multicolumn{3}{c}{J\authorsc{OSHUA} C\authorsc{OGLIATI} (\textit{Editor of Pico Subset})}\\
\\
\multicolumn{3}{c}{A\authorsc{LEX} S\authorsc{HINN},
J\authorsc{OHN} C\authorsc{OWAN}, \authorsc{AND}
A\authorsc{RTHUR} A. G\authorsc{LECKLER} (\textit{Editors of \rsevenrs})} \\
\\
S\authorsc{TEVEN} G\authorsc{ANZ} &
A\authorsc{LEXEY} R\authorsc{ADUL} &
O\authorsc{LIN} S\authorsc{HIVERS} \\
A\authorsc{ARON} W. H\authorsc{SU} &
J\authorsc{EFFREY} T. R\authorsc{EAD} &
A\authorsc{LARIC} S\authorsc{NELL}-P\authorsc{YM} \\
B\authorsc{RADLEY} L\authorsc{UCIER} &
D\authorsc{AVID} R\authorsc{USH} &
G\authorsc{ERALD} J. S\authorsc{USSMAN} \\
E\authorsc{MMANUEL} M\authorsc{EDERNACH} &
B\authorsc{ENJAMIN} L. R\authorsc{USSEL} &
\\
\\
\multicolumn{3}{c}{R\authorsc{ICHARD} K\authorsc{ELSEY},
W\authorsc{ILLIAM} C\authorsc{LINGER},
\authorsc{AND} J\authorsc{ONATHAN} R\authorsc{EES}} \\
\multicolumn{3}{c}{\textit{(Editors, Revised$^{\mathit{5}}$ Report on the Algorithmic Language Scheme)}} \\
\\
\multicolumn{3}{c}{M\authorsc{ICHAEL} S\authorsc{PERBER},
R. K\authorsc{ENT} D\authorsc{YBVIG}, M\authorsc{ATTHEW} F\authorsc{LATT},
\authorsc{AND} A\authorsc{NTON} \authorsc{VAN} S\authorsc{TRAATEN}} \\
\multicolumn{3}{c}{\textit{(Editors, Revised$^{\mathit{6}}$ Report on the Algorithmic Language Scheme)}} \\
\end{tabular}
$$
\vskip 2ex
{\it Dedicated to the memory of John McCarthy and Daniel Weinreb}
\vskip 2ex
{\large \bf \today} % *** DRAFT ***
%\vskip 2ex
\end{center}
}]
%\clearpage
\vskip 2ex
\chapter*{Summary}
The report gives a defining description of the pico subset of the programming language
Scheme. Scheme is a statically scoped and properly tail-recursive
dialect of the Lisp programming language~\cite{McCarthy} invented by Guy Lewis
Steele~Jr.\ and Gerald Jay~Sussman. It was designed to have
exceptionally clear and simple semantics and few different ways to
form expressions. Pico Scheme is a purely functional subset of Scheme.
\vest The introduction offers a brief history of the language and of
the report.
\vest The first three chapters present the fundamental ideas of the
language and describe the notational conventions used for describing the
language and for writing programs in the language.
\vest Chapters~\ref{expressionchapter} and~\ref{programchapter} describe
the syntax and semantics of expressions, definitions, and programs.
\vest Chapter~\ref{builtinchapter} describes Scheme's built-in
procedures, which include all of the language's data manipulation primitives.
\vest Chapter~\ref{formalchapter} provides a formal syntax for Scheme
written in extended BNF, along with a formal denotational semantics.
Examples of the use of the language follow the formal syntax and
semantics.
\vest The report concludes with references and an
index.
\begin{note}
The editors of the \rsevenrs, \rfivers\ and \rsixrs\ reports are
listed as authors of this report in recognition of the substantial
portions of this report that are copied directly from \rfivers, \rsixrs\ and \rsevenrs.
There is no intended implication that those editors, individually or
collectively, support or do not support this report.
\end{note}
\subsection*{Background}
\vest The first description of Scheme was written in
1975~\cite{Scheme75}. A revised report~\cite{Scheme78}
appeared in 1978, which described the evolution
of the language as its MIT implementation was upgraded to support an
innovative compiler~\cite{Rabbit}. An introductory
computer science textbook using Scheme was published in
1984~\cite{SICP}.
\vest Fifteen representatives of the major implementations of Scheme
met in October 1984.
Their report, the RRRS~\cite{RRRS},
was published at MIT and Indiana University in the summer of 1985.
Further revision took place in the spring of 1986, resulting in the
\rthreers~\cite{R3RS}.
Work in the spring of 1988 resulted in \rfourrs~\cite{R4RS},
which became the basis for the
IEEE Standard for the Scheme Programming Language in 1991~\cite{IEEEScheme}.
In 1998, several additions to the IEEE standard, including high-level
hygienic macros, multiple return values, and {\cf eval}, were finalized
as the \rfivers~\cite{R5RS}.
In the fall of 2006, work began on a more ambitious standard.
The resulting standard, the
\rsixrs, was completed in August 2007~\cite{R6RS}.
In 2009 the Scheme Steering Committee decided to divide the
standard into two separate but compatible languages --- a ``small''
language and a ``large'' language.
The ``small'' language of that effort resulted in \rsevenrs~\cite{R7RS}.
The development of Pico Scheme took place in a git repository\cite{picogit} and is not an official Scheme Report.
\vfill
\eject
\chapter*{Contents}
\addvspace{3.5pt} % don't shrink this gap
\renewcommand{\tocshrink}{-3.5pt} % value determined experimentally
{\footnotesize
\tableofcontents
}
%\vfill
%\eject