Andrzej Blikle

Andrzej Blikle
Polish Academy of Sciences | PAN · Institute of Computer Science

Professor

About

87
Publications
2,113
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
464
Citations
Introduction
My research activity concentrates on Denotational Engineering – a project started in 2018. This is a follower of MetaSoft project developed in the years 1970–90. My research concentrates on: (1) Denotational models of programming languages developed from denotations to syntax. (2) The development of correct programs rather than proving programs correct. Mathematical techniques used: (1) Denotational semantics based on set theory. (2) Many-sorted algebras. (3) Three-valued predicate calculus to describe error-elaboration mechanisms. (4) Hoare’s logic with clean termination (no error message). I am currently working on the development of a denotational model, and of program-construction rules, for a virtual programming language Lingua. All interested in the subject are invited to join.
Additional affiliations
January 1971 - December 2015
Polish Academy of Sciences
Position
  • Professor Emeritus

Publications

Publications (87)
Article
Full-text available
It is known that parametric measures such as the Journal Index Factor or Hirsh Index provoke negative consequences in academic communities, significantly lowering job satisfaction and quality. A "game with algorithms" replaces researchers and academic teacher ethos, frequently leading to frustration and scientific misconduct. This situation is anal...
Technical Report
Full-text available
Raport dla biznesu na podstawie alertów zespołu prof J Hausnera
Article
Full-text available
The paper is devoted to showing how to systematically design a programming language in “reverse order”, i.e., from denotations to syntax. This construction is developed in an algebraic framework consisting of three many-sorted algebras: of denotations, of an abstract syntax and of a concrete syntax. These algebras are constructed in such a way that...
Preprint
Full-text available
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...
Experiment Findings
The experiment has been carried out in a virtual programming language Lingua for which a denotational semantics has been defined. It consists in a correctness-preserving development of a simple but tricky program which computes the integer square root of a number in logarithmic time. The development starts with an obvious (i.e. easy to prove correc...
Experiment Findings
A virtual programming language Lingua is developed in a “reverse order”, i.e. from denotations to syntax. The development is carried out through a series of many-sorted algebras: of data, of types, of expression denotations and of the denotations of the language. From the latter, we derive an algebra of syntax in such a way, that there exists a uni...
Research Proposal
Full-text available
This is an invitation to the project Denotational Engineering for all interested parties. The project is currently documented on my profile.
Preprint
Full-text available
The paper is devoted to showing how to systematically design a programming language in "re-verse order", i.e. from denotations to syntax. This construction is developed in an algebraic framework consisting of three many-sorted algebras: of denotations, of an abstract syntax and of a concrete syntax. These algebras are constructed in such a way that...
Preprint
Full-text available
This is a Polish version of “Denotational Engineering of Programming Languages” available on my Research Gate account. Książka jest poświęcona eksperymentowi zbudowania języka programowania na gruncie modelu denotacyjnego oraz wyposażenia tegoż języka w reguły pozwalające na budowanie programów poprawnych w sensie Hoare’a z tzw. czystą terminacją...
Preprint
Full-text available
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...
Preprint
Full-text available
It is a well-known fact that every user of a software application has to accept a disclaimer. Here is a typical example dating from 2018: There is no warranty for the program, to the extent permitted by applicable law. Except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is" without warranty of...
Preprint
Full-text available
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) Designi...
Preprint
Full-text available
In the years 1990 – 2010 I was running my family business (luxury confectionary) established by my great-grandfather in 1869. In 1990 right after the fall of communism in Poland, I started to run the business as its fourth generation with one pastry shop and a small production facility employing 42 workers altogether. When I passed the business to...
Chapter
Partial functions, hence also partial predicates, cannot be avoided in algorithms. Although the former fact has been accepted in the theory of software very early, the latter is still not quite commonly recognised. In many programming- and software-specification languages the partiality of predicates (Boolean expressions) is treated only semiformal...
Chapter
Full-text available
Different calculi of partial or three-valued predicates have been used and studied by several authors in the context of software specification, development and validation. This paper offers a critical survey on the development of different three-valued logics based on such calculi. In the first part of the paper, we review two three-valued predicat...
Article
Full-text available
This is an essay where the author expresses his views on applied denotational semantics. In the author's opinion, whether a software system has or does not have a sufficiently abstract denotational semantics should be regarded as a pragmatic attribute of the system rather than merely as a mathematical attribute of its description. In a software sys...
Article
Full-text available
Every modification of a software system may be described as a combination of two steps: a restriction, where we remove some existing mechanisms, and an extension, where we add some new ones. In the former case the modification of syntax is rather easy: we just have to remove some productions from the corresponding grammar. The latter case, however,...
Article
Partial functions, hence also partial predicates, cannot be avoided in algorithms. However, in spite of the fact that partial functions have been formally introduced into the theory of software very early, partial predicates are still not quite commonly recognized. In many programming- and software-specification languages partial Boolean expression...
Article
Different calculi of partial or three-valued predicates have been used and studied by several authors in the context of software specification, development and validation. This paper offers a critical survey on the development of three-valued logics based on such calculi. In the first part of the paper we review two three-valued predicate calculi,...
Article
Full-text available
Different calculi of partial or three-valued predicates have been used and studied by several authors in the context of software specification, development and validation. This paper offers a critical survey on the development of different three-valued logics based on such calculi. In the first part of the paper, we review two three-valued predicat...
Article
Full-text available
This paper is devoted to the methodology of using denotational techniques in software design. Since denotations describe the essential components comprising a system and syntax provides ways for the user to access and communicate with these components, we suggest that denotations are developed in the first place and that syntax be derived from them...
Book
The book is devoted to a simplified set-theoretic version of denotational semantics where sets are used in place of Scott's reflexive domains and where jumps are described without continuations. This approach has emerged as a reaction to the sophisticated model of traditional semantics. It was also strongly stimulated by the applications of denotat...
Conference Paper
This paper is devoted to the methodology of using denotational techniques in software design. Since denotations describe the mechanisms of a system and syntax is only a user-visible representation of these mechanisms, we suggest that denotations are developed in the first place and that syntax be derived from them later. That viewpoint is opposite...
Article
The paper is devoted to a program-correctness concept which captures partial correctness, termination (nonlooping) and clean termination (nonabortion). The underlying proof method offers a one-stage proof of all the three properties. This method is proved consistent and algebraically complete. It is first discussed for the general case of arbitrary...
Article
Full-text available
The paper describes a method of program development which guarantees correctness. Our programs consist of an operational part, called instruction, and a specification. Both these parts are subject to the development and the refinement process. The specification consists of a pre-and postcondition called global specification and a set of assertions...
Conference Paper
The paper describes a method of the systematic development of programs supplemented by specifications. A program in our sense consists of an instruction (the virtual program) plus the specification which in turn consists of a precondition, a postcondition and a set of assertions. Such a program is called correct if the instruction is totally correc...
Article
The paper presents a method of correct programs' derivation. Our programs consist of an operational part (the virtual program) and a specification. Both these parts are subject to the development and the refinement process. Specifications consist of a precondition and a postcondition (global specification) plus a set of assertions (local specificat...
Conference Paper
Full-text available
The paper presents a method of mathematically supported correct programming. Totally correct programs are developed employing transformation rules. These programs are considered and transformed together with their specifications. The specifications are of two types: global (pre- and post- conditions) and local (redundant tests). The transformations...
Article
This algebraic method provides a mathematical framework for proving input-output properties (such as partial and total correctness) of iterative programs. Technically it uses a calculus of binary relations extended with fixed-point equations. The method has been tested on several microprograms of a computer's arithmetical unit. One example of such...
Conference Paper
By a computation of a program we mean any finite or infinite sequence of consecutive data-vector states generated by the program during a run. The set of all such computations can be considered as the program meaning. Analysing programs by sets of computations permits one to deal not only with input-output properties like correctness or termination...
Article
Full-text available
This paper deals with equations whose solutions are vectors of languages. Formally, solutions of equations are fix points of vectorial functions on languages. On the other hand equations (and sets of equations) can be considered as grammars. Three main groups of problems are dealt with: (1) solvability of equations in a lattice of languages, (2) re...
Article
The paper deMs with the problem of how to design a computer so that the loop-free parts of computations performed by it are handled in the most efficient and rapid manner. In particular, the question is how to design a unit to carry out loop-free computations and how to design the unit-oriented language. Clearly, the sensitive area here is the stor...
Article
As is suggested by the title we shall be concerned here with production processes having tree-structure. First we shall introduce some basic notions of the theory of graphs. As there are no proofs in this paper (they can be found in references) our definitions need not be formulated in a very formal way.

Network

Cited By

Projects

Projects (3)
Project
To teach and promote the idea of a self-governing teal organisation (a firm, an institutions or a society) where people support each other rather than fight and compete. It is to be emphasised that this is not a theoretical concept. Such organisations exist, and their number is rapidly growing worldwide including Poland. The notion “teal organisation” comes from Frederic Laloux’s “Reinventing Organisations”.
Project
To study and develop: (1) Mathematical methods of designing programming languages along with their denotational models. In our case a denotational model of a language consists of two many-sorted algebras ― of denotations and of syntax ― and a homomorphism from syntax to denotations which is the semantics of this language. (2) Mathematical methods of developing programs in a way that guarantees their Hoare-style total correctness with clean termination. This approach is based on a three-valued propositional calculus that permits to describe an error-handling mechanism of a programming language. (3) A prototype programming-environment where (1) and (2) could be applied and experimented. This project is a follower of an earlier project MetaSoft developed in the years 1970-1996 in the Institute of Computer Science of the Polish Academy of Sciences. The project offers numerous research topics – both in theory and in implementation – for further investigations. All interested persons are kindly invited to join the project. For details see http://www.moznainaczej.com.pl/an-invitation-to-the-project
Archived project
Two streams of research were developed in parallel. (1) A theory of denotational models for Pascal-like programming languages based on set-theory, many-sorted algebras and a three-valued predicate calculus. That approach was an alternative to a model based on reflexive domains (by Dana Scott) and continuations. As a tool for defining denotations, syntax and semantics of concrete programming-languages, a metalanguage MetaSoft was proposed. (2) Given a denotational model (in our sense) of a programming language, one can define sound program-constructors, i.e. constructors which given correct components build correct resulting programs. That approach was based on a Hoare-like logic of total correctness with clean termination. A follow-up of that project started in 2018 under the name of Denotational Engineering.