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
Minimal Makefiles: static linked and unportable
Writing the C++ Implementation
Writing the Fortran 90 Implementation
Writing the C Client
Portable Makefiles for Static Linkage: using babel-config
Portable Makefiles and Runtime Linking: adding babel-libtool
Small and Portable Makefiles: using babel-cc
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++ Binding
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
HTML Interface Documentation
Introduction
Advanced Topics
Remote Method Invocation
What is RMI?
Babel RMI Concepts
RMI Protocols
Babel Object Server
Object Creation and Connection
RMI Arguments
Casting Remote Objects
Babel RMI Usage
Adding Protocols
Built-in Functions
Passing Objects from a client
Babel Object Servers
Starting up a Babel Object Server
Publishing Babel Objects
De-publishing Babel Objects
Non-Blocking Babel RMI
Protocols
Nonblocking SIDL
Tickets
Non-blocking Usage
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
Language Bindings for the sidl Package
SCL Files for Dynamic Loading
Deployment of Babel Enabled Libraries
Creating Objects with Pre-Initialized State
Introduction to the Backdoor Initializer
Motivation
Example
The Backdoor Initializer in C
The Backdoor Initializer in Fortran 77
The Backdoor Initializer in Fortran 90
The Backdoor Initializer in C++
The Backdoor Initializer in Java
The Backdoor Initializer in Python
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.99.0
users_guide Last Modified 2006-06-27
http://www.llnl.gov/CASC/components
components@llnl.gov