  The book is devoted to two research areas: (1) Designing programming
languages along with their denotational models. A denotational model of a
language consists of two many-sorted algebras - an algebra of syntax and an
algebra of denotations - and a (unique) homomorphism from syntax to denotations
called the semantics of the language. (2) Designing sound program-constructors
for languages with denotational models. In our approach programs syntactically
contain their total-correctness specifications. A program is said to be correct
if it is correct wrt its specification. A program-constructor is sound if given
correct component-programs yields a correct resulting program. Both methods are
illustrated on an example-language Lingua.
