The birth of Feldspar

As I hinted in a previous post, Ericsson was working, together with Chalmers University (in Gothenburg) and ELTE University (in Budapest) on the development of a new language targeting DSP software development. After some brainstorming, the language was baptized Feldspar (Functional Embedded Language for DSP and PARallelism) and it’s available under open source license from sourceforge.

It is essentially a vector processing language with built-in mechanisms for parallelism that we plan to exploit even further in coming releases. Architecture-wise, it consists of a high level library that is mapped internally to a parallel C-like language, suitable for compilation to real targets. There are two key characteristics that are worth mentioning and I’ll elaborate a bit on those.

First is the C-like nature of the intermediate language that allows usage of well-known compilation techniques for getting efficient code out – but without the hassle of pointers, complex expressions etc. The existence of the intermediate language allows a fallback solution as well: if the high level constructs are not sufficient, the programmer can directly use the intermediate language. We still need to work on preserving e.g. variable and function names, but that shall be possible to fix.

Secondly, it’s a parallel language which opens up the possibility for greatly simplified automatic parallelization – for MACs within a core and for multiple cores. The first part is there and we are continuously working on improving it (whoever programmed DSPs will recognize the value of this); parallelism between cores is yet to be implemented.

The open-source version of Feldspar is not the end of a journey, but rather the first pit stop. We have ambitious plans for 2010, after seeing the huge potential of such languages. Stay tuned for new releases, but until then, make sure to download it, try it and let us know what you think.

Comments are closed.