An enhanced and working version of Columbia's Esterel compiler

63 views
Skip to first unread message

Dilawar

unread,
Oct 31, 2013, 1:40:04 AM10/31/13
to wncc...@googlegroups.com
http://www-sop.inria.fr/meije/esterel/esterel-eng.html

Esterel is largely an abandoned language. Its main proponent Gerand Berry has not been active on it (despite of having INRIA at his disposal); so there is some reason to have reservations about the future of this language. The charming feature of this language is its semantic which is quite simple and powerful. 

Esterel technologies, a firm which provide solutions to embedded system industries, needless to say, does not provide its Esterel compilers open-source. INRIA'a binaries of this compiler does not work on my machine platform (those core dump x-( ). There is one open source compiler, Columbia Esterel Compilers (CEC). This is more or less untouched for last few years, and its writer, when contacted, did not express any enthusiasm for its revival. He suggested to have a look at a language called Quartz by a German group.

Anyway, with some work, I got the cec compiled and running with gcc-4.6/iverilog/sis. I also added (rather integrated) a small functionality to generate a main function over the stand-alone c function it generates for an Esterel program. The input patterns has to be supplied from a text file. Random pattern generator is not smart enough to figure everything out by itself. Anyway, the compiler is in working condition and can be compiled with gcc-4.6. I believe a course is still offered in CS department which uses Esterel. You can not use it just like that but still the framework is available. If I get the time, I'll update the Readme file on how to use this compiler.

cec file.strl

will generate two files, file.c and file.main.c. The default behaviour of cec to generate only file.c and one has to write or generate file.main.c by himself. The functionality is there in compiler but that was not activated by default. This has been tweaked. You need to compile both of them.

gcc file.c file.main.c
./a.out

Running binary this way will print a message on how to use it. Next time, you can run the binary in correct way.

 https://github.com/dilawar/cec

Do not clone the `develop` branch. On it, I am modifying its internal to turn it into something else.

--
Dilawar
NCBS/IITB
Reply all
Reply to author
Forward
0 new messages