347 lines
16 KiB
HTML
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>
|