09 March 2009

erlIDE internals: Introduction

I think it would be interesting to describe some of the internal workings of erlIDE. There is no better way to clear up one's thoughts that trying to explain them to someone else. Besides, once there will be readers, I'm sure there will be many good suggestions!

So, let's begin top-down.

erlIDE is comprised of several parts:
  • jinterface: we extended the OTP library with some things we needed, like generating Erlang terms from string descriptions (sprintf-like) and simple pattern matching.
  • the core: contains the management of Erlang runtimes and the model of the Erlang code. It includes services for scanning, parsing, compiling and evaluating Erlang code.
  • the UI: handles the editors, views, preferences and other Eclipse UI stuff.
We don't really want to write Java code, but since it's Eclipse we're talking about, there is little choice about that. But we can minimize the amount of Java by using Erlang as backend for our operations. So the main architectural vision is to let the Java part be only an adapter layer and implement in Erlang the core functionality. This will work well for the core functionality, but will be much more difficult for the UI parts.

Okay, this is a beginning. More to come later, stay tuned!

No comments: