feat: 9.5.9
This commit is contained in:
parent
cb1753732b
commit
35f43a7909
1084 changed files with 558985 additions and 0 deletions
86
csug/preface.stex
Normal file
86
csug/preface.stex
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
% Copyright 2005-2017 Cisco Systems, Inc.
|
||||
%
|
||||
% Licensed under the Apache License, Version 2.0 (the "License");
|
||||
% you may not use this file except in compliance with the License.
|
||||
% You may obtain a copy of the License at
|
||||
%
|
||||
% http://www.apache.org/licenses/LICENSE-2.0
|
||||
%
|
||||
% Unless required by applicable law or agreed to in writing, software
|
||||
% distributed under the License is distributed on an "AS IS" BASIS,
|
||||
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
% See the License for the specific language governing permissions and
|
||||
% limitations under the License.
|
||||
\chapter{Preface}
|
||||
|
||||
{\ChezScheme} is both a general-purpose programming language and
|
||||
an implementation of that language, with supporting tools and
|
||||
documentation.
|
||||
As a superset of the language described in the Revised$^6$ Report
|
||||
on Scheme (R6RS), {\ChezScheme} supports all standard features of
|
||||
Scheme, including first-class procedures, proper treatment of tail
|
||||
calls, continuations, user-defined records, libraries, exceptions,
|
||||
and hygienic macro expansion.
|
||||
{\ChezScheme} supports numerous non-R6RS features.
|
||||
A few of these are local and top-level modules,
|
||||
local import, foreign datatypes and procedures, nonblocking I/O,
|
||||
an interactive top-level, compile-time values and properties,
|
||||
pretty-printing, and formatted output.
|
||||
|
||||
The implementation includes a compiler that generates native code
|
||||
for each processor upon which it runs along with a run-time system
|
||||
that provides automatic storage management, foreign-language
|
||||
interfaces, source-level debugging, profiling support, and an
|
||||
extensive run-time library.
|
||||
|
||||
The threaded versions of {\ChezScheme} support native threads, allowing
|
||||
Scheme programs to take advantage of multiprocessor or multiple-core
|
||||
systems.
|
||||
Nonthreaded versions are also available and are faster for
|
||||
single-threaded applications.
|
||||
Both 32-bit and 64-bit versions are available for some platforms.
|
||||
The 64-bit versions support larger heaps, while the 32-bit versions
|
||||
are faster for some applications.
|
||||
|
||||
{\ChezScheme}'s interactive programming system includes an expression
|
||||
editor that, like many shells, supports command-line editing, a history
|
||||
mechanism, and command completion.
|
||||
Unlike most shells that support command-line editing, the expression
|
||||
editor properly supports multiline expressions.
|
||||
|
||||
{\ChezScheme} is intended to be as reliable and efficient as possible,
|
||||
with reliability taking precedence over efficiency if necessary.
|
||||
Reliability means behaving as designed and documented.
|
||||
While a {\ChezScheme} program can always fail to work properly
|
||||
because of a bug in the program, it should never fail because of a
|
||||
bug in the {\ChezScheme} implementation.
|
||||
Efficiency means performing at a high level, consuming minimal CPU
|
||||
time and memory.
|
||||
Performance should be balanced across features, across run time and
|
||||
compile time, and across programs and data of different sizes.
|
||||
These principles guide {\ChezScheme} language and tool design as
|
||||
well as choice of implementation technique; for example, a language
|
||||
feature or debugging hook might not exist in {\ChezScheme} because
|
||||
its presence would reduce reliability, efficiency, or both.
|
||||
|
||||
The compiler has been rewritten for Version~9 and generates
|
||||
substantially faster code than the earlier compiler at the cost of
|
||||
greater compile time.
|
||||
This is the primary difference between Versions~8 and~9.
|
||||
|
||||
This book (CSUG) is a companion to \emph{The Scheme Programming
|
||||
Language, 4th Edition} (TSPL4).
|
||||
TSPL4 serves as an introduction to and reference for R6RS, while
|
||||
CSUG describes {\ChezScheme} features and tools that are not part
|
||||
of R6RS.
|
||||
For the reader's convenience, the summary of forms and index at the back
|
||||
of this book contain entries from both books, with each entry from TSPL4
|
||||
marked with a ``t'' in front of its page number.
|
||||
In the online version, the page numbers given in the summary of forms and
|
||||
index double as direct links into one of the documents or the other.
|
||||
|
||||
Additional documentation for {\ChezScheme} includes release notes, a
|
||||
manual page, and a number of published papers and articles that describe
|
||||
various aspects of the system's design and implementation.
|
||||
|
||||
Thank you for using {\ChezScheme}.
|
||||
Reference in a new issue