Lambda the Ultimate

inactiveTopic Introduction to module systems?
started 9/26/2002; 9:28:13 AM - last post 9/30/2002; 2:51:37 AM
Ehud Lamm - Introduction to module systems?  blueArrow
9/26/2002; 9:28:13 AM (reads: 261, responses: 4)
I am looking for a simple introduction to module systems. Something appropriate for undergrads.

Should exaplain what a module is, perhaps a bit of history, and give some examples.

And suggestions?

jon fernquest - Re: Introduction to module systems?  blueArrow
9/29/2002; 3:35:48 AM (reads: 258, responses: 1)
IMHO abstract discussions of modules should be motivated by the practical problems they help overcome. The points of interest for me:

1. Separate compilation and linking was the original purpose of modules according to Cardelli in "Program fragments, linking, and modularization." DLL hell on Windows has been overcome by .NET versioning. .NET assemblies also allow a modular multi-language interface. F#, C#, and SML.NET inter-operation are all thoroughly documented with examples, but mutual recursiveness between modules, like PLT units, but unlike ML modules, is a necessity for real systems code, so is what is presently available on .NET really that useful?

2. Denotational semantics has always held the promise of declarative language definitions, but it suffers from lack of modularity, i.e. if you change one little thing, you have top make extensive changes elsewhere. Only modular monadic semantics overcame this problem.

3. Attribute grammars are an elegant way to present language semantics (like the Aho-Ullman-Sethi compiler book (*) does) but they have not been widely adopted because they suffer from lack of modularity. Intentional Programming (or at least the research funded by it) addresses this problem.

* Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 1986. (aka "The Dragon Book")

...and I haven't seen anything online that is easy enough for undergraduates except maybe Cardelli's paper but I found a great bibliography that I've begun to look through:

Ehud Lamm - Re: Introduction to module systems?  blueArrow
9/29/2002; 3:47:27 AM (reads: 290, responses: 0)
I was mainly interested in what you listed under (1)

Noel Welsh - Re: Introduction to module systems?  blueArrow
9/30/2002; 1:10:32 AM (reads: 275, responses: 1)
Lots of links follow from

The "23 Things I Know about Modules" is a broad survey that touches on most of the important issues (and not just from Scheme's POV).

Ehud Lamm - Re: Introduction to module systems?  blueArrow
9/30/2002; 2:51:37 AM (reads: 299, responses: 0)
I gave this link a couple of days ago. In fact, I even read this paper. I didn't really like it. But beacuse of your recommendation, I checked it again. Section 1 is indeed a nice description of the uses of modules.