Guest editor's introduction

C.A. Middelburg
<span title="">2002</span> <i title="Elsevier BV"> <a target="_blank" rel="noopener" href="" style="color: black;">The Journal of Logic and Algebraic Programming</a> </i> &nbsp;
Program algebra is a novel algebraic framework for sequential programming. It is intended to contribute to a better understanding of sequential programming. The work on program algebra was initiated by Bergstra. This special issue aims to give a concise overview of the work done on program algebra so far. Starting from simple algebraic foundations, an original and systematic analysis of a number of basic and more advanced programming language constructs has been carried out in a precise, but
more &raquo; ... erately formal way. In addition, a systematic and detailed analysis of how the behaviour of a program and a state machine can interact has been carried out. An interesting extension of the framework with primitives for object-based programming, based on a novel model of computation, is studied as well. In the first paper, Bergstra and Loots introduce the basic program algebra PGA (Pro-Gram Algebra). The terms of PGA denote single pass instruction sequences. The behaviour represented by single pass instruction sequences is described in terms of the constants and operators of the simple process algebra BPPA (Basic Polarized Process Algebra). The terms of PGA can be regarded as programs in a very simple basic programming language called PGLA. It is demonstrated how a number of more advanced programming languages can be understood by mappings to PGLA, called program algebra projections, in a stepby-step fashion. In the second paper, Ponse extends program algebra PGA with a unit instruction operator which wraps a PGA program into a unit of length one. This extension is useful to introduce composed tests. The extended version is called PGA u . Both a projection of PGA u into PGA that maps a program one instruction at a time from left to right and a projection that maps a program as a whole are defined. The third paper complements the first paper in an interesting way. Bergstra and Ponse investigate how a state machine may affect the behaviour of a program and how the behaviour of a program may transform a state machine into another one. The particular programming language used, called PGLE, originates from the first paper. Operators corresponding to the two above-mentioned ways in which the behaviour of a program and a state machine may interact are introduced. It is demonstrated that there are PGLE programs using state machines for which PGLE programs not using state machines are disappointingly long or impossible. *
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="">doi:10.1016/s1567-8326(02)00017-6</a> <a target="_blank" rel="external noopener" href="">fatcat:2tqwrd2sore6pelrodjxbabbsu</a> </span>
<a target="_blank" rel="noopener" href="" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href=""> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> </button> </a>