GRAD
Charlie Fly
Table of Contents
Grammar-based Rapid Application Development (GRAD)
Abstract
Section 1 - Introduction
1.1 I/O and Control Schemes
1.2 Early Executive Attempts
1.3 The Python Option
1.4 Acknowledgments
Section 2 - Design Decisions
2.1 A true parser based on a grammar for the legacy language is required.
2.2 The system should work with multiple languages.
2.3 Only public interfaces are supported.
2.4 The legacy code should not be dependent upon the GRAD interface.
2.5 Generation of the interface should be automatic from the source code.
2.6 The interface generator should produce an intermediate language from which code is emitted.
2.7 Python becomes the application development language utilizing core software written in multiple languages.
Section 3 - Supplanting Application Specific I/O Schemes
Section 4 - GRAD System Overview
4.1 The Compiler Generator
4.2 The Interface Generator
4.3 Level of Interface Abstraction
4.4 Usage
Section 5 - Testing Automation
Section 6 - Comparable Approaches
6.1 SWIG
6.2 Header2Scheme
6.3 FFIGEN (Foreign Function Interface GENerator)
Section 7 - Concluding Remarks
Section 8 - References
Compiler Generation
Usage
Interface Generation
Figure 3. GRAD Generation and Data Flows
Program
Program
Figure 1. Simple I/O Scheme
Figure 2. I/O Scheme with Restart
Appendix A - Example Interface for a C++ Class
Vector.h
Vector.C
Vector.py
VECTOR_python.C
_GLOBAL_.py
LogFile