Dynamic Imperative Languages for Runtime Extensible Semantics and Polymorphic Meta-Programming

  • Anthony Savidis
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3943)


Dynamically typed languages imply runtime resolution for type matching, setting-up an effectible ground for type-polymorphic functions. In statically typed object-oriented languages, operator overloading signifies the capability to statically extend the language semantics in the target program context. We show how the same can be accomplished dynamically in the Delta dynamic language, through simple member-function naming contracts. Additionally, we provide a software-pattern for dynamically extensible function semantics, something that cannot be accommodated with static function overloading. We demonstrate how meta-programming, i.e. crafting of parametric program capsules solving generic problems known as meta-algorithms or meta-components, become truly polymorphic, i.e. can accept an open set of parameter values, as far as those dynamically bind to eligible elements compliant to the meta-program design contract. In Delta, inheritance is dynamically supported as a runtime function, without any compile-time semantics, while all member function calls are resolved through late binding. We employ those features to show how Delta supports the imperative programming of polymorphic higher-order functions, such as generic function composers or the map function.


Object Instance Actual Argument Software Pattern Member Function Inheritance Hierarchy 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Abelson, H., Dybvig, R.K., Haynes, C.T., Rozas, G.J., Adams IV, N.I., Friedman, D.P., Kohlbecker, E., Steele Jr., G.L., Bartley, D.H., Halstead, R., Oxley, D., Sussman, G.J., Brooks, G., Hanson, C., Pitman, K.M., Wand, M.: Revised Report on the Algorithmic Language Scheme. Journal of Higher-order and Symbolic Computation 11(1), 7–105 (1998)CrossRefMATHGoogle Scholar
  2. ECMA. ECMA Script Language Specification (2004), Available electronically from: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
  3. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Re-Usable Object-Oriented Software. Addison-Wesley, Reading (1995)MATHGoogle Scholar
  4. Ierusalimschy, R., Henrique de Figueiredo, L., Celes Filho, W.: Lua – an extensible extension language. Journal of Software Practice & Experience 26(6), 635–652 (1996)CrossRefGoogle Scholar
  5. Liskov, B.: Data Abstraction and Hierarchy. SIGPLAN Notices 23(5) (May 1988)Google Scholar
  6. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Santa Barbara (1997)MATHGoogle Scholar
  7. Peyton Jones, S.: Haskell 98 Language and Libraries. Cambridge University Press, Cambridge (2003)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Anthony Savidis
    • 1
  1. 1.Institute of Computer ScienceFoundation for Research and Technology – HellasHeraklion, CreteGreece

Personalised recommendations