What's New in Research on S
What's New in Research on S
Version 4 of S
The S language, designed and re-designed in the statistics research
group at Bell Laboratories, is very widely used in Lucent
Technologies, at AT&T, in
universities, and in other research and industrial organizations.
It provides rapid high-level prototyping for computations with data,
featuring interaction, graphics, and universal, self-describing
objects.
Version 4 of S, a major revision of S designed by
John Chambers
to improve its usefulness
at every stage of the programming process, is now being beta-tested by
Lucent Technology and external beta sites.
The following are some of the features of Version 4 of S.
- Classes, generic functions and methods use an explicit representation
and implementation,
more controllable and more general than other OOP systems.
- Event management is provided, with S-level facilities for specifying
events and actions.
- S functions and methods can be ``compiled'', via semantic analysis.
- Libraries of system and user-written routines are
automatically dynamically linked to the S process.
- The connection class of objects unifies input/output operations
and extends them to non-file streams (e.g., pipes and fifo's).
- On-line documentation has been integrated with the language via
documentation objects.
- Internal modifications are being developed to support computations
with large objects.
- The underlying code has simpler
organization and installation, and uses C and Posix
standards to clarify portability.
An
overview paper
provides further details.
An S/Java Interface
John Chambers
and
Mark Hansen
are working on an interface between S and the Java language.
Java provides tools to program graphics and user interaction, and to
make the results available over the world-wide web.
Traditionally the Bell Labs Statistics
Research provides the results of our research as software in the S
language.
Recently, the web has been used to access the results of statistical
techniques, particularly graphics, applied to data analysis in Lucent
Technologies, for example, in displaying the results of analyzing
micro-electronic
device manufacturing data
.
To bring this technology together, and to provide a new interface to
data analysis over the web, we have designed an interface between
Version 4 of S and Java.
The interface generates objects in S and passes those objects to Java.
The Java classes have methods to evaluate objects of the corresponding
class.
The evaluation can produce dynamic graphics and user interaction using
the Java toolkits.
Examples of the interaction possible are given by the wafer plots and
by a dynamic example of the
triogram
models developed by Hansen and co-authors.
The interface takes advantage of parallel high-level facilities shared
by S and Java.
Communication over the interface is made simple by a general, open
format included in Version 4 of S, by which any S object can be
transmitted in a form suitable for reading by other languages (and by
Java in particular).