© Jørgen Steensgaard-Madsen, Copenhagen, 2006
The Howard languages project                                                  

The project's aim is to ease design and implementation of domain specific programming languages.
Combining expertices and representing expertice in a reusable form are major concerns.
Howard language interpreters can be built with a tool, dulce, which is described here. A scanner, a parser, and a type checker are shared by all interpreters built with it. Contrary to other tools, dulce cannot be used to build interpreters for general, context-free languages
dulce implements some language design decisions that are common to all the languages classified as Howard languages: decisions pertaining to syntax and typing.
GNU C (with extensions) is the implementation language of dulce as well as of all interpreters built with it.
Connect to SourceForge, project dulce, to download
The common syntax pattern is essentially a variation over usual function composition - e.g. composition of f and g as in f(g(x)), rather than as in f ° g (or: g ; f somewhere).
Structured statements and some aspects of objects instantiations are covered by this kind of composition. The corresponding notion of objects allows members to be class-like.
Types are used in description of operations, i.e. in syntax rules. Operations may be polymorphic, i.e. operations may apply to operands of various types, typically restricted by some relation among operand- and result-types. Externally defined operations may introduce new type operators.
The common syntax pattern is used to combine externally and internally defined operations. However, internally defined operations cannot (yet?) introduce type operators that require type operands.
A concious effort is required to learn the principles behind the common syntax pattern.
Beware of two pitfalls concerning the syntax pattern:
  1. it may be seen as too simple to deserve close attention.

  2. it breaks with a basic principle of mathematical notation.


Demo language
Implementation tool

File translated from TEX by TTH, version 3.33.
On 18 Oct 2006, 16:47.
SourceForge.net Logo