[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Proposal for a module system





Recently I wrote up some ideas aimed at a module system for Scheme.
The paper containing this proposal can be found in either the new or
the old Scheme repository under doc/blume-mod.ps.Z:

	ftp://cs.indiana.edu/pub/scheme-repository/doc/blume-mod.ps.Z
	ftp://nexus.yorku.ca/pub/scheme/doc/blume-mod.ps.Z

The title of the paper is:

	``Separate Compilation for Scheme''

I would like to discuss the ideas outlined in the paper with everybody
who might be interested.

Here is the abstract:

----
This paper presents the outline of a module system for the Scheme
programming language in order to solve several problems commonly
encountered with contemporary implementations.  These problems include
the lack of support for separate compilation and cross-module type
checking as well as the necessity for non-standard language extensions
to aid certain compiler optimizations like open compilation and
procedure in-lining.

Even though Scheme needs to be augmented with concepts like modules,
types, and signatures, this will not change the spirit of the language
in a major way.  Instead it turns out that other recent additions to
the language interact smoothly with the proposed module system.

It will be emphasized that it is necessary to make a clean distinction
between syntactic definitions and value definition - reflected by a
textual separation of modules and their signatures.
----

Note: There is *no* implementation, yet.  I would like to craft one
for VSCM, but at the moment I cannot spare that much time for
something, which isn't exactly my mainstream research here at
Princeton anymore.  Furthermore, I intensionally did not go into too
much detail with the type system, because I feel that this particular
area would have to be coordinated with existing ``soft type''
inference mechanisms.  This is one more reason why I think feedback is
necessary.

I hope I'll here from you...
Thanks
-Matthias

PS: Don't feel repelled by the word ``type'' -- it's not as bad as you
may think it is... :-)