Thursday, September 13, 2007

Embedded languages

Some time ago I read Stephen A. Edwards' article called Design Languages for Embedded Systems. Although it is now over four years old, it did and still mostly does provide a nice survey of a embedded programmer's language options. I wanted to review four that he mentions and one that he does not:

  • C - This is pretty much the current lingua franca for embedded systems, and it will probably stay this way for many years (fears of my previous post aside). Often classified like a big gun, one can do whatever they want with C. That include writing really really really BAD programs.
  • Java - Object-oriented, automatic garbage collection, and lots of other goodness. real-time java attempts to provide embedded developers necessary tools, but it has not completely caught on yet.
  • VHDL - This is a hardware description and modeling language. Reminds me of the good ol' days in CS 224. I must admit I did not actually use much VHDL then, but one or two people in the class did. So I am actually not really familiar with it.
  • Esterel - I am not really familiar with this either. However, at LCTES '06 I heard a number of talks from researchers using and/or improving it. Edwards was one of them (showcasing SHIM) and in his paper he classifies Esterel as a hybrid language.
  • OCaml - This is the language I am currently using the most, so I have to mention it. Unfortunately, I am not using it to do embedded programming but to analyze embedded programs instead. OCaml does not seem to be suited for really tiny MCUs, but it might work with other embedded programming

No comments: