pyAda Home

Other possibilities to connect Python and Ada would be

  • CORBA: for example AdaBroker on the Ada side, OmniORBpy on the Python side.
  • Java: for example JGNAT on the Ada side, Jython on the Python side.
  • COM: GNATCOM on the Ada side, Python/win32 on the Python side.
  • SOAP. Soap interfaces exist for Python and Ada 95. If you are interested, you will find out where such interfaces can be found ;-)

These are all good for their specific environments, but the most natural way to connect Python and Ada would be a direct interface. The native extension and embedding language for Python is C, but everything that can be done in C can be done as well and better in Ada. pyAda makes it possible to use Ada 95 instead of C for extending and embedding Python.

pyAda is the most natural way to connect Python and Ada. The thin binding is a one-to-one mapping of the C/Python interface to a thin Ada 95/Python interface, such that you can translate without thinking almost any embedding/extending code you find written in C. There is also a "medium" binding which uses Ada 95 types instead of Interfaces.C.* types.

When compared with the above mentioned other possibilities to connect Ada 95 with Python, pyAda has the advantage that everything (host program and interpreter) runs in the same process, thus requiring no context switches, which meens maximum speed.

Similar projects

  • pyFort The Python-Fortran connection tool. Is done very professionaly. Could serve as an example to pyAda.
  • TASH A thin and a thick binding from Ada to Tcl/TK. Seems to be a mature project. If you like Tcl ;-)
  • BPL The Boost Python Library (BPL). Connects Python and C++. Claims to map Python exceptions to C++ exceptions. Might give some ideas on how to do a thick binding.