8 June 2010

Erlang

I don't do enough programming!

It has been years since I actually was allowed (asked?) to write any production code that goes into any of Volvo vehicle, since we buy a majority of our in-vehicle software from suppliers. Besides that, most of the in-house code we do nowadays are auto-generated from Simulink and Stateflow models.
Mostly I have reviewed what others have put in our vehicles, which is not nearly as rewarding. And this usually only happens when there is a problem, usually not a bug fix but rather more complicated, like real-time scheduling or improper use or configuration of the basic (or platform) software.

Since I will take a more active part in the a project course at the IT University which uses Erlang I think I will look into that. Erlang has some features which appeals to me personally:
  • Support for asynchronous parallel processing, ideal for multi-core processors
  • Functional paradigm, in contrast to the dominating OO paradigm, so I need to brush up old knowledge of things I haven't used since graduating in 1993.
  • Freeware from the erlang website
  • Access to some experts on the language

Confession: I'm not really that skilled OO programmer either, I could probably not write a Java program if my life depended on it. I'm too old school, almost all professional programming I've done have been in C and Fortran, with some Assembler and IDL.

3 comments:

Alex: Mi paso por esta vida said...

I kind of work briefly with Haskell with its subset called ATOM to allow embedded programming for a hydraulic hybrid system. The issue I found is that this implementation is ended up compiled into C code and not machine code, which made me wonder where is the advantage.
However, a year ago changed jobs and stop using haskell for embedded. Which right now I used for pc tools development. Parsers, lockups...

Nevertheless, when I red your blog, it amazed me, because it seems like Erlang was really develop with the embedded system point of view!. I am very interested in this topic and would like to learn a little bit more about this!.

Ulrik said...

Erlang is not compiled into C but is compiled and runs on an Erlang machine on top of your OS.
It is proven in use, Ericsson uses it in several telecom applications, and I have heard of embedded use in vehicles.
But it is not for all embedded systems, it is very good on soft real-time systems (like a telecom base station), but not for hard real-time.

To understand the principles of Erlang I strongly suggest reading ch. 2.1-2.5 in Joe Armstrong's PhD thesis, available at the Erlang site.

Siddharth Sharma said...

Stateflow has been updated for making it easier to create state machines and flow charts in R2012b.

The major updates include a new graphical editor, state transition tables, MATLAB as the action language and an integrated debugger. Find short videos for these features and how they can be used at:

http://www.mathworks.com/products/stateflow/whatsnew.html


~Siddharth