ibm-information-center/dist/eclipse/plugins/i5OS.ic.apiref_5.4.0.1/lang.htm

347 lines
16 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="Language selection considerations" />
<meta name="abstract" content="You can use APIs with all the languages available on iSeries business computing systems, except for the ILE APIs." />
<meta name="description" content="You can use APIs with all the languages available on iSeries business computing systems, except for the ILE APIs." />
<meta name="DC.Relation" scheme="URI" content="concept.htm" />
<meta name="DC.Relation" scheme="URI" content="listUserSpace.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="lang" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Language selection considerations</title>
</head>
<body id="lang"><a name="lang"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Language selection considerations</h1>
<div><p>You can use APIs with all the languages available on iSeries™ business
computing systems, except for the ILE APIs.</p>
<div class="section"><p>ILE APIs that are implemented as service programs (*SRVPGM) can
be accessed only by ILE languages. In some cases, a program (*PGM) interface
is provided so that non-ILE languages can access the function.</p>
<p>Some
APIs also require that particular data types and particular parameter passing
conventions be used. The following table shows the languages available on
the iSeries system
and the data types that they provide.</p>
</div>
<div class="section"><h4 class="sectiontitle">Language selection considerations -- data types</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th valign="top" id="d0e44">Language <sup>1</sup></th>
<th valign="top" id="d0e48">Pointers</th>
<th valign="top" id="d0e50">Binary 2</th>
<th valign="top" id="d0e52">Binary 4</th>
<th valign="top" id="d0e54">Character</th>
<th valign="top" id="d0e56">Zoned Decimal</th>
<th valign="top" id="d0e58">Packed Decimal</th>
<th valign="top" id="d0e60">Floating Point</th>
<th valign="top" id="d0e62">Structures</th>
<th valign="top" id="d0e64">Single Array</th>
<th valign="top" id="d0e66">Exception Handling</th>
</tr>
</thead>
<tbody><tr><td valign="top" headers="d0e44 ">BASIC (PRPQ 5799-FPK)</td>
<td valign="top" headers="d0e48 "> </td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 ">X <sup>2</sup></td>
<td valign="top" headers="d0e58 ">X <sup>2</sup></td>
<td valign="top" headers="d0e60 ">X</td>
<td valign="top" headers="d0e62 "> </td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">ILE C</td>
<td valign="top" headers="d0e48 ">X</td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 "> </td>
<td valign="top" headers="d0e58 ">X <sup>8</sup></td>
<td valign="top" headers="d0e60 ">X</td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">VisualAge<sup>®</sup> C++
for <span class="keyword">i5/OS™</span></td>
<td valign="top" headers="d0e48 ">X</td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 "> </td>
<td valign="top" headers="d0e58 ">X <sup>9</sup></td>
<td valign="top" headers="d0e60 ">X</td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">CL</td>
<td valign="top" headers="d0e48 "> </td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 "> </td>
<td valign="top" headers="d0e58 ">X</td>
<td valign="top" headers="d0e60 "> </td>
<td valign="top" headers="d0e62 ">X <sup>3</sup></td>
<td valign="top" headers="d0e64 ">X <sup>3</sup></td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">ILE CL</td>
<td valign="top" headers="d0e48 ">X <sup>4</sup></td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 "> </td>
<td valign="top" headers="d0e58 ">X</td>
<td valign="top" headers="d0e60 "> </td>
<td valign="top" headers="d0e62 ">X <sup>3</sup></td>
<td valign="top" headers="d0e64 ">X <sup>3</sup></td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">COBOL</td>
<td valign="top" headers="d0e48 ">X</td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 ">X</td>
<td valign="top" headers="d0e58 ">X</td>
<td valign="top" headers="d0e60 "> </td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X <sup>5</sup></td>
</tr>
<tr><td valign="top" headers="d0e44 ">ILE COBOL</td>
<td valign="top" headers="d0e48 ">X</td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 ">X</td>
<td valign="top" headers="d0e58 ">X</td>
<td valign="top" headers="d0e60 ">X</td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X <sup>5</sup></td>
</tr>
<tr><td valign="top" headers="d0e44 ">MI</td>
<td valign="top" headers="d0e48 ">X</td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 ">X</td>
<td valign="top" headers="d0e58 ">X</td>
<td valign="top" headers="d0e60 ">X</td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">Pascal (PRPQ 5799-FRJ)</td>
<td valign="top" headers="d0e48 ">X</td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 ">X <sup>6</sup></td>
<td valign="top" headers="d0e58 ">X <sup>6</sup></td>
<td valign="top" headers="d0e60 ">X</td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">PL/I (PRPQ 5799-FPJ)</td>
<td valign="top" headers="d0e48 ">X</td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 ">X</td>
<td valign="top" headers="d0e58 ">X</td>
<td valign="top" headers="d0e60 ">X</td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">REXX</td>
<td valign="top" headers="d0e48 "> </td>
<td valign="top" headers="d0e50 "> </td>
<td valign="top" headers="d0e52 "> </td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 "> </td>
<td valign="top" headers="d0e58 "> </td>
<td valign="top" headers="d0e60 "> </td>
<td valign="top" headers="d0e62 ">X <sup>3</sup></td>
<td valign="top" headers="d0e64 ">X <sup>3</sup></td>
<td valign="top" headers="d0e66 ">X</td>
</tr>
<tr><td valign="top" headers="d0e44 ">RPG</td>
<td valign="top" headers="d0e48 "> </td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 ">X</td>
<td valign="top" headers="d0e58 ">X</td>
<td valign="top" headers="d0e60 "> </td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X <sup>7</sup></td>
</tr>
<tr><td valign="top" headers="d0e44 ">ILE RPG</td>
<td valign="top" headers="d0e48 ">X</td>
<td valign="top" headers="d0e50 ">X</td>
<td valign="top" headers="d0e52 ">X</td>
<td valign="top" headers="d0e54 ">X</td>
<td valign="top" headers="d0e56 ">X</td>
<td valign="top" headers="d0e58 ">X</td>
<td valign="top" headers="d0e60 ">X</td>
<td valign="top" headers="d0e62 ">X</td>
<td valign="top" headers="d0e64 ">X</td>
<td valign="top" headers="d0e66 ">X <sup>7</sup></td>
</tr>
<tr><td colspan="11" valign="top" headers="d0e44 d0e48 d0e50 d0e52 d0e54 d0e56 d0e58 d0e60 d0e62 d0e64 d0e66 "><div class="note"><span class="notetitle">Notes:</span> <ol><li>You cannot develop Cross System Product (CSP) programs on an iSeries system.
You can, however, develop CSP programs on a System/370™ system and run them on
your iSeries.</li>
<li>Refer to the CNVRT$ intrinsic function.</li>
<li>There is no direct support, but you can use the substring capability to
simulate structures and arrays.</li>
<li>There is no direct support, but pointers passed to a CL program are preserved.</li>
<li>COBOL and ILE COBOL programs cannot monitor for specific messages, but
these programs can define an error handler to run when a program ends because
of an error.</li>
<li>There is no direct support, but you can use extended program model (EPM)
conversion routines to convert to and from zoned and packed decimal.</li>
<li>RPG programs cannot monitor for specific messages, but these programs
turn on an error indicator when a called program ends with an error. These
programs can define an error handler to run when a program ends because of
an error.</li>
<li>Packed decimal is implemented in ILE C with the decimal() data type.</li>
<li>Packed decimal is implemented in VisualAge C++ for <span class="keyword">i5/OS</span> with
the Binary Coded Decimal (BCD) class. The BCD class is the C++ implementation
of the C-language's decimal(). The BCD object can be used in API calls because
it is binary compatible with the decimal() data type.</li>
</ol>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>The following table shows the languages available on the iSeries system
and the parameter support that they provide. For more information, see the
reference information for the specific programming language that you plan
to use.</p>
</div>
<div class="section" id="lang__TBLTD0102T"><a name="lang__TBLTD0102T"><!-- --></a><h4 class="sectiontitle">Language selection considerations -- call
conventions</h4>
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th valign="top" id="d0e461">Language <sup>1</sup></th>
<th valign="top" id="d0e465">Function Return Values <sup>2</sup></th>
<th valign="top" id="d0e469">Pass by Reference</th>
<th valign="top" id="d0e471">Pass by Value</th>
</tr>
</thead>
<tbody><tr><td valign="top" headers="d0e461 ">BASIC</td>
<td valign="top" headers="d0e465 "> </td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 "> </td>
</tr>
<tr><td valign="top" headers="d0e461 ">ILE C</td>
<td valign="top" headers="d0e465 ">X</td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 ">X</td>
</tr>
<tr><td valign="top" headers="d0e461 ">VisualAge C++
for <span class="keyword">i5/OS</span></td>
<td valign="top" headers="d0e465 ">X</td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 ">X</td>
</tr>
<tr><td valign="top" headers="d0e461 ">CL</td>
<td valign="top" headers="d0e465 "> </td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 "> </td>
</tr>
<tr><td valign="top" headers="d0e461 ">ILE CL</td>
<td valign="top" headers="d0e465 ">X<sup>3</sup></td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 ">X<sup>3</sup></td>
</tr>
<tr><td valign="top" headers="d0e461 ">COBOL</td>
<td valign="top" headers="d0e465 "> </td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 "><sup>4</sup> </td>
</tr>
<tr><td valign="top" headers="d0e461 ">ILE COBOL</td>
<td valign="top" headers="d0e465 ">X</td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 ">X</td>
</tr>
<tr><td valign="top" headers="d0e461 ">MI</td>
<td valign="top" headers="d0e465 "> </td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 ">X</td>
</tr>
<tr><td valign="top" headers="d0e461 ">Pascal</td>
<td valign="top" headers="d0e465 "> </td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 "> </td>
</tr>
<tr><td valign="top" headers="d0e461 ">PL/I</td>
<td valign="top" headers="d0e465 "> </td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 "> </td>
</tr>
<tr><td valign="top" headers="d0e461 ">REXX</td>
<td valign="top" headers="d0e465 "> </td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 "> </td>
</tr>
<tr><td valign="top" headers="d0e461 ">RPG</td>
<td valign="top" headers="d0e465 "> </td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 "> </td>
</tr>
<tr><td valign="top" headers="d0e461 ">ILE RPG</td>
<td valign="top" headers="d0e465 ">X</td>
<td valign="top" headers="d0e469 ">X</td>
<td valign="top" headers="d0e471 ">X</td>
</tr>
<tr><td colspan="4" valign="top" headers="d0e461 d0e465 d0e469 d0e471 "> <div class="note"><span class="notetitle">Notes:</span> <ol><li>You cannot develop Cross System Product (CSP) programs on an iSeries system.
You can, however, develop CSP programs on a System/370 and run them on your iSeries.</li>
<li>Return values are used by the UNIX-type APIs and the Dynamic Screen Manager
(DSM) APIs.</li>
<li> This support is available only when using the CALLPRC (Call Bound Procedure)
command.</li>
<li>COBOL provides a by-content phrase, but it does not have the same semantics
as ILE C pass-by-value.</li>
</ol>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="concept.htm" title="Describes the underlying concepts that you need to understand to work effectively with APIs. Among the concepts covered are basic concepts, programming considerations, and terminology.">API concepts</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="listUserSpace.htm" title="The list APIs require a user space for returning information.">User spaces for list APIs</a></div>
</div>
</div>
</body>
</html>