RIDL
the flexible Ruby IDL compiler
The Ruby IDL compiler (RIDL) makes the development of code generators for IDL easier and more flexible. It provides a framework for implementing pluggable compiler/generators based on OMG standard IDL definitions. The framework includes:
-
A RACC based parser supplemented with a custom scanner/tokenizer
-
A complete AST class hierarchy for representing parsed IDL specifications
-
A complete Type class hierarchy
-
IDL constants expression support
-
A builtin IDL preprocessor expression parser/evaluator
-
A flexible framework for pluggable (and stackable) backends
-
Basic support for backend code re-generation
-
Compliant with the OMG IDL 3.5 standard
-
Support for OMG IDL 4.2 annotations
RIDL is written in the Ruby scripting language. It consists of a generic front end that is capable of handling IDL2, IDL3, and the IDL3+ language constructs. The front end validates whether the provided IDL is legal, and converts it into a so called abstract syntax tree (AST).
A large number of projects are using the OMG Interface Definition Language (IDL) as enabler to architect and design their system in a platform and programming language neutral way. Various middleware products deliver a so called IDL compiler which converts the IDL defined type system and interfaces to a specific programming language. There are dozens of product specific IDL compilers available, each for a specific task or product.
Other projects may need a custom code generator that accepts IDL as input. It is a complex task to develop such a tool and therefor developers take all kind of shortcuts with custom scripts that are hard to maintain and extend.
RIDL is developed to support multiple, configurable, backends. An RIDL backend provides the functionality to perform specific code/artifact generation as required for a certain programming language mapping or some custom project requirement.
Remedy IT created a backend for R2CORBA that generates the code for CORBA clients and servers according to the Ruby to CORBA language mapping allowing to write CORBA enabled programs in the Ruby scripting language.
Other backends have been created for TAOX11, a CORBA implementation supporting the to C++11 language mapping, as well as for AXCIOMA, an LwCCM implementation supporting CORBA, AMI4CCM, DDS4CCM, and TT4CCM.
A large part of the strength of the RIDL framework lies in the fact that by using the Ruby programming language it leverages the great flexibility of that language and the abundance to text transformation tools available, like template based generation. This makes RIDL an ideal product for developing IDL based code generation solutions.
Contact us if you are interested in knowing more about RIDL and how it can be used to simplify your project.