Date: Tue, 25 Jul 2006 12:11:04 -0400
Reply-To: joewhitehurst@bellsouth.net
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Joe Whitehurst <joewhitehurst@BELLSOUTH.NET>
Organization: Analyticum, Inc.
Subject: Re: SCL Questions (hijacked thread)
In-Reply-To: <533D18F7F697A04DAA0BDB196E0871C1021D18EC@ALPMLVEM05.e2k.ad.ge.com>
Content-Type: text/plain; charset="us-ascii"
Clint et al,
SAS Component Language cannot be subsumed under the restrictive rules of the
datastep. It is the datastep that must be subsumed under the programming
freedom that SAS Component Language affords. To fully take advantage of SAS
Component Language, a programmer has to accommodate a programmatic paradigm
shift. A programmer cannot assimilate SAS Component Language into the
restrictive constructs underlying the datastep. After adopting the new SAS
programming paradigm, a datastep then becomes just one of many different
problem solving tools not the primary one as offered by base SAS. By making
this shift, everything a programmer could ever do with the SAS System can
still be done as well as a whole lot more, for a tiny example, a read/write
loop (datastep) can be paused while other code executes. No need to wait
for a step boundary. Classes can be constructed to encapsulate
functionality that can be reused in many different situations and anything
else that can be done with a fully object oriented programming language. In
addition, a programmer has access to modern programming tools like:
1. Whole System Debugger--No matter how many modules comprise a system the
whole system debugger enables a programmer to step through the code one line
at a time, change values during execution, set break points, jump to any
point in the system during execution and many other tasks offered by most
modern debuggers.
2. Detailed Performance Analyzer--As soon as the first module is compiled,
the Detailed Performance Analyzer can report on resource utilization at the
individual statement and function level. A programmer can get immediate
detailed feedback on resource utilization of various alternative ways of
solving programming problems while the programmer is developing a system.
3. Source Control--SAS Component Language comes with builtin source control
providing check in and check out capabilities all within the SAS System.
4. Automatic Documentation Generation--SAS Component Language comes with
GENDOC which produces HTML-based documentation automatically.
5. No Quoting Issues--With SAS Component Language, there are never any
issues requiring masking or quoting of symbolic variable values because the
Macro Compiler never "sees" any SCL variables used as Symbolic variables.
6. Datastep Syntax--SAS Component Language syntax is, with a few exceptions,
almost identical to Datastep Language syntax which makes the transition from
datastep programming to SAS Component Language programming a matter of
3-5 days of the "right" kind of training.
Joe
-----Original Message-----
From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of
Rickards, Clinton (GE Money)
Sent: Tuesday, July 25, 2006 8:39 AM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: SCL Questions (hijacked thread)
Peter,
Exactly what I seek, and it looks like something that SCL can not do at this
time. I will be studying the user-written functions, as that looks
promising.
Clint
-----Original Message-----
From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU]On Behalf Of
Peter Crawford
Sent: Monday, July 24, 2006 3:53 PM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: SCL Questions (hijacked thread)
Clint
Do you seek to call an SCL object from within a data step? It
seems that your wish has been granted (but I've not tried yet)!
I'm disappointed that Joe hasn't pointed to the SAS9 data step
object interface which appears to provide what you seek.
I must say, that I don't yet see the problem for which this is
the solution, but it is nice to know of the opportunity for design.
See: "Data Step Component Objects and Not Notation" at
http://support.sas.com/rnd/base/topics/datastep/dot/
Unfortunately, SAS Institute ~seem~ to have dropped the general
instance that might allow you to encapsulate your own classes
with SAS/AF, in a way that allowed them to be declared in a data
step. "Data Step Component Objects and Not Notation" only
documents the Hash Objects and Java Objects.....
but, perhaps
SCL objects just need a champion like Joe !
Are you "up for it" Joe ?
SAS9.2 will introduce PROC FCMP - a non-AF method for building
user-compiled functions - already PROC FCMP has been presented
in papers on the support.sas.com web site.
Whether this is implemented as demonstrated by the developers
remains to be seen. I hope it won't only be available through
"data-step-2" - which was more formally named in presentations
during "The Last SUGI" as
Table Server Programming Language (TSPL for short).
I think the SAS/AF Component Language offers far more scope
than what I read in the PROC FCMP paper at
http://support.sas.com/rnd/base/topics/datastep/user-written-functions.pdf
and the on-line doc (in pdf) at
http://support.sas.com/documentation/onlinedoc/base/91/fcmp.pdf
or (html) at
http://tinyurl.com/j6bop
(short for
http://support.sas.com/onlinedoc/913/getDoc/en/proc.hlp/a002975052.htm
Peter
On Mon, 24 Jul 2006 14:49:05 -0400, Rickards, Clinton (GE Consumer
Finance) <clinton.rickards@GE.COM> wrote:
>Joe,
>
>I think the question is this: Can one call an SCL module using a
function-like syntax? For example:
>
>data mydata1;
> set inputdata1;
> newvarA = div_0_scl_module(var1, var2);
> newvarB = div_0_scl_module(var3, var4);
> newvarC = div_0_scl_module(var5, var6);
> newvarD = div_0_scl_module(var7, var8);
>
> ... MORE DATASTEP CODE ...
>run;
>
>data mydata2;
> set inputdata2;
> newvarA2 = div_0_scl_module(var12, var22);
> newvarB2 = div_0_scl_module(var32, var42);
> newvarC2 = div_0_scl_module(var52, var62);
> newvarD2 = div_0_scl_module(var72, var82);
>
> ... MORE DATASTEP CODE ...
>run;
>
>All this example needs to do is accept the dividend and divisor
variables, handle the division of the two variables, and pass back
the quotient. No DATA statements, etc.
>
>Clint
>
>-----Original Message-----
>From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU]On Behalf Of Joe
>Whitehurst
>Sent: Monday, July 24, 2006 2:27 PM
>To: SAS-L@LISTSERV.UGA.EDU
>Subject: Re: SCL Questions (hijacked thread)
>
>
>Toby,
>
>Pardon me, but, I think you may be trying to fit