File: node17.html

package info (click to toggle)
babel 0.10.2-1
  • links: PTS
  • area: contrib
  • in suites: sarge
  • size: 43,932 kB
  • ctags: 29,707
  • sloc: java: 74,695; ansic: 73,142; cpp: 40,649; sh: 18,411; f90: 10,062; fortran: 6,727; python: 6,406; makefile: 3,866; xml: 118; perl: 48
file content (156 lines) | stat: -rw-r--r-- 6,378 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Scientific Interface Definition Language (SIDL)</TITLE>
<META NAME="description" CONTENT="Scientific Interface Definition Language (SIDL)">
<META NAME="keywords" CONTENT="users_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="users_guide.css">

<LINK REL="next" HREF="node18.html">
<LINK REL="previous" HREF="node16.html">
<LINK REL="up" HREF="node15.html">
<LINK REL="next" HREF="node18.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html742"
  HREF="node18.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html736"
  HREF="node15.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html730"
  HREF="node16.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html738"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html740"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html743"
  HREF="node18.html">Benefits to Customers</A>
<B> Up:</B> <A NAME="tex2html737"
  HREF="node15.html">Introduction</A>
<B> Previous:</B> <A NAME="tex2html731"
  HREF="node16.html">Babel Facilitates Language Interoperability</A>
 &nbsp; <B>  <A NAME="tex2html739"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html741"
  HREF="node317.html">Index</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION01120000000000000000"></A><A NAME="559"></A>
<BR>
Scientific Interface Definition Language (SIDL)
</H1> 

<P>
In order to support multi-language interoperability, Babel relies 
on the specification of interfaces in the
Scientific Interface Definition Language (SIDL) (pronounced
``SIGH-dull'').  SIDL is similar to COM<A NAME="560"></A> and CORBA<A NAME="561"></A> IDLs, 
but was designed with an emphasis on scientific computing.
Specifically, SIDL currently supports dynamic multi-dimensional arrays and
has built-in complex numbers.  It will acquire
a set of directives to aid in the description of 
massively parallel distributed objects and additional syntax for specifying
interface behavior.

<P>
When it comes to deciding what programming idioms
to support across all languages and which ones to reject,
SIDL strikes a careful balance between minimalism and 
completeness.  It is <SPAN  CLASS="textit">not</SPAN> a lowest common denominator solution.
SIDL is minimal to keep the learning curve as low as possible.
It is complete so developers do not feel 
constrained in how to express their solutions.

<P>
SIDL is object-oriented<A NAME="563"></A>.  Its object model closely resembles that of
Java and Objective C.  In this model there is single inheritance of
implementation and multiple inheritance of interfaces. It supports the
typical notions of virtual, static, and final methods. SIDL also
provides a basic set of features by defining and implementing the basic
types for interfaces, classes and exceptions. All types implicitly
inherit from these basic types.

<P>
The most important concept to grasp about SIDL is that SIDL only
defines a public interface that other programs may use to access your code.
As a result, all methods defined as part of a SIDL file are public,
if you do not want a method to be globally useable, simply do not
define it in your SIDL file.  Furthermore, all object and class data
is implicitly private.  There is no way to declare or define data in a
SIDL file.  Instead, any data required for your code should be declared
in the implementation language files.  This way, the languages that use
your code through Babel may create your objects and pass them around
just like any normal piece of data, but they may only access the data
through the provided interface.

<P>
SIDL also has a complete set of fundamental data types<A NAME="564"></A>, from 
booleans to double precision complex numbers.  It also supports
more sophisticated types such as enumerations, strings, 
objects, and dynamic multi-dimensional arrays.

<P>
SIDL is still a work in progress.
Of particular research interest are directives that will be 
added for parallel distributed object interaction and 
features to specify behavioral semantics associated with
the interfaces.

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html742"
  HREF="node18.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html736"
  HREF="node15.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html730"
  HREF="node16.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html738"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html740"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html743"
  HREF="node18.html">Benefits to Customers</A>
<B> Up:</B> <A NAME="tex2html737"
  HREF="node15.html">Introduction</A>
<B> Previous:</B> <A NAME="tex2html731"
  HREF="node16.html">Babel Facilitates Language Interoperability</A>
 &nbsp; <B>  <A NAME="tex2html739"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html741"
  HREF="node317.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
<br><br>babel-0.10.2<br>users_guide Last Modified 2005-03-23<br><br><a href="http://www.llnl.gov/CASC/components">http://www.llnl.gov/CASC/components</a><br><a href="mailto:components@llnl.gov">components@llnl.gov</a>
</ADDRESS>
</BODY>
</HTML>