Lecture 4 Notes

We call this an abstraction boundary if a program

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: e of that type. We call this an abstraction boundary. If a program respects this boundary, we can easily change the implementation of the data type. If, however, some piece of code breaks the abstraction by relying on the details of the implementation, then we can no longer change the implementation. 4. Last, we need a way to combine these units flexibly, so that a single unit may be reused in different contexts. 2 Modules are connected using a module interconnection language. This language is largely independent of the base language, and is our primary focus in this chapter. A program in the module interconnection language consists of a set of module definitions. Each definition binds a name to a module value. A module value is either a set of bindings, much like an environment, or a module procedure that takes a module value and produces another module value. Each module will have a module type. A module type can be an interface, which is much like a type environment, or a procedure module type, which are analogous to ordinary procedure types, except that they describe the argument and result...
View Full Document

Ask a homework question - tutors are online