Will we think in programming languages? Cover Image

Will we think in programming languages?
Will we think in programming languages?

Author(s): Jiří Fišer
Subject(s): ICT Information and Communications Technologies
Published by: Vysoká škola ekonomická v Praze
Keywords: Programming languages; Domain-specific languages; Metaprogramming; Python; F#; Boo

Summary/Abstract: Modern science commonly uses computer modelling. Thousands of scientific model are daily transformed to computers programs and tested. The transformation must overcome the gap between abstract human formal notation and low level semantics of contemporary programming languages. The simultaneous knowledge of specific scientific models and programming languages is an unpleasant necessity for a significant proportion of scientists and practitioners (engineers, economist, etc.). But a solution exists - accommodation of programming languages to mental models of their users. The article discuss one partial solution - implementation of domain specific languages in the heart of existing universal languages by mechanisms of metaprogramming. This mechanism overcomes limitations of classical programming languages and complexity of creation new languages from scratch. However, the support of metaprogramming in contemporary languages is limited to isolated and peripheral constructs in very few languages. These constructs are demonstrated by simplified but real examples (metaobject system of Python, monads in F# and macro-based metaprogramming of Boo language) together with discussion of their advantages and disadvantages. The discussion of examples is aimed to finding requirements for new languages and their implementation in a original (parent) language.

  • Issue Year: 1/2012
  • Issue No: 1
  • Page Range: 1-21
  • Page Count: 21
  • Language: English