A language designed for redundancy

Melissa Jean Vokes Smartt · 1983

The goal of the research was to address the problem of increasing software reliability through redundancy in programming. To this end, a bifacial language with procedural and non-procedural aspects and algebraically specified data types was designed. The non-procedural aspect is Prolog-like and allows one to specify very high level program solutions. The procedural aspect is Pascal-like and facilitates efficient solutions. The major contributions resulting from the design of the bifacial language lie in four areas. (1) A formal specification is given for a language that supports software redundancy, provides executable abstract data types and problem specifications, and closes the gap between moving from specification of a problem to an efficient implementation. (2) Algorithms for the implementation of equality that allow either an initial or final algebra interpretation of a data type are provided. The use of abstract data types and equality between two abstract values or an abstract and concrete value gives a convenient method for redundancy checking. (3) The desirability of using a library of modules to aid in formal semantic definition of programming languages is demonstrated by contributing to that library. (4) A translator, complete with type checking, which will transform the algebraically specified data types into executable Prolog code has been done as the first step in providing an implementation of the language.

Read the paper · More papers on PaperTik