Tuesday, February 14, 2006

H is for ...


Dynamic binding denotes a family of programming constructs where the runtime systemincludes some notions of \" and \" (associations from names to values),and where the operation of looking up some name in some environment is performeddynamically. A number of popular languages use dynamic binding, under various forms:quote and eval in LISP, stacks of dictionaries in FORTH or Postscript, message send inobject-oriented languages. However, functional programming languages (FPLs) such asML [MilToHa90] or Haskell [Hudak92] do not support it. This is because some of thekey aspects of these languages, like parametric polymorphism, higher-order composition,type inference or pattern matching are not easy to combine with dynamic binding. Nevertheless,we argue that at least some level of integration is possible, as demonstrated byour research language HOP . The main issues in terms of language design, underlyingexecution model and type inference are discussed here.


is a brand new open source, general purpose, imperative programming langauge. Heron is a language that focuses on facilitating the production of code that is efficient, low in defects and highly reusable. Heron supports several software development techniques and methodologies, including, but not limited to, object oriented programming (OOP), aspect oriented programming (AOP), generic programming , design by contract (DbC), metaprogramming , and interface oriented programming (IOP). The Heron syntax intentionally resembles a mix of C++ and Java, to be familiar and easy to learn for programmers familiar with the syntax of these language.


is a bizarre programming language in the spirit of INTERCAL and Befunge. It is designed to superficially resemble English, but hide beneath it a structure so needlessly complicated and ridiculously impractical that it brings tears to the eyes. Instead of being an excessively low-level language, like most of these efforts are, Homespring aims to be excessively high-level, as you shall see.


is a small functional programming language, with polymorphic typing, algebraic types, pattern matching and higher-order functions. The version here is a fully lazy interpreter.

No comments: