Tom Van Cutsem

Working Group on Language Design

An Essay on Language Design

Interests in programming language design:

  • Concurrency abstractions (actors, channels, joins, STM, ...)
  • Distributed computing abstractions (remote references, failure handling, ...)
  • Parallel programming abstractions (data parallelism, fork/join, MapReduce, ...)
  • Asynchronous and event-driven computations (futures, promises, reactive programming, ...)
  • Object models (class-based, prototype-based, ...)
  • Object composition (mixins, traits, ...)
  • Language "symbiosis" (e.g. interoperation of dynamic languages and the JVM)
  • Reflection (mirrors, intercession, meta-objects, ...)
  • Meta-programming (macros, quasiquoting, ...)
  • Psychology of programming (Green's cognitive dimensions of notations)

Talk to me about: AmbientTalk, Javascript, Erlang, Clojure, Scheme, Self, Ruby, Java, Occam, Fortress, X10, Chapel, ...

-- TomVanCutsem - 12 May 2011