Intensional Logic and possible-world semantics were developed by logicians and philosophers (Carnap, Montague, Scott, and others) to help solve some fundamental semantic puzzles of natural languages.
Intensional programming, on the other hand, is an attempt to apply these insights to more immediately practical problems of specifying and organizing computation. Intensional Programming systems allow programmers to directly manipulate intensions - values which vary over a space of indices (possible worlds). The Intensional Programming approach has been used successfully for realtime/reactive programming (SIGNAL, LUSTRE) and distributed scientific computation (GLU).
In this talk we describe recent work on applying the Intensional Programming approach to the problem of managing multiple versions and variants of software systems and of hypertext documents (webware). The possible worlds are points in an algebraically defined version space. They are partially ordered by a refinement/inheritance ordering, which allows sharing between different versions. Context switching operators allow controlled links between different versions of the software or document.