Ada 95 Bindings

For more information on Ada bindings, check out SIGAda's Application Programming Interfaces Working Group (APIWG) or Ada Bindings Working Group (ABWG).

GtkAda - a Complete Ada95 Graphical Toolkit

What is Gtk+?

Gtk+ is a wonderful graphic toolkit written in C for X-Window and Win32 that was originally developed as the basis for the gimp.

What is GtkAda?

GtkAda is an Ada95 graphical toolkit based on Gtk+, providing the complete set of Gtk+ widgets using the Object-Oriented features of Ada.

Although not obliged to do so, the developers would really appreciate to hear about any new application using this toolkit. They will publish a list on the GtkAda website. Hopefully, this will bring new people to this wonderful language that Ada is :-)

Information about GtkAda can be found at in Europe, or in America.

TASH -- A free Binding to Tcl/Tk from Ada.

With it, you can

TASH supports Tcl/Tk version 8.0 in both Unix and Windows 95. It comprises thin bindings to the public interfaces of both Tcl and Tk. Partial thick bindings are available and work is continuing to improve these. A mailing list is available for discussion of TASH and its development. More information, including how to download TASH and Tcl/Tk and system requirements, is available at Thanks to Terry Westley, author of TASH, for his efforts in making this binding available to the Ada community.

C2Ada -- A Bindings Generator Tool for Ada 95

SofCheck has released C2Ada, a C to Ada translator. C2Ada is a translator from the C programming language to the Ada 95 programming language. It is written in C and is hosted on Unix. (They are aware of an OS/2 port.)

C2Ada was used by AverStar to produce Ada 95 bindings to X Windows, Microsoft Windows, and GCCS.

Using C2Ada is a way to lessen the work in translating C headers into Ada, to produce a binding, and in translating whole C programs into Ada, producing a translation. C2Ada can do about 80% to 90% of the work automatically but it still takes some manual work to do the last 10% or 20%.

The technology for translating C headers is more mature than the technology for translating C functions and statments. C2Ada does not translate C++, just C.

Bindings to Win32 for Windows 95 and NT

Claw: a thick Ada 95 binding for Microsoft Windows NT/95

Claw is RR Software's object-oriented front-end environment that provides a framework and resources for Ada 95 programmers to create applications for Windows NT/95. The GUI builder allows the creation of GUIs by drawing, with code automatically generated using an object-oriented Ada 95 binding to the Win32 GUI. The generated code can be compiled with any validated Ada 95 compiler.

Win32Ada: a thin Ada 95 binding to the Microsoft Windows 32-bit API

Win32Ada is an Ada 95 binding for Windows. Release 2.0 works with the Microsoft Win32 Application Programming Interface available on Windows NT and Windows 95. Win32Ada was produced by Intermetrics and Labtek.

Bindings to Xlib, Xt, and Motif

X11Ada is an Ada 95 binding to Xlib, Xt, and Motif.

New features in this release:

Thanks to Mitch Gart and Intermetrics for this free binding.

X-Windows and Ada 95 Home Page

On the X-Windows and Ada 95 Home Page, find out how to get all the software you need to do X Window programming in Ada 95--for free. Join the Free X/Ada Programming Team and help promote Ada by porting and contributing X/Ada demo programs.

Also included on this page are Terry Westly's Tcl/Tk bindigns. The latest version is that I have built an Ada version of wish. This system will allow a Tcl/Tk application to call commands coded in Ada instead of C. The next step is to develop Ada bindings to the Tk widgets.

XForms - a GUI toolkit based on Xlib for X Window Systems

XForms is a gui builder and library that makes building X gui's very simple. There is a nice extension to it that converts the c code XForms spits out to ada95. It is available on a wide variety of platforms and has excellent documentation.

News Article on Binding from Ada 95 to C++ by SGI

IEEE PASC Committee

In October 1994 IEEE Portable Applications Standards Committee received approval from PASC to form a working group to define an Ada binding to XTI; in January 1995, the IEEE PASC received approval for an Ada binding to Sockets. These interfaces will provide the same functionality as the C interfaces, but will incorporate encapsulation, information hiding, and other features available in Ada. More detailed information is available.

XView Library for Ada95

Andreas Almroth of GWU announced the release of the XView Library for Ada95. It is a small library for Ada95 using Gnat on a PC running Linux. The library implements some of the objects in the XView C Library.

What is it?

XV Ada Library is actually a bindings package for the XView library. I have built a new own library upon the XView bindings in hope of that this would be easier for programmers to deal with. You don't see the real binding to the XView C library, they are hidden within my functions in the various packages.

XV Ada Library is copyrighted with GNU LIBRARY GENERAL PUBLIC LICENSE. Read the file LGPL for more information. You don't need to send me any money to use it, but you could, if you visit Uppsala-Sweden, buy me a beer or just say hello, or send me a postcard...

What does it support?

It's only a small subset of the XView C library. XV Ada Library only supports Frames, Panels (with Buttons, Text items, Numeric items, Choices, Toggles, Checkboxes, Scrolling Lists and Messages), Menues, Icons, Fonts and Server images. As you see, this is far from the complete XView C library. The three demo programs shows you what the library supports.

What do I need to use it?

You need a C compiler (preferably GCC 2.6.3 or above), Gnat 2.05 or above, and the XView C libraries (libxview, libolgx) and X11 libraries (libX11). I use a clean Slackware 2.1(?) installation from InfoMagic's March CD-set. It should work with Gnat 2.x under Solaris 2.x too (haven't been tested).

Ada bindings for LAPACK, the well-known portable Linear Algebra library

The Fortran sources of LAPACK are not distributed with in this package. LAPACK can be obtained from or

Bindings to OS/2 for Ada 95

A new OS/2 bindings package (??K) is available. It is a complete set of thin bindings. More information is available in the README file.

These bindings were created by Klaus A. Brunner.

Ada 95 to CGI Bindings

An Ada 95 binding to the Common Gateway Interface (CGI) is now available

Using this binding, you can create programs in the Ada programming language that can perform queries or other processing upon request. These requests would come from users of the World Wide Web (WWW).

More specifically, this package makes it easier to create Ada programs that can be invoked by World-Wide-Web (WWW) HTTP servers using the standard CGI interface.

Ada 95 cgi-bin Echo program

Scott Moody donated a program that shows how Ada 95 can be used with WWW forms.

After learning perl-4 then perl-5 and playing with the HTML form processing, I came to the conclusion that the syntax of perl is ... well you know. Perl is still much better than csh or sh or awk or sed .. but for programming full blown programs, I started hitting a wall.

So I decided to dust off the ada95 book and see if the new features would help in writing/converting the HTML form processing programs I have been writing. The following program is a 1/2 day exercise in just that, and I think the syntax if much better, and the program is readable (at least by me:-).

The Ada95 unbounded string manipulation is much improved from the normal strings. For example: translate is useful. (Too bad there are no regular expressions stuff.)

So this program if executed from a form will do the normal break-apart stuff, and then return 3 things: (1) the original syntax, (2) the decoded syntax, and (3) a form representing the original input. This form is broken into string fields, text fields, and check-boxes (if 'on' was the field value).

Several examples of CGI programs written in Ada 95.

Including a package for simple HTML/CGI programming. It is useful in situations when a page has to be built up by a program, rather than using a simple file to contain the html commands. Also a program that creates a page for a tutor for a particular assignment. It creates a drop down list for each tutorial group he/she takes. This contains the student number and name. The program loads the marking scheme from a file and displays it on the form.

Ada 95 to PVM Bindings

Ken Thomas has created bindings to PVM which allows the creation of parallel code on machines such as the MEIKO-CS2. He wrote:

One of the problems at present with parallel Ada is the dependence of the tasking model on a shared memory. Hence writing parallel code on machines such as the MEIKO-CS2 depends on a distribution strategy. It is possible to write message passing programs and to this aim I have a binding for PVM. The current version 2 has been tested on a MEIKO-CS2 and a SPARC with gnat version 3.01. The binding uses Ada95 stream attributes to pack the message buffers. These have only recently been implemented.

The bindings are available without any guarantee via anonymous ftp.