Notes on Howard Languages
Notes on Howard Languages

Characteristics of a family of languages, called Howard Languages, will be described in a sequence of papers at this site. None of them has been published elsewhere.
A main characteristic is a member's design and its dependency on a particular notion of operations that covers everything from simple statements to program components. Each member language represents a particular selection of operations from a collection of predefined operations. Domain specific languages may thus be defined by reusing existing operations along with (hopefully few) definitions of others that represent domain expertice.
A support tool is used for construction of languages as well as for interpretation of programs. This tool and libraries of operation implementations are written in GNU C. Extensions to C are available in GNU C and these are heavily used in the tool and the predefined operations.
Below is a list of references to short papers about aspects of Howard Languages.
Basic Howard Languages
Describes a simplified notion of signatures and how it determines application syntax. It puts emphasis on the principles and just mentions that actual notation closer to common practise is possible, but has to be described elsewhere.
Specialisaton of signature semantics
Describes semantics of a signature as the semantics of the pattern of an internal definition of the operation described by the signature. Semantics of an operation can then be derived from the semantics of the operation's signature and an idealised program fragment that defines its computational meaning.
Convenience notation for Howard Languages
Conveniences that essentially can be perceived as manipulations of notation, i.e. which add no new semantics, are described very briefly.
Tool Support for Howard Languages
Describes the main tasks involved in making a contribution, i.e. a library of externally defined operations that may be included in a Howard Language.
Operators in Howard Languages
Expression operators may as operations be defined internally or externally. An operator may be overloaded and/or polymorphic. Both dyadic and monadic operators are supported. A new notion of a pattern expression is introduced to help automatic generation of additional, hidden operand for use with certain operators.
Applications of Howard Languages
Howard Languages all support reuse, modularity, and development of domain specific languages. Embedded interpretation and dynamic includes are essential techniques for language extensions. Interpreted operations may perform special operations, map their applications homomorphically into other notations, or compile them into an assembly language.



File translated from TEX by TTH, version 3.85.
On 15 Nov 2010, 13:33. © Copenhagen 2008-2010, Jørgen Steensgaard-Madsen