Sunday, April 23, 2006
EiffelStudio moving to XML ace-files
A new configuration-file format is appearing in the development version of EiffelStudio. These platform-independent XML files are replacing ACE-files.
"ACE" stands for Assembly of Components in Eiffel, and has for about fifteen years been the way to specify the compilation of a system (or precompilation of a library) in ISE Eiffel.
ACE-files are suffixed ".ace", and are written in a language called LACE (Language for Assembly of Components in Eiffel). This is a fairly heavyweight language for its purpose, and as such it was not adopted by Eiffel/S, Visual Eiffel or SmartEiffel. However, SmartEiffel added ACE-file support in July 2001 for increased compatibility and functionality.
The Gobo Eiffel project already supports an XML form of project specification, in its "xace" files which can be preprocessed to produce ".ace" files for ISE Eiffel and SmartEiffel and ".esd" files for Visual Eiffel. Recent versions of Visual Eiffel can even consume ".xace" files directly.
ISE Eiffel's ".acex" files are broadly similar in purpose to Gobo's ".xace" files, but are quite different in detail.
Curious? Have a look at these examples, for Gobo and ISE Eiffel.
"ACE" stands for Assembly of Components in Eiffel, and has for about fifteen years been the way to specify the compilation of a system (or precompilation of a library) in ISE Eiffel.
ACE-files are suffixed ".ace", and are written in a language called LACE (Language for Assembly of Components in Eiffel). This is a fairly heavyweight language for its purpose, and as such it was not adopted by Eiffel/S, Visual Eiffel or SmartEiffel. However, SmartEiffel added ACE-file support in July 2001 for increased compatibility and functionality.
The Gobo Eiffel project already supports an XML form of project specification, in its "xace" files which can be preprocessed to produce ".ace" files for ISE Eiffel and SmartEiffel and ".esd" files for Visual Eiffel. Recent versions of Visual Eiffel can even consume ".xace" files directly.
ISE Eiffel's ".acex" files are broadly similar in purpose to Gobo's ".xace" files, but are quite different in detail.
Curious? Have a look at these examples, for Gobo and ISE Eiffel.
Comments:
<< Home
I don't see the need of having .ace or .xace or any other type of files written in a language different than Eiffel. What are the obstacles to describe each project in pure Eiffel? What we need is a simple bootstrap system and set of classes to help us describe the rest of each system.
You raise an interesting point, Anonymous.
Some years ago, during the design of the Eiffel-like "Q language", Friedrich Dominicus and I explored the idea of using the same language for the system description file as for the program itself.
We figured that the compiler could interpret the system description file so that it knew how to compile the system. We liked the idea but didn't implement it.
There's a simpler half-way solution though. The system description file could be syntactically-valid Eiffel code, yet strongly constrained to a restricted, stylized subset.
That way, the parsing and processing would be no harder than with ACE files, and standard tools (editors, syntax highlighters etc) could be used when working with these configuration files.
I'm dubious about the net benefits of an XML approach. The downside is that - compared to a language syntax - XML is harder to write by hand - you really benefit by using tools. The upside is that tools to manipulate XML are fairly quick to knock together.
Some years ago, during the design of the Eiffel-like "Q language", Friedrich Dominicus and I explored the idea of using the same language for the system description file as for the program itself.
We figured that the compiler could interpret the system description file so that it knew how to compile the system. We liked the idea but didn't implement it.
There's a simpler half-way solution though. The system description file could be syntactically-valid Eiffel code, yet strongly constrained to a restricted, stylized subset.
That way, the parsing and processing would be no harder than with ACE files, and standard tools (editors, syntax highlighters etc) could be used when working with these configuration files.
I'm dubious about the net benefits of an XML approach. The downside is that - compared to a language syntax - XML is harder to write by hand - you really benefit by using tools. The upside is that tools to manipulate XML are fairly quick to knock together.
I'm new to Eiffel but I have to ask... Why?
You don't want to use LACE anymore? Fine.
You want to use XML instead? Great.
But, what was so terribly wrong with .xace that they needed to go and define another DTD and create yet another incompatability in the Eiffel community?
You don't want to use LACE anymore? Fine.
You want to use XML instead? Great.
But, what was so terribly wrong with .xace that they needed to go and define another DTD and create yet another incompatability in the Eiffel community?
I'm critical of using XML for this. The definition of any complex software system requires the capabilities of a full-blown programming language, and this is awkward to represent in XML (and not very readable or maintainable).
Historically I think there's been confusion on this point, because the original languages used to describe systems were restricted, declarative languges that looked like data, which in turn led people to think that XML would be a "good" solution.
I agree wholeheartedly with Roger that an Eiffel-like syntax would far better in every possible way.
Post a Comment
Historically I think there's been confusion on this point, because the original languages used to describe systems were restricted, declarative languges that looked like data, which in turn led people to think that XML would be a "good" solution.
I agree wholeheartedly with Roger that an Eiffel-like syntax would far better in every possible way.
<< Home