![]() |
![]() |
Who Says Ada Can't Be
Fun?
What is Claw?
Claw establishes a framework - a way of organizing and categorizing programming code to provide the user with proper structure. It eliminates a lot of the repetitive, overly detailed, complex interface code work when building an application. The interface was designed from the ground up for use with and from Ada 95. It makes extensive use of Ada 95 features and is designed to "feel" like Ada, not some a warmed over version of some other language. Claw 1.3 supports most GUI functions of Windows (as well as other capabilities), which means you only have to have Claw and an Ada compilation system to build programs. Nothing else is required. Building Claw applications with the Claw application builder greatly reduces errors and surprises. The Claw builder provides a graphical method for constructing, testing, and modifying Windows applications. It generates correct, commented Ada 95 code using Claw to implement your application. To summarize, Claw allows Ada 95 to be more effective on what has become the world's most popular operating system. It provides all of the capabilities and tools needed to make development of Ada 95 GUI applications easy, and allows one to use the compiler that they are most familiar with. Portable means less risk
Claw takes advantage Ada95 tasking features to provide a tasking safe environment for Windows programming, where such protection does not usually exist. Claw checks for common programming errors and raises exceptions. In this way, Claw makes debugging Windows applications much easier (by localizing errors), and virtually eliminates the dreaded GP fault from GUI code. By using Claw, a programmer does not have to learn any other programming language. By avoiding the use of other languages, reliability and safety are improved. Unlike most other languages, Ada is designed for safety. In addition, since knowledge of no other language is needed to use Claw effectively, the perils of mixed language programming are avoided. The Claw package includes an easy to use GUI Application Builder. The builder lets the user create applications by the manipulation of graphic objects. Objects include windows, dialogs, controls, menus, graphics (icons and bitmaps), fonts, and help. The builder's WYSIWYG (What You See Is What You Get) interface eliminates surprises. Connections between objects can be defined in the builder (for instance, a button or menu item can open a dialog). The builder includes an extensive simulation capability, so that the application can be tested without waiting for the compile-link- run cycle. Simulation includes all features of the application known to the builder, including menus, help, and object connections. For instance, pressing the OK button of a dialog causes it to close. Once the application is finished, the builder generates clean, correct, commented code using the Claw bindings to implement the application. The builder enforces a strict separation of builder-generated and programmer-written code. Programmer- written custom action handlers can be given for many actions, such as button presses, menu selection, or mouse clicks. By separating custom code from the builder generated code, the application can be modified and regenerated many times without disturbing the custom code. The builder gives the programmer control over many aspects of the generated code. The identifiers and types used by the builder can be defined by the programmer. The builder can generate resource templates for menus and dialogs, or can be configured to construct menus and dialogs with Ada code. All bindings (interfaces) are not the same. Thin (or direct) bindings are an attempted one-for-one conversion between the source language and the target interface. They are easy to create but limited in their capabilities, resulting in additional requirements can lead to failed applications. Thick bindings (like Claw) are much harder to develop, but are easier to work with because they more closely mimic the programming language being converted to. Thick bindings allow programming in the base language without additional commands or modifications to the code. The result is more user-friendly code which is also easier to debug. Claw is a thick binding for Ada 95. It uses Ada 95 features extensively, including tagged types, abstract types, inheritance, finalization, default parameters, private and child packages, returns errors as exceptions (not error codes), and dynamic binding. These Ada 95 features ease the construction of code using Claw and keep the binding manageable. Every command of the interface has been documented, and the tutorial contains extensive example programs highlighting key features of the product. The documentation is available in the Microsoft Windows Help File format, including extensive cross-referencing. This level of documentation has been sorely lacking in the Ada community. Until now, Ada users wishing to work with Windows 95/NT were forced to reference documentation written for more popular but less effective languages.
Introductory Edition available
An introductory version of Claw is available for download on our web page. The introductory version includes a subset of Claw and example programs, and includes instructions for use with four major Ada 95 compilers.
|