babel(1)
| BABEL(1) | Compilers and Programming Languages | BABEL(1) |
NAME
Babel - High-performance language interoperability
SYNOPSIS
babel [ -v | --version ]
babel option(s) filename1.sidl [ ... filenameN.sidl ]
DESCRIPTION
Babel is a high-performance language interoperability tool. The project is mainly developed at the Center for Applied Scientific Computing (CASC) at Lawrence Livermore National Laboratory (LLNL). Babel started as an internal Lab Directed Research and Development (LDRD) project in 2000 and has been under constant development since then. It is now funded mainly under the U.S. Department of Energy (DOE) Office of Science's SciDAC program.
Babel currently fully supports C, C++, Fortran 77/90/2003/2008, Python, and Java. It won a prestigious R&D 100 award in 2006 for "The world's most rapid communication among many programming languages in a single application.".
Our tool is based on the Scientific Interface Description Language (SIDL). SIDL is tailored to the needs of the scientific community and features support for complex numbers, structs, and dynamic multidimensional arrays. Babel is a compiler that generates glue code from SIDL interface descriptions. SIDL provides a modern object oriented programming model, even on top of traditional procedural languages. This includes automatic reference counting and resource (de)allocation. Code written in one language can be called from any of the supported languages.
Babel focuses on high-performance language interoperability within a single address space. Full support for Remote Method Invocation (RMI) allows for the development of parallel distributed applications.
We also provide tools to automatically generate documentation from SIDL descriptions. An equivalent XML representation eases development of third-party tools.
The full manual (amounting to several hundred printed pages) can be found at <https://computation.llnl.gov/casc/components/docs/users_guide/index.html>.
OPTIONS
- --Cca-mode
- Enables generation of CCA support files and default splicer blocks.
- -c<lang>, --client<lang>
- Generate only client code in the specified language (C | C++ | F77 | F90 | F03 | Java | Python).
- --comment-local-only
- Only comment locally defined methods in stub.
- -x, --cxx-ior-exception
- Include IOR pointer checking in C++ stubs; throw a NullIORException if IOR is Null.
- -e<regex>, --exclude<regex>
- Symbols matching the regular expression are excluded from code generation.
- -f, --fast-call
- Enable experimental inter-language optimizations.
- -i, --generate-hooks
- Generate pre-/post-method hooks
- --generate-sidl-stdlib
- Regenerate only the SIDL standard library.
- -g, --generate-subdirs
- Postpend Java-style package subdirs.
- --generate-subdirs-off
- Turn off --generate-subdirs and restore default behavior.
- -h, --help
- Display usage information and exit.
- -u, --hide-glue
- Put "glue" (not modifiable by user) generate code in a glue/ subdirectory.
- --hide-glue-off
- Turn off --hide-glue and restore default behavior.
- -I <url>, --include<url>
- Read types from a SIDL file, but don't generate code for them.
--include-referenced
- -l, --language-subdirs
- Generate code in a language-specific subdirectory.
- --language-subdirs-off
- Turn off --language-subdirs and restore default behavior.
- -m<prefix>, --make-prefix<prefix>
- <prefix> is prepended to the name of babel.make and the symbols defined internally to allow Babel to be run multiple times in a single directory.
- --makefile
- Generate a sample GNU Makefile.
- --multi
- Use to generate multiple targets in one run. This causes Babel to process arguments in a strict left to right approach.
- -!, --no-default-repository
- Prohibit use of default repository to resolve symbols.
- -o<dir>, --output-directory<dir>
- Set Babel output directory ('.' default).
- -p, --parse-check
- Parse the sidl file but do not generate code.
- --rename-splicers
- Automatically rename splicer blocks whose name have changed from previous Babel releases.
- -R<path>, --repository-path<path>
- Set semicolon-separated URL list used to resolve symbols.
- -s<lang>, --server<lang>
- Generate server (and client code) in the specified language (C | C++ | F77 | F90 | F03 | Java | Python).
- --short-file-names
- Use in conjuction with -g to generate file names that don't include package names.
- --strict-provenance
- Use to cleanly separate generated and developer code and avoid overwriting impl files.
- --suppress-contracts
- Refrain from generating contract enforcement from SIDL specs.
- --suppress-ior
- Refrain from generating IOR source or header files.
- --suppress-stubs
- Refrain from generating stub source or header files.
- -t<form>, --text<form>
- Generate text in specified form (XML | SIDL | HTML).
- --timestamp
- Generate timestamps in generated files.
- --verbose
- Turn on verbose debugging text
- -v, --version
- Display the version information and exit.
- -V<path>, --vpath<path>
- Prepend alternative search path for reading Impl splicer blocks. Does not affect where Impls are generated. NOTE: --vpath=. is a no-op for autoconf/automake. If you really want current directory, use another argument like pwd or even ./.
If you have any suggestions or questions not answered by the documentation, please send email to components@llnl.gov.
SEE ALSO
- Babel home page <https://www.llnl.gov/CASC/Components>
- The Babel User's Guide <https://computation.llnl.gov/casc/components/docs/users_guide/index.html>
- BRAID is a related project, which will implement support for Chapel, X10 and UPC. (see <http://compose-hpc.sourceforge.net/> ). Babel and BRAID are 100% compatible to each other.
AUTHORS
Babel is written by the components team <components@llnl.gov> at Lawrence Livermore National Laboratory.
Active Members
Alumni
Summer Interns
LICENSE
Babel is released under the GNU Lesser General Public (LGPL) license, which is an OSI Certified open source license. It can be freely copied, modified, and distributed under the terms of this license.
BUGS
See the file BUGS included with the source distribution.
| 2011-12-16 | 2.0 |
