2 research outputs found

    An Experiment with a User Manual of a Programming Language Based on a Denotational Semantics

    Full text link
    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

    Full text link
    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]
    corecore