Next:
Introduction
Up:
Babel Users' Guide
Previous:
Software Notices
Index
Contents
Preface
Introduction
Babel Facilitates Language Interoperability
Scientific Interface Definition Language (SIDL)
Benefits to Customers
Beyond Babel's Scope
Summary
Organization
Foundations
Installation
Simple Installation
Configure
Make
Make Check (Optional)
Make Install
Make Installcheck (Optional)
External Software Requirements
Required & Included
Required but Separate
Recommended
Optional
Basic Babel Code Generation
Babel is a Compiler
Command Line Options
Hello World Tutorial
Introduction
Writing the SIDL File
Writing the Implementation
Writing the Client
Final Remarks
SIDL Basics
Introduction
SIDL Files
Fundamental Types
Arrays
SIDL Runtime
Objects
XML Repositories
Supported Language Bindings
C Bindings
Introduction
Basic Types
Header files
Mapping for classes, interfaces, arrays and r-arrays
Calling SIDL methods from C
Catching and Throwing Exceptions in C
Implicitly defined methods
Invoking Babel to generate C bindings
Invoking Babel to generate C implementations
C++ Bindings
Introduction
Basic Types
SIDL C++ Header Suffix
SIDL's Main C++ Header File
Calling Methods from C++
Catching and Throwing Exceptions in C++
Invoking Babel to generate C++ stubs
Implementing SIDL Classes in C++
Accessing SIDL Arrays From C++
C++ Specific Babel Command Line Options
FORTRAN 77 Bindings
Introduction
Basic Types
Calling Methods From FORTRAN 77
Catching and Throwing Exceptions in FORTRAN 77
Invoking Babel to generate FORTRAN 77 Stubs
Implementing Classes in FORTRAN 77
Accessing SIDL Arrays From FORTRAN 77
FORTRAN 77 objects with state
FORTRAN 90 Bindings
Introduction
Basic Types
Calling Methods From FORTRAN 90
Catching and Throwing Exceptions in Fortran 90
Invoking Babel to Generate F90 Stubs
Implementing Classes in FORTRAN 90
Accessing SIDL Arrays From FORTRAN 90
Java Bindings
Introduction
Basic Types
Client Side: Using SIDL Classes and Methods
Server Side: Writing SIDL classes in Java
Casting Objects
Out and Inout arguments
Using SIDL arrays with Java
Interfaces and Abstract Classes
Exceptions
Enumerations
Invoking Babel to generate Java bindings
Invoking Babel to generate Java implementations
Environment Variables
Python Bindings
How to Create a SIDL Object in Python
How to Cast SIDL Objects in Python
How to Call Methods from Python
Catching and Throwing Exceptions in Python
Building Python Extension Modules
Setting up to Run Python
Notes
How to Implement SIDL Objects in Python
SIDL Backend
Introduction
Purpose
Generated versus Original SIDL files
XML File Comparison
Babel Command Line Options
XML Backend
Introduction
Purpose
Basic Structure
Command Line Options
Advanced Topics
Building Portable Polyglot Software
Layout of Generated Files
Grouping compiled assets into Libraries
Basics of Compilation and Linkage
Circular Dependencies and Single-Pass Linkers
IOR as single point of access
Dynamic vs. Static Linking
Linkers and Position Independent Code (PIC)
Tracking Down Problems
SIDL Library Issues
SCL Files for Dynamic Loading
Deployment of Babel Enabled Libraries
Troubleshooting
Introduction
Common Errors
Common Warnings
Lessons Learned
Introduction
Compilation Consistency is Key
Appendices
Reserved Words
Introduction
Reserved Words
Suggested Things To Avoid
SIDL Grammar
Introduction
Backus-Naur Form
Extensible Markup Language (XML)
Introduction
SIDL Document Type Declaration (DTD)
Glossary
Bibliography
Index
Subsections
Introduction
Babel Facilitates Language Interoperability
Scientific Interface Definition Language (SIDL)
Benefits to Customers
Beyond Babel's Scope
Summary
Organization
babel-0.10.2
users_guide Last Modified 2005-03-23
http://www.llnl.gov/CASC/components
components@llnl.gov