SCOUG-Programming Mailing List Archives
Return to [ 25 | 
November | 
2006 ]
 
 
 
Content Type:   text/plain 
SL/I shares PL/I's syntax.  Every program element is a   
statement.  Every statement ends in a semi-colon (;).  No   
exceptions.  
 
SL/I shares PL/I's respect for element variables.  All   
operations, including those involving aggregates, in PL/I occur   
on an element by element basis.  No exceptions.  
 
SL/I shares PL/I's support of operations on aggregates, i.e.   
arrays (homogeneous) and structures (heterogeneous).  SL/I   
adds "native" support for list aggregates a la LISP.  SL/I adds   
"native" support for APL operators beyond those present in   
PL/I.  
 
SL/I like PL/I does not rely on a separate, possibly third-party,   
library.  Instead both rely on a set of built-in functions, all of   
which are known to the interpreter/compiler essentially as   
"source code".  Beyond this SL/I as an interpreter/compiler   
uses source code input only contained within a single library.  
 
As SL/I has a "native" list aggregate it can extend the    
"assignment" statement with the addition of an "assertion"   
statement.  This results in taking PL/I from its third generation   
HLL status to SL/I's fourth generation HLL.  Where an   
"assignment" statement may return one and only one "true"   
result an "assertion" may return zero, one or more.  Thus an   
"assertion" may return a "false" (zero "true" results) or one   
or more "true" results: a list aggregate of zero (null list), one   
or more entries.  
 
Note that if an assignment statement cannot return one and   
only one true result the interpreter/compiler and the entire   
program fails: no executable or execution possible.  In the   
compilation stage this is represented as a "severe" error.  Note   
that in SQL, a fourth generation language in which we pose a   
query as an assertion, a query can "fail", i.e. produce no   
"true" results or a zero (null) result.  Thus what is   
"catastrophic" for an assignment is "normal" for an assertion.  
 
Just as with an SQL query (assertion) imbedded within a   
program the programmer has to add logic accounting for its   
possible "failure": no true instances.  Just as with an imbedded   
SQL query (assertion) the programmer has to add logic to   
account for all true instances (one or more).  
 
 
=====================================================  
 
To unsubscribe from this list, send an email message  
to "steward@scoug.com". In the body of the message,  
put the command "unsubscribe scoug-programming".  
 
For problems, contact the list owner at  
"postmaster@scoug.com".  
 
=====================================================  
 
  
Return to [ 25 | 
November | 
2006 ] 
  
  
The Southern California OS/2 User Group
 P.O. Box 26904
 Santa Ana, CA  92799-6904, USA
Copyright 2001 the Southern California OS/2 User Group.  ALL RIGHTS 
RESERVED. 
 
SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International 
Business Machines Corporation.
All other trademarks remain the property of their respective owners.
 
 |