2 research outputs found
An Experiment with a User Manual of a Programming Language Based on a Denotational Semantics
Denotational models should provide an opportunity for the revision of current
practices seen in the manuals of programming languages. New styles should on
one hand base on denotational models but on the other - do not assume that
today readers are acquainted in this field. A manual should, therefore, provide
some basic knowledge and notation needed to understand the definition of a
programming language written in a new style. At the same time - I strongly
believe that - it should be written for professional programmers rather than
for amateurs. The role of a manual is not to teach the skills of programming.
Such textbooks are, of course, necessary, but they should tell the readers what
the programming is about rather than the technicalities of a concrete language.
The paper contains an example of a manual for a virtual programming language
Lingua developed in our project.Comment: 47 pages. This paper is based on my preprinted book 'A Denotational
Engineering of Programming Languages' (available on arXiv:1905.01473), which
describes a virtual programming language whose manual is discussed in the
paper. To make the paper possibly self-contained large parts of the book are
quoted in the paper. arXiv admin note: substantial text overlap with
arXiv:1905.0146
A Denotational Engineering of Programming Languages
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.Comment: A preprint of a book; 340 pages. All comments will be highly
appreciated. You may write to me on [email protected]