First Steps

Revision as of 08:58, 24 January 2007 by Seilerm (Talk | contribs) (typo fixed)

Introduction

The source code of EiffelStudio was recently made open in a dual licensing model. This makes it possible for a broad group of developers to both learn from and extend the huge code base that embodies EiffelStudio. This article tries to give a good initial understanding behind the most basic ideas of the EiffelStudio implementation.

Overview

EiffelStudio is first and foremost a compiler that translates programs written in the Eiffel language into different output formats where one of them is C code. To study a translation process it is important to understand both the source and the target language. The former is a perquisite for this article.

When trying to identify the difficult parts of the Eiffel to C compilation it helps to analyze the differences between the two languages. The most important ones are enlisted here:

  • Eiffel supports objects
  • Eiffel has garbage collection
  • Eiffel has dynamic binding
  • Eiffel supports generics
  • Eiffel supports closures, C only supports function pointers
  • Eiffel supports design by contract.
  • Melting ice technology (only for workbench code).

Of course the languages have other differences too, Eiffel has the from loop construct whereas C has the for and while constructs. But this stuff is very easily translated.