Industry Applications

Size: px
Start display at page:

Download "Industry Applications"

Transcription

1 IMPLEMENTING ABEllA VIOR SCORE MODEL USING A SAS TO COBOL TRANSLATOR by David A. Wolovick Statistical models are used to predict behavior. They assign scores to individual customers or accounts which reflect the probabilities calculated by the model. The development of a scoring model begins with an attempt to identify any data elements which could be useful in predicting future behavior. Relationships between the data elements, called, are constructed. In some cases the data element itself is a characteristic. More often, though, it is a simple mathematical formula using one or several data elements, a statistical (SAS) :function, such as MEAN or MAX, or a unique algorithm. A characteristic resolves to a value. Accounts with similar profiles or patterns of behavior are grouped together into the same &oneard. Each scorecard has a unique set of Attributes. An Attribute is the number of points assigned to a range of values. That is, the same characteristic with the same value may result in a different number of points in a different scorecard. The sum of the attributes is the score. SAS is the language often used for developing and validating Behavior Score Models. COBOL is the language of the Production Systems, the Posting and Billing streams where the scores will actually be calculated on live accounts. Traditionally, the model developers provide written documentation or specifications to the COBOL programmers and analysts. There are several problems with that approach: Misunderstandings are inevitable when the definitions and logic of one computer language is translated into English and then retranslated into another computer language. After the design phase, the actual coding of any program is a tedious clerical task, prone to error. With Scoring models, the number of values, ranges, etc., which need to be hardcoded is staggering. Incremental development is generally not supported. That is, until all the Scorecards are provided, coding and testing will not begin. The SAS-to-COBOL Translator is an attempt to address those issues, so that the time required to implement a new set of Scorecards can be decreased dramatically. The purpose of the SAS-ta-COBOL translator is not to produce a complete COBOL program; it is assumed that a COBOL scoring module already exists or that a "skeleton" is being written. Changes to the translator may have to be made to conform to particular data names used in that module. The translator creates four output :files. After the Production COBOL scoring program has been modified to disable the old scoring routines (if they exist), it must be recompiled with these files "copied" or "included". The Data Division of a COBOL program is where the variables are declared. Two of the four files are Data Division entries. General working or temporary fields are declared in one file. Also all the characteristics are declared. The same characteristic may be used in several scorecards, but it must only be declared once. The unique combinations of characteristic and scorecard are declared in the other file. For each characteristic within each scorecard, there are ranges ofvalues with corresponding attributes. Calculations are done in the Procedure Division of a COBOL program. The other two files are Procedure Division entries. In one file each characteristic has a separate paragraph or routine where its value is calculated. The other file is essentially a very large "Evaluate" statement (equivalent to the "Select" in SAS) based upon the scorecard. The value of each characteristic associated with that scorecard is calculated. The result is then compared to the ranges declared for the particular scorecardcharacteristic combination to get the attribute. All the attributes are then added to get the score. SCORE DEVELOPMENT CODE AS INPUT DATA The SAS code used to developlvalidate the behavior scores is input data. There are three types of code and for each there were structural/syntactical assumptions made. Extract Data Elements. This code reads the Production Master:file(s) and creates test data. The requirement here is that absolute pointer controls be used in the Input statement, that there be only one per line and that only :five different Informats be used: SCHARw., Sw., w.d, Pdw.d and HEXw.. Each Characteristic must be defined in a Macro (with the Macro name as the Characteristic name) and each Macro must be in its own separate file. If comments are desired in the 336

2 COBOL code, they may be put in o/os1r functions within %LET statements. SAS Statements may be on multiple lines but there may not be multiple SAS statements on one line (parsing stops when the first semicolon is found). There can be up to 8 SAS functions in one statement; iflelse clauses are supported as long as the else clause does not contain a SAS function. Also not supported are arrays and temporary fields. Any unsupported features. including date transfonnations, can be handled by adding ad-hoc translation code to the SPECIAL Macro. Scorecards and Attributes. Each Scorecard must be defined in its own separate file, which is in fact an executable SAS job. In that job the relevant Macros are invoked, PROC FORMAT is used to assign Attribute values and a series of PUT functions are used to link the two. The Partitioned Data Set (PDS) where the Characteristic Macro is located (but not the member name) must be defined in the JCL. The actual member names must be identified in %INCLUDE statements (multiple members for one PDS can be referenced). In PROC FORMAT there must be only one transformation value per line. Examples: Extract CORP ASA ACCNUM A I CLOST D-CLOST D-PLOST D-MEM A PD4. *TCHAROl FIRST TEST CHARACTERISTIC ; %MACRO TCHAR01; IF RANGE(A DUES,A DUE4,A DUE3) GT 3.3 THEN TCHAROl = - - MEAN(OF A DUE1-A DUES) + (MAX(N 60LT,N SOLT) + FLOOR(RSCORE All; ELSE TCHAR01=-777; - %LET MCTITLE1=%STR ( 'TEST RANGE MEAN FLOOR MIN ' ) ; %LET MCTITLE2=%STR ('SECOND LINE OF COMMENT'); %LET MCTITLE3=%STR(' '); %MEND ; Scorecards and Attributes II EXEC SAS608 IISYSPRINT DD SYSOUT=* IITPDSl DD DSN=$SUPDXW.SCORE.DATA,DISP=SHR I/TPDS2 DD DSN=SUPDXW.MVS.DATA,DISP=SHR ** * *INCLUDE THE MACROS TO CALCULATE CHARACTERISTICS; %INCLUDE TPDS1(TCHAROl TCHAR02 TCHAR07) ; %INCLUDE TPDS2(TCHAR03); ** FORMAT STMT ASSIGNS WEIGHTS TO ATTRIBUTES FOR THE CHARACTERISTICS; PROC FORMAT; VALUE FTCHAROl LOW - 0 = 18 o < <-.6 = 11.6 <-.8 = 11.8 <-.9 = 12.9 <- HIGH = 24 OTHER = 18; VALUE FTCHAR02 LOW = 9 ITCHAROl ITCHAR02 ITCHAR03 ITCHAR <- 0 = -4 o <- 100 = <- 150 = 6 = PUT(TCHAR01,FTCHAR01.); = PUT(TCHAR02,FTCHAR02.); = PUT(TCHAR03,FTCHAR03.); = PUT(TCHAR07,FTCHAR07.); 337

3 Implementing a Behavior Score Model Using a SAS to COBOL Translator Page 1 of 4 Layout of Production Data as SAS Dataset SAS: Extract Data Elements XTR: SAS-COBOL variable name xref Manual Adjustment and Reconciliation Duplicates, Discrepancies and No-matches Score Development TRANCOB: Generated xref Macro SAS: SAS: Scorecards and Attributes Legend Execution Generated Used As Data wolovick@aol.com 338

4 Implementing a Behavior Score Model Using a SAS to COBOL Translator Indust~II~:afi~ns R'un each time a new Scorecard is ready Input data is cumulative list of Scorecards. Yes Scorecard IDs and Location of SAS code Allocate space for 5 output files Set up Macro for JObcard. PDS and File Names ATTRIB: Scorecards as Parameter List MVSJCL: Jobcard. PDS and File Names START: Generate JCL and Macro for Next Job Legend execution Generated wolovick@aol.com 339

5 Implementing a Behavior Score Model Page 3 of 4 Using a SAS to COBOL Translator MVSJCL: Jobcard, PDS and File Names ATTRMACR: Undupe and Generate JCL SAS : Scorecards and Attributes ATTR: Process SAS code for Scorecards and Attributes and Value Ranges; New flagged I--ot( COBOL : Calculation of Variables in Procedure Division COBOL :,Ranges of Values Declared in Data Division Legend Execution Generated JCL COBOL : Evaluate Statement in Procedure Division Generated wolovick@aol.com Used As Data 340

6 Implementing a Behavior Score Model Using a SAS to COBOL Translator Industry Applications Page 4 of 4 SAS: Flat File of ; One line per SAS statement and Value Ranges; New flagged TRANCOB: Generated xref Macro CHAR: Process SAS for FUNCS: Macro to Translate SAS Functions Yes Add code to SPECIAL Legend COBOL CODE: Variables Declared in Data Division Execution, Generated COBOLCo<1e: Calculation of Variables in Procedure Division SPECIAL: Macro to Translate Non Standard Used As Data 341 wolovick@aol,com

7 STEP! The purpose of the first step is to create a Cross Reference Macro of SAS data-names to COBOL datanames. It is assumed that there exists or that you can easily create the COBOL file layout as a SAS Dataset XIR reads in that dataset and, using Starting Position and Field Size as the match key, merges it with the SAS code which extracted the data. What is produced is TRANCOB. a cross-reference Macro, essentially a series oftranwrd functions. After reviewing the reports which also are produced by the SAS run, manual adjustments may have to be made to the Cross-Reference. STEP 2 SAS statement flatfile. Step 2 creates JCL to run Step 3 and Step 3 creates JCL to run Step 4. MVs.JCL is a Macro called in both of these steps which sets up the Jobcard, PDS and file names. START reads in a flat file listing of Scorecards and their respective file names. It generates JCL and ATTRIB, a file of SAS code (3 Macros, each with the Scorecards as the list of arguments). These Macros are called in the next step by Macros with the P ARMBUFF option, which allows a different number of arguments each time it is invoked. Each time a new Scorecard is ready, Step 2 is run, taking as its input the cumulative list of Scorecards. Step 2 is the beginning of the iterative process in which Scorecards are translated as they are ready. The first time that it is run, space must be allocated for the four SO-byte COBOL flatfile outputs plus the one 200-byte -----Alphabetic List of Variables and Attributes----- # Variable Type Len Pos COBNAME Char COBTYPE Char DECIMALS Num SIZE Num START Num Sort Information----- Sortedby: START SIZE validated: YES Character Set: EBCDIC %MACRO TRANCOB; COBL1NE=TRANWRD(COBL1NE,'SASNAME2','PROD-COBOL-NAME-2'); COBLINE=TRANWRD(COBLINE,'SASNAMEl','PROD-COBOL-NAME-1'); %MEND TRANCOB; %MACRO ATTR1BX (X)/PARMBUFF; %LET STOP=%LENGTH(&SYSPBUFF); %DO 1=1 %TO &STOP; %LET SCARD=%SCAN(&SYSPBUFF,&I); %IF &SCARD NE %THEN %DO; %ATTRIB (&SCARD) % %ELSE %LET I=&STOP; %END %M %MACRO ATTRIB (SCARD); DATA FMAT&SCARD (KEEP=FMAT FORMTYPE HIBOUND ATTR) XREF&SCARD (KEEP=FMAT CHAR) JCL1&SCARD (KEEP=PDS SYMB) JCL2&SCARD (KEEP=MEMB SYMB); * FORMTYPE O=VALID l=default(other) ; LENGTH ATTR HIBOUND $14 ; INFILE F&SCARD; FULLINE $72.; 342

8 Generated Fi1es ****** ***************************** TOP OF DATA ** (ATTRIB) %ATTRIBX (127, , ) DATA JCL; SET 0000 %JCLNUMX (127, , ) PROC SORT NODUPKEY; BY MEMB; %JCLNULL DATA COBOL; SET %SORTNUMX (127, , ) ****** **************************** BOTTOM OF DATA ****** ***************************** TOP OF DATA **** (JCL) //$SUPDXWJ JOB (CSROID,JMM),'SCORE',MSGCLASS=X,CLASS=S,REGION=OM //SAS EXEC SAS //PROCDIV2 DD DSN=$SUPDXW.SCORE.COBOL.PROCDIV2,DISP=SHR //PROCDIV1 DD DSN=$SUPDXW.SCORE.COBOL.PROCDIV1,DISP=SHR 0000 //DATADIV1 DD DSN=$SUPDXW.SCORE.COBOL.DATADIV1,DISP=SHR //JCL DD DSN=$SUPDXW.MVS.CNTL(SCOREXE2),DISP=SHR //MACR DD DSN=$SUPDXW.SCORE.DATA,DISP=SHR //SYSIN DD DSN=$SUPDXW.SCORE.DATA(ATTR),DISP=SHR //F127 DD DSN=WCMKCH.SCORING.DATA(SCORE7),DISP=SHR //F500 DD DSN=$SUPDXW.MVS.CNTL(SCORE500),DISP=SHR //F031 DD DSN=$SUPD~.MVS.CNTL(SCORE031),DISP=SHR ****** **************************** BOTTOM OF DATA ********************* STEP 3 The input to Step 3 is the SAS code which we are translating, here the Scorecards and Attributes. They will become the COBOL code where the ranges of values and their associated point totals (per Scorecard) are declared. Also, the "Evaluate" statement is created, which tells the COBOL progmm which need to be calculated for each Scorecard. ATTRMACR defines the three Macros with the P ARMBUFF option, each of which loops and executes another Macro for each argument (Scorecard). The first one reads the Scorecard file and produces two temporary SAS Datasets. One, with the PDS and member name for each Characteristic, is created by match-merging parsed extracts from the JCL with parsed extracts from the %INCLUDE statements. The other, with the Characteristic name, attribute and value of the high end of the range, is created by a similar match-merge of parsed data, this time from the Value statements in PROC FORU4Tandfrom the PUTfunction statements. The other two Macros concatenate these two outputs. A TTR reads the concatenated data and match-merges it with one of the COBOL flat files to produce a printout, where which have not been defined yet are flagged. Also output are two other COBOL flat files and the JCL for the next step. STEP 4 Step 4 translates the SAS code where the are defined. Generally, they will be in the form of iflthen statements with one or several SAS statistical functions. However, before proceeding, the SAS statements flagged as "new" in the Step 3 printout should be examined to see if they are "non-standard", i.e., they contain anays, temporary variable names, date variables, etc. If so, ad hoc code has to be added to the SPECIAL Macro. CHAR reads in the Score Development SAS Macros where the calculations are defined. Multiline SAS statements are concatenated. SPECIAL is invoked to bypass designated, whose translation is being done by ad hoc code within that Macro. Otherwise, each SAS statement is parsed, the SAS functions being translated by the FUNCS Macro. The TRANCOB Macro (the variable name crossreference) is also invoked. 343

9 portion of CHAR * IDENTIFY AND CONVERT SAS FUNCTIONS ADD EQUAL SIGN TO LIST OF SCAN DELIMITERS; %LET DELIMS=%STR('.«+&*);-1,='); END IDX=O; DO 1=1 TO 100 WHILE (SCAN (FULLINE,I,&DELIMS) NOT =, ') FUNCWORD=SCAN(FULLINE,I,&DELIMS); IE' FUNCWORD IN{'MIN','MAX', 'SUM', 'MEAN', 'RANGE', 'MOD', 'INT', 'CEIL', 'FLOOR') THEN DO; * DETERMINE STARTING AND ENDING DISPLACEMENTS; START = END_lOX +. INDEX(SUBSTR(FULLINE,END IDX+1),TRIM(FUNCWORD»; END IDX = START + - INDEX(SUBSTR(FULLINE,START),')') - 1; * DETERMINE NUMBER OF VARIABLES IN FUNCTION; VX=START; DO V = 1 TO 100 ; WORD=SCAN(SUBSTR(FULLINE,START), V, &DELIMS) ; VX=VX+ INDEX(SUBSTR(FULLINE,START),TRIM(WORD»; IF WORD=', OR VX > END_lOX THEN DO; VARNUM=V; - V=lOO; * THE SAS FUNCTION RESOLVES TO A COBOL VARIABLE SAB-TOTAL', WHERE H REFERS TO A UNIQUE SEQUENCE NUMBER ASSIGNED TO EACH SAS FUNCTION IS MAX) USED IN CALCULATING THE CHARACTERISTIC; FUNCCONV+1; SE~INPUTIPUTIFUNCCONV,I.),$I.); %FUNC1 REPL=' FCNV' I I SEQ; LFUNC = END lox - START + 1; SUBSTR(FULLINE,START,LFUNC)=REPL; f* SAS FUNCTION FOUND *1 f* END OF LINE PARSING TO FIND SAS FUNCTIONS * 1 IF CHARFLAG=1 THEN DO; FIRSTLIN=O; CHARFLAG=O; 1 *'; FIRSTLIN+l; LENGTH OPERATOR $1 ; ARRAY OPS (14) $4 (I ( _,, I '+ _ I 1/ _ 1* _ I t~ _ I,> _ I '<_ 1(+"_+'1++1'/+' _* + I '= + I I> + I '< + ') DO 1=2 TO 7; 1* MAKE OPERATOR A WORD *1 OPERATOR=SUBSTRIOPS{I),I,I); OPWORD=' 'IIOPERATORII' '; FULLINE=TRANWRDIFULLINE,OPERATOR,OPWORD); FULLINE=TRANWRDIFULLINE,') ',') '); FULLINE=COMPBL(FULLINE); DO 1=1 TO 14; /* CORRECT FOR + OR - AS SIGN NOT OPERATOR *f FULLINE=TRANWRDIFULLINE,OPS{I}, SUBSTR(OPS{I},1,3»; FULLINE=TRANWRDIFULLINE,'( ','I'); FULLINE-TRANWRDIFULLINE,' )',')'); FULLINE=TRANWRDIFULLINE,'> =','>='); FULLINE=TRANWRDIFULLINE,'< =','<='); FULLINE=TRANWRD(FULLINE,'FCNV','SAS-TOTAL'); WORD='SAS-' IICHARNAME; FULLINE=TRANWRD(FULLINE,TRIM(CHARNAME), TRIM (WORD) ); Portion of I!'UNCS IF SCAN(SUBSTR(FULLINE,START),2) = 'OF' THEN DO; FNAME2=SCAN(SUBSTR(FULLINE,START),3); FNAME3=SCANISUBSTR(FULLINE,START),4); L2=LENGTH(FNAME2);. L3=LENGTH(FNAME3); * DETERMINE ROOT AND SUBSCRIPT ; %LET NUMERICS = tstr ( 10 ', '1', 2', '3 I, '4 I, '5 I I 16' I ';,, 'e t,, 9' ) ; IF SUBSTR(FNAME2,L2-1,1) IN (&NUMERICS) > 0 THEN DO; VALl=SUBSTR(FNAME2,L2-1,2); FNAMEO=SUBSTR(FNAME2,I,LZ-Z); ELSE DO; VALl=SUBSTR(FNAMEZ,LZ,1); FNAMEO=SUBSTR(FNAME2,1,L2-1); IF SUBSTR(FNAME3,L3-1,1) IN(&NUMERICS) > 0 THEN VAL2=SUBSTR(FNAME3,L3-1,2); ELSE VAL2=SUBSTRIFNAME3,L3,1): COBLINE='PERFORM VARYING SAS-SUB,ROM 'II COBOL Data Div:L.ion (1) 01 SAS-TCHAR PIC S9(S)V9(4) VALUE +.5. PIC S9(S)V9(4) VALUE +11. PIC S9(S)V9(4) VALUE +.6. PIC S9(S)V9(4) VALUE +11. PIC S9(S)V9(4) VALUE +.S. PIC S9(S)V9(4) VALUE +11. PIC S9(5)V9(4) VALUE +.9. PIC S9(S)V9(4) VALUE +12. PIC S9(S)V9(4) VALUE +0. PIC S9(S)V9(4) VALUE +1S. PIC S9(S)V9(4) VALUE PIC S9(S)V9(4) VALUE +24. PIC S9(S)V9(4) VALUE REDEFINES SAS-TCHAROI-201. SAS-TCHAR01-Z01-TBL OCCURS 6 INDEXED BY SAS-TCHAROl-201-SUB. 10 SAS-TCHAR MAX PIC S9(5)V9(4). 10 SAS-TCHAR01-Z01-ATTR PIC S9(5)V9(4). SAS-TCHAR01-Z01-OTHER PIC S9(S)V9(4). 01 SAS-TCHAR02-Z01. COBOL Data Div:L.ion (2) ********** SAg WORKING STORAGE VARIABLES ***** 01 SAS-TOTALO PIC S9(S)V9(4). 01 SAS-TOTALR REDEFINES SAS-TOTALO. SAS-INTEGER PIC S9(S). SAS-DECIMAL PIC 9(4). 01 SAS-TOTALS. 01 SAS-TOTAL1 SAS-TOTAL2 SAS-TOTAL3 SAS-TOTAL4 SAS-TOTALS SAS-TOTAL6 SAS-TOTAL7 SAS-TOTAL8 REDEFINES SAS-TOTALS. SAS-TOTALX OCCURS 8 PIC S9(S)V9(4). PIC S9(S)V9(4). PIC S9(5)V9(4). PIC S9(5)V9(4). PIC S9(S)V9(4). PIC S9(5)V9(4). PIC S9(5)V9(4). PIC S9(5)V9(4). PICXI9). 344

10 01 SAS-SUB PIC S9(4). 01 SAS-DATE PIC 9 (6). 01 REDEFINES SAS-DATE. SAS- -YMD PIC 99. SAS-MM-YMD PIC 99. SAS-DD- MD PIC REDEFINES SAS-DATE. SAS-MM-MD PIC 99. SAS-DD-MDY PIC 99. SAS- Y-MDY PIC 99. SAS CHARACTERISTICS *************** 01 SAS-CHAR-AREA. SAS-TCHAR01 PIC S9(s)V9(4) COMP-3. SAS-TCHAR02 PIC S9(S)V9(4) COMP-3. SAS-TCHAR03 PIC S9 (5)V9 (4) COMP-3. SAS-TCHAR07 PIC S9(5)V9(4) COMP-3. COBOL Procedure DiVision (1) MOVE ZERO TO FI-RAW-SCORE (1) MOVE SPACES TO SAS-CHAR-AREA EVALUATE FI-SCRD-ID (1) WHEN 201 TCHAR01 SCORECARD 201 PERFORM SAS-TCHAR01-ROUTINE IF SAS-TCHAR01 NOT NUMERIC ADD SAS-TCHAROl-201-OTHER TO FI-RAW-SCORE (1) ELSE SEARCH SAS-TCHAROl-201-TBL VARYING SAS-TCHAROl-20l-SUB AT END ADD SAS-TCHAROl-20l-OTHER TO FI-RAW-SCORE (1) WHEN SAS-TCHAROl-201-MAX (SAS-TCHAROl-201-SUB) >= SAS-TCHAR01 ADD SAS-TCHAROl-201-ATTR (SAS-TCHAROl-201-SUBI TO FI-RAW-SCORE (1) END-SEARCH TCHAR02 SCORECARD 201 COBOL Procedure DiVision (2) SAS-TCHAR01-ROUTINE. TEST RANGE MEAN FLOOR MIN * SECOND LINE OF COMMENT CONVERT SAS RANGE FUNCTION MOVE SPACES TO SAS-TOTALR MOVE SPACES TO SAS-TOTALX (1) IF BCM-BAL-HIST-AMT-DUE(51 NUMERIC IF SAS-TOTAL1 NOT NUMERIC OR BCM-BAL-HIST-AMT-DUE(s) > SAS-TOTAL1 MOVE BCM-BAL-HIST-AMT-DUE(s) TO SAS-TOTALl IF SAS-TOTALO NOT NUMERIC OR BCM-BAL-HIST-AMT-DUE(s) < SAS-TOTALD MOVE BCM-BAL-HIST-AMT-DUE(SI TO SAS-TOTALO IF BCM-BAL-HIST-AMT-DUE(4) NUMERIC IF SAS-TOTAL1 NOT NUMERIC OR BCM-BAL-HIST-AMT-DUE(4) > SAS-TOTALl MOVE BCM-BAL-HIST-~-DUE(4) TO SAS-TOTALl IF SAS-TOTALO NOT NUMERIC OR BCM-BAL-HIST-AMT-DUE (4) < SAS-TOTALO MOVE BCM-BAL-HIST-AM!-DUE(4) TO SAS-TOTALO IF BCM-BAL-HIST-AMT-DUE(3) NUMERIC IF SAS-TOTAL1 NOT NUMERIC OR BCM-BAL-HIST-AMT-DUE(3) > SAS~TOTAL1 MOVE BCM-BAL-HIST-AMT-DUE(3) TO SAS-TOTALl IF SAS-TOTALO NOT NUMERIC OR BCM-BAL-HIST-AMT-DUE(3) < SAS-TOTALO MOVE BCM-BAL-HIST-AM!-DUE(3) TO SAS-TOTALO IF SAS-TOTALO NUMERIC COMPUTE SAS-TOTAL1 = SAS-TOTALl - SA5-TOTALO CONVERT SAS MEAN FUNCTION MOVE ZERO TO SA5-TOTALO MOVE SPACES TO SAS-TOTALX (2) PERFORM VARYING SAS-SUB FROM 1 BY 1 UNTIL SAS-SUB >= 5 IF BCM-BAL-HIST-AMT-DUE (SAS-SUB) NUMERIC IF SAS-TOTAL2 NOT NUMERIC MOVE BCM-BAL-HIST-AMT-DUE (SAS-SUB) TO SAS-TOTAL2 ELSE ADD BCM-BAL-HIST-AMT-DUE (SAS-SUB) TO SAS-TOTAL2 ADD 1 TO SAS-TOTALO END-PERFORM IF SAS-TOTALO > ZERO COMPUTE SAS-TOTAL2 = SAS-TOTAL2 / SAS-TOTALO CONVERT SAS MAX FUNCTION MOVE SPACES TO SAS-TOTALX (3) IF BCM-TIMES-60 NUMERIC IF SAS-TOTAL3 NOT NUMERIC OR BCM-TIMES-60 > SA5-TOTAL3 MOVE BCM-TIMES-60 TO SAS-TOTAL3 IF BCM-TIMES-50 NUMERIC IF SAS-TOTAL3 NOT NUMERIC OR BCM-TIMES-SO > SAS-TOTAL3 MOVE BCM-TIMES-sO TO SAS-TOTAL3 CONVERT SAS FLOOR FUNCTION MOVE BCM-RAW-SCORE(l) TO SAS-TOTALO IF SAS-INTEGER > SCM-RAW-SCORE(l) COMPUTE SA5-TOTAL4 = SAS-INTEGER - 1 ELSE MOVE SAS-INTEGER TO SAS-T0TAL4 IF SAS-TOTAL1 > 3.3 COMPUTE SAS-TCHAROl = SAS-TOTAL2 + (SAS-TOTAL3 + SAS-TOTAL4) ELSE COMPUTE SAS-TCHAROl

USING SAS SOFTWARE TO COMPARE STRINGS OF VOLSERS IN A JCL JOB AND A TSO CLIST

USING SAS SOFTWARE TO COMPARE STRINGS OF VOLSERS IN A JCL JOB AND A TSO CLIST USING SAS SOFTWARE TO COMPARE STRINGS OF VOLSERS IN A JCL JOB AND A TSO CLIST RANDALL M NICHOLS, Mississippi Dept of ITS, Jackson, MS ABSTRACT The TRANSLATE function of SAS can be used to strip out punctuation

More information

Base and Advance SAS

Base and Advance SAS Base and Advance SAS BASE SAS INTRODUCTION An Overview of the SAS System SAS Tasks Output produced by the SAS System SAS Tools (SAS Program - Data step and Proc step) A sample SAS program Exploring SAS

More information

Chapter 2 INTERNAL SORTS. SYS-ED/ Computer Education Techniques, Inc.

Chapter 2 INTERNAL SORTS. SYS-ED/ Computer Education Techniques, Inc. Chapter 2 INTERNAL SORTS SYS-ED/ Computer Education Techniques, Inc Objectives You will learn: Sorting - role and purpose Advantages and tradeoffs associated with an internal and external sort How to code

More information

Appendix B WORKSHOP. SYS-ED/ Computer Education Techniques, Inc.

Appendix B WORKSHOP. SYS-ED/ Computer Education Techniques, Inc. Appendix B WORKSHOP SYS-ED/ Computer Education Techniques, Inc. 1 ISPF/PDF Environment 1. Log on to ISPF/PDF; different installations have different logon procedures. 1.1. The ISPF/PDF Primary Option Menu

More information

SAS CURRICULUM. BASE SAS Introduction

SAS CURRICULUM. BASE SAS Introduction SAS CURRICULUM BASE SAS Introduction Data Warehousing Concepts What is a Data Warehouse? What is a Data Mart? What is the difference between Relational Databases and the Data in Data Warehouse (OLTP versus

More information

Contents. About This Book...1

Contents. About This Book...1 Contents About This Book...1 Chapter 1: Basic Concepts...5 Overview...6 SAS Programs...7 SAS Libraries...13 Referencing SAS Files...15 SAS Data Sets...18 Variable Attributes...21 Summary...26 Practice...28

More information

BASICS BEFORE STARTING SAS DATAWAREHOSING Concepts What is ETL ETL Concepts What is OLAP SAS. What is SAS History of SAS Modules available SAS

BASICS BEFORE STARTING SAS DATAWAREHOSING Concepts What is ETL ETL Concepts What is OLAP SAS. What is SAS History of SAS Modules available SAS SAS COURSE CONTENT Course Duration - 40hrs BASICS BEFORE STARTING SAS DATAWAREHOSING Concepts What is ETL ETL Concepts What is OLAP SAS What is SAS History of SAS Modules available SAS GETTING STARTED

More information

COMPUTER EDUCATION TECHNIQUES, INC. (COBOL_QUIZ- 4.8) SA:

COMPUTER EDUCATION TECHNIQUES, INC. (COBOL_QUIZ- 4.8) SA: In order to learn which questions have been answered correctly: 1. Print these pages. 2. Answer the questions. 3. Send this assessment with the answers via: a. FAX to (212) 967-3498. Or b. Mail the answers

More information

Checking for Duplicates Wendi L. Wright

Checking for Duplicates Wendi L. Wright Checking for Duplicates Wendi L. Wright ABSTRACT This introductory level paper demonstrates a quick way to find duplicates in a dataset (with both simple and complex keys). It discusses what to do when

More information

JCL MOCK TEST JCL MOCK TEST III

JCL MOCK TEST JCL MOCK TEST III http://www.tutorialspoint.com JCL MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to JCL Framework. You can download these sample mock tests at your local

More information

COMPUTER EDUCATION TECHNIQUES, INC. (JCL ) SA:

COMPUTER EDUCATION TECHNIQUES, INC. (JCL ) SA: In order to learn which questions have been answered correctly: 1. Print these pages. 2. Answer the questions. 3. Send this assessment with the answers via: a. FAX to (212) 967-3498. Or b. Mail the answers

More information

JCL MOCK TEST JCL MOCK TEST IV

JCL MOCK TEST JCL MOCK TEST IV http://www.tutorialspoint.com JCL MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to JCL Framework. You can download these sample mock tests at your local

More information

Leave Your Bad Code Behind: 50 Ways to Make Your SAS Code Execute More Efficiently.

Leave Your Bad Code Behind: 50 Ways to Make Your SAS Code Execute More Efficiently. Leave Your Bad Code Behind: 50 Ways to Make Your SAS Code Execute More Efficiently. William E Benjamin Jr Owl Computer Consultancy, LLC 2012 Topic Groups Processing more than one file in each DATA step

More information

How SAS Thinks Neil Howard, Basking Ridge, NJ

How SAS Thinks Neil Howard, Basking Ridge, NJ Paper HW01_05 How SAS Thinks Neil Howard, Basking Ridge, NJ ABSTRACT The DATA step is the most powerful tool in the SAS system. Understanding the internals of DATA step processing, what is happening and

More information

How to Setup MTO/JCL Spooler Housekeeping Facility for Enterprise Server

How to Setup MTO/JCL Spooler Housekeeping Facility for Enterprise Server How to Setup MTO/JCL Spooler Housekeeping Facility for Enterprise Server Overview You can configure your enterprise server so when your region starts a CICS transaction called JCL1 runs automatically to

More information

Using the PowerExchange CallProg Function to Call a User Exit Program

Using the PowerExchange CallProg Function to Call a User Exit Program Using the PowerExchange CallProg Function to Call a User Exit Program 2010 Informatica Abstract This article describes how to use the PowerExchange CallProg function in an expression in a data map record

More information

X/Open CAE Specification

X/Open CAE Specification X/Open CAE Specification X/Open Company, Ltd. December 1991, X/Open Company Limited All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in

More information

Copyright Network Management Forum

Copyright Network Management Forum SPIRIT Platform Blueprint SPIRIT COBOL Language Portability Guide (SPIRIT Issue 3.0) Network Management Forum Copyright December 1995, Network Management Forum All rights reserved. No part of this publication

More information

SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (File-AID ) IDX: Page 1

SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (File-AID ) IDX: Page 1 A Accessing File-AID... 2:1 Accessing the VSAM Utility - Option 3.5... 3:4 Allocating a VSAM Cluster... 3:1 Allocation Parameters - Extended... 3:8 Allocation Parameters - Verifying... 3:7 AND Conditions

More information

JCL Syntax Running a Simple Job

JCL Syntax Running a Simple Job JCL Statements Lesson 2: JCL consists of eight basic statements which serve specific functions. The following JCL statements will be used: JOB The job statement defines a job and provides information about

More information

A PROCEDURE FOR CREAT1NG TABLE LOOK-UP FUNCTIONS FROM SAS DATASETS A. D. Forbes, British Rail

A PROCEDURE FOR CREAT1NG TABLE LOOK-UP FUNCTIONS FROM SAS DATASETS A. D. Forbes, British Rail A PROCEDURE FOR CREAT1NG TABLE LOOK-UP FUNCTIONS FROM SAS DATASETS A. D. Forbes, British Rail Introduction Many SAS applications make use of codes to store values of variables and often it is convenient

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 10 For Loops and Arrays Outline Problem: How can I perform the same operations a fixed number of times? Considering for loops Performs same operations

More information

Compilers Project 3: Semantic Analyzer

Compilers Project 3: Semantic Analyzer Compilers Project 3: Semantic Analyzer CSE 40243 Due April 11, 2006 Updated March 14, 2006 Overview Your compiler is halfway done. It now can both recognize individual elements of the language (scan) and

More information

1. In COMAL language programs, parameters after name of procedure must be put in A. brackets B. back-slash C. insecure data D.

1. In COMAL language programs, parameters after name of procedure must be put in A. brackets B. back-slash C. insecure data D. 1. In COMAL language programs, parameters after name of procedure must be put in A. brackets B. back-slash C. insecure data D. punctuation marks 2. Programming language COBOL works best if used for A.

More information

CA Application Quality and Testing Tools

CA Application Quality and Testing Tools CA Application Quality and Testing Tools Symbolic Guide Version 9.1.00 This Documentation, which includes embedded help systems and electronically distributed materials (hereinafter referred to as the

More information

TABLE 1 HANDLING. Chapter SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

TABLE 1 HANDLING. Chapter SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC. TABLE 1 HANDLING Chapter SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC Objectives You will learn: C C C C C C When to use a table How to allocate and initialize a table Differences between a subscripted and

More information

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS

INTRODUCTION TO SAS HOW SAS WORKS READING RAW DATA INTO SAS TO SAS NEED FOR SAS WHO USES SAS WHAT IS SAS? OVERVIEW OF BASE SAS SOFTWARE DATA MANAGEMENT FACILITY STRUCTURE OF SAS DATASET SAS PROGRAM PROGRAMMING LANGUAGE ELEMENTS OF THE SAS LANGUAGE RULES FOR SAS

More information

Paper CC16. William E Benjamin Jr, Owl Computer Consultancy LLC, Phoenix, AZ

Paper CC16. William E Benjamin Jr, Owl Computer Consultancy LLC, Phoenix, AZ Paper CC16 Smoke and Mirrors!!! Come See How the _INFILE_ Automatic Variable and SHAREBUFFERS Infile Option Can Speed Up Your Flat File Text-Processing Throughput Speed William E Benjamin Jr, Owl Computer

More information

Review Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Review Chapters 1 to 4. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Review Chapters 1 to 4 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Introduction to Java Chapters 1 and 2 The Java Language Section 1.1 Data & Expressions Sections 2.1 2.5 Instructor:

More information

CA-MetaCOBOL + Online Programming Language Guide. Release 1.1 R203M+11DRP

CA-MetaCOBOL + Online Programming Language Guide. Release 1.1 R203M+11DRP CA-MetaCOBOL + Online Programming Language Guide Release 1.1 R203M+11DRP -- PROPRIETARY AND CONFIDENTIAL INFORMATION -- This material contains, and is part of a computer software program which is, proprietary

More information

CA JCLCheck Workload Automation CA RS 1407 Service List

CA JCLCheck Workload Automation CA RS 1407 Service List CA JCLCheck Workload Automation 12.0 1 CA RS 1407 Service List Description Type 12.0 RO68503 DFSORT TOLERATION PARAMETERS PTF RO68838 MISSING Z/OS 2.1 REXX VARIABLES PTF RO68839 MISSING Z/OS 2.1 REXX VARIABLES

More information

Shapes leading to CAD system project

Shapes leading to CAD system project EXERCISES Shapes leading to CAD system project Strings leading to distribution control project Tables leading to infinite precision arithmetic project Conversions leading to instrument control project

More information

Summarizing Impossibly Large SAS Data Sets For the Data Warehouse Server Using Horizontal Summarization

Summarizing Impossibly Large SAS Data Sets For the Data Warehouse Server Using Horizontal Summarization Summarizing Impossibly Large SAS Data Sets For the Data Warehouse Server Using Horizontal Summarization Michael A. Raithel, Raithel Consulting Services Abstract Data warehouse applications thrive on pre-summarized

More information

PROGRAM-ID. BILLING. AUTHOR. GEORGE FOWLER-ED CHRISTENSON. INSTALLATION. TEXAS A & M UNIVERSITY-CSUS. DATE-WRITTEN.

PROGRAM-ID. BILLING. AUTHOR. GEORGE FOWLER-ED CHRISTENSON. INSTALLATION. TEXAS A & M UNIVERSITY-CSUS. DATE-WRITTEN. * WHEN KEYING A COBOL PROGRAM, THERE ARE TWO MARGINS THAT * * REQUIRE CONSIDERATION. THE 'A' MARGIN (COLUMNS 8 TO 11) AND * * THE 'B' MARGIN (COLUMNS 12 TO 72). ALL DIVISION NAMES, * * SECTION NAMES, PARAGRAPH

More information

JCL JOB CONTROL LANGUAGE

JCL JOB CONTROL LANGUAGE Mainframe Concepts:- What is Mainframe Difference between Open source Applications and Mainframe Application Where do we use Mainframe Applications Operating System information Resource Access Control

More information

Excel 2013 Essentials Syllabus

Excel 2013 Essentials Syllabus Excel 2013 Essentials Syllabus Lesson 1 Managing Workbooks & Worksheets 1.1 Introduction Lesson content; What is a spreadsheet? The course folders; The course player; Before you start. 1.2 The Excel 2013

More information

Homework #3 CS2255 Fall 2012

Homework #3 CS2255 Fall 2012 Homework #3 CS2255 Fall 2012 MULTIPLE CHOICE 1. The, also known as the address operator, returns the memory address of a variable. a. asterisk ( * ) b. ampersand ( & ) c. percent sign (%) d. exclamation

More information

Moving a Large SAS System Into an MVS Production Environment The Trials and Tribulations

Moving a Large SAS System Into an MVS Production Environment The Trials and Tribulations Moving a Large SAS System Into an MVS Production Environment The Trials and Tribulations Bernard Gardocki and Stephen Rhoades IMS HEALTH Inc., Plymouth Meeting, Pa ABSTRACT It is not the role, or responsibility

More information

More Programming Constructs -- Introduction

More Programming Constructs -- Introduction More Programming Constructs -- Introduction We can now examine some additional programming concepts and constructs Chapter 5 focuses on: internal data representation conversions between one data type and

More information

Imelda C. Go, South Carolina Department of Education, Columbia, SC

Imelda C. Go, South Carolina Department of Education, Columbia, SC PO 082 Rounding in SAS : Preventing Numeric Representation Problems Imelda C. Go, South Carolina Department of Education, Columbia, SC ABSTRACT As SAS programmers, we come from a variety of backgrounds.

More information

Name :. Roll No. :... Invigilator s Signature : INTRODUCTION TO PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70

Name :. Roll No. :... Invigilator s Signature : INTRODUCTION TO PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 Name :. Roll No. :..... Invigilator s Signature :.. 2011 INTRODUCTION TO PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give

More information

XQ: An XML Query Language Language Reference Manual

XQ: An XML Query Language Language Reference Manual XQ: An XML Query Language Language Reference Manual Kin Ng kn2006@columbia.edu 1. Introduction XQ is a query language for XML documents. This language enables programmers to express queries in a few simple

More information

Control/SE. Concepts and Facilities Guide. July, Via De Albur Court Suite 100 El Paso, TX P. (800) F.

Control/SE. Concepts and Facilities Guide. July, Via De Albur Court Suite 100 El Paso, TX P. (800) F. Control/SE Concepts and Facilities Guide July, 2015 6416 Via De Albur Court Suite 100 El Paso, TX 79912 P. (800) 252-1400 F. (915) 845-7918 Support@marblecomputer.com www.marblecomputer.com Table of Contents

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information

Paper SAS Programming Conventions Lois Levin, Independent Consultant, Bethesda, Maryland

Paper SAS Programming Conventions Lois Levin, Independent Consultant, Bethesda, Maryland Paper 241-28 SAS Programming Conventions Lois Levin, Independent Consultant, Bethesda, Maryland ABSTRACT This paper presents a set of programming conventions and guidelines that can be considered in developing

More information

Applications Development

Applications Development AD003 User Implementation and Revision of Business Rules Without Hard Coding: Macro-Generated SAS Code By Michael Krumenaker, Sr. Project Manager, Palisades Research, Inc. and Jit Bhattacharya, Manager

More information

z/os Db2 Batch Design for High Performance

z/os Db2 Batch Design for High Performance Division of Fresche Solutions z/os Db2 Batch Design for High Performance Introduction Neal Lozins SoftBase Product Manager All tests in this presentation were run on a dedicated zbc12 server We used our

More information

A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes

A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes A SAS Macro for Producing Benchmarks for Interpreting School Effect Sizes Brian E. Lawton Curriculum Research & Development Group University of Hawaii at Manoa Honolulu, HI December 2012 Copyright 2012

More information

for (i=1; i<=100000; i++) { x = sqrt (y); // square root function cout << x+i << endl; }

for (i=1; i<=100000; i++) { x = sqrt (y); // square root function cout << x+i << endl; } Ex: The difference between Compiler and Interpreter The interpreter actually carries out the computations specified in the source program. In other words, the output of a compiler is a program, whereas

More information

Techdata Solution. SAS Analytics (Clinical/Finance/Banking)

Techdata Solution. SAS Analytics (Clinical/Finance/Banking) +91-9702066624 Techdata Solution Training - Staffing - Consulting Mumbai & Pune SAS Analytics (Clinical/Finance/Banking) What is SAS SAS (pronounced "sass", originally Statistical Analysis System) is an

More information

ASG-Rochade SCANCOB Release Notes

ASG-Rochade SCANCOB Release Notes ASG-Rochade SCANCOB Release Notes Version 3.10.007 March 8, 2007 CO31100-310 This publication contains information about all modifications made to ASG-Rochade SCANCOB (herein called SCANCOB) since Version

More information

Normalized Relational Database Implementation of VSAM Indexed Files

Normalized Relational Database Implementation of VSAM Indexed Files Normalized Relational Database Implementation of VSAM Indexed Files Note: this discussion applies to Microsoft SQL Server, Oracle Database and IBM DB2 LUW. Impediments to a Normalized VSAM Emulation Database

More information

ECE 30 Introduction to Computer Engineering

ECE 30 Introduction to Computer Engineering ECE 30 Introduction to Computer Engineering Study Problems, Set #3 Spring 2015 Use the MIPS assembly instructions listed below to solve the following problems. arithmetic add add sub subtract addi add

More information

Functions. Arash Rafiey. September 26, 2017

Functions. Arash Rafiey. September 26, 2017 September 26, 2017 are the basic building blocks of a C program. are the basic building blocks of a C program. A function can be defined as a set of instructions to perform a specific task. are the basic

More information

Effectively Utilizing Loops and Arrays in the DATA Step

Effectively Utilizing Loops and Arrays in the DATA Step Paper 1618-2014 Effectively Utilizing Loops and Arrays in the DATA Step Arthur Li, City of Hope National Medical Center, Duarte, CA ABSTRACT The implicit loop refers to the DATA step repetitively reading

More information

More About SAS Macros

More About SAS Macros More About SAS Macros (Than You Thought Possible) Donald P. Gallogly DCBS IMD Topics The SAS Macros System Macro Variables Writing Macros The SAS Macros System The SAS Macros System SAS macros and macro

More information

Reading data in SAS and Descriptive Statistics

Reading data in SAS and Descriptive Statistics P8130 Recitation 1: Reading data in SAS and Descriptive Statistics Zilan Chai Sep. 18 th /20 th 2017 Outline Intro to SAS (windows, basic rules) Getting Data into SAS Descriptive Statistics SAS Windows

More information

Introduction to Computer Science Midterm 3 Fall, Points

Introduction to Computer Science Midterm 3 Fall, Points Introduction to Computer Science Fall, 2001 100 Points Notes 1. Tear off this sheet and use it to keep your answers covered at all times. 2. Turn the exam over and write your name next to the staple. Do

More information

Accessing Data and Creating Data Structures. SAS Global Certification Webinar Series

Accessing Data and Creating Data Structures. SAS Global Certification Webinar Series Accessing Data and Creating Data Structures SAS Global Certification Webinar Series Accessing Data and Creating Data Structures Becky Gray Certification Exam Developer SAS Global Certification Michele

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

C Language, Token, Keywords, Constant, variable

C Language, Token, Keywords, Constant, variable C Language, Token, Keywords, Constant, variable A language written by Brian Kernighan and Dennis Ritchie. This was to be the language that UNIX was written in to become the first "portable" language. C

More information

Excel 2016 Essentials Syllabus

Excel 2016 Essentials Syllabus Excel 2016 Essentials Syllabus Lesson 1 Creating & Managing Workbooks & Worksheets 1.1 Introduction Lesson content; What is a spreadsheet? The course folders; The course player; Screen resolution notes.

More information

Compiler Design. Computer Science & Information Technology (CS) Rank under AIR 100

Compiler Design. Computer Science & Information Technology (CS) Rank under AIR 100 GATE- 2016-17 Postal Correspondence 1 Compiler Design Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,

More information

CS111: PROGRAMMING LANGUAGE II

CS111: PROGRAMMING LANGUAGE II CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 1(c): Java Basics (II) Lecture Contents Java basics (part II) Conditions Loops Methods Conditions & Branching Conditional Statements A

More information

STATION

STATION ------------------------------STATION 1------------------------------ 1. Which of the following statements displays all user-defined macro variables in the SAS log? a) %put user=; b) %put user; c) %put

More information

COBOL - TABLE PROCESSING

COBOL - TABLE PROCESSING COBOL - TABLE PROCESSING http://www.tutorialspoint.com/cobol/cobol_table_processing.htm Copyright tutorialspoint.com Arrays in COBOL are known as tables. An array is a linear data structure and is collection

More information

Creating a procedural computer program using COBOL Level 2 Notes for City & Guilds 7540 Unit 005

Creating a procedural computer program using COBOL Level 2 Notes for City & Guilds 7540 Unit 005 Creating a procedural computer program using COBOL Level 2 Notes for City & Guilds 7540 Unit 005 Compatible with Micro Focus Net Express 5.0 COBOL compiler Version 1 Tench Computing Ltd Pines Glendale

More information

Lecture 2. Examples of Software. Programming and Data Structure. Programming Languages. Operating Systems. Sudeshna Sarkar

Lecture 2. Examples of Software. Programming and Data Structure. Programming Languages. Operating Systems. Sudeshna Sarkar Examples of Software Programming and Data Structure Lecture 2 Sudeshna Sarkar Read an integer and determine if it is a prime number. A Palindrome recognizer Read in airline route information as a matrix

More information

Using a Harness to control execution

Using a Harness to control execution On LinkedIn in July 2018 a question was raised as to the possibility of controlling the execution of a Job Step from within a COBOL program. The case presented was of a three step job where the second

More information

SAS Programming Conventions Lois Levin, Independent Consultant

SAS Programming Conventions Lois Levin, Independent Consultant SAS Programming Conventions Lois Levin, Independent Consultant INTRODUCTION This paper presents a set of programming conventions and guidelines that can be considered in developing code to ensure that

More information

Buffer overflow prevention, and other attacks

Buffer overflow prevention, and other attacks Buffer prevention, and other attacks Comp Sci 3600 Security Outline 1 2 Two approaches to buffer defense Aim to harden programs to resist attacks in new programs Run time Aim to detect and abort attacks

More information

PDSUPDTE. 4. When the length of STRING2 is less than that of STRING1, blanks are inserted after the next pool of two blanks following STRING1.

PDSUPDTE. 4. When the length of STRING2 is less than that of STRING1, blanks are inserted after the next pool of two blanks following STRING1. PDSUPDTE PDSUPDTE is a batch card image tailoring procedure and is designed to change selected fields in JCL and control statements contained in libraries (Partitioned Datasets). Control statements can

More information

Contents. Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs

Contents. Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs SAS Data Step Contents Overview How SAS processes programs Compilation phase Execution phase Debugging a DATA step Testing your programs 2 Overview Introduction This section teaches you what happens "behind

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

Chapter 1 RUNNING A SIMPLE JOB. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 RUNNING A SIMPLE JOB. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 RUNNING A SIMPLE JOB SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: z/os operating system and resource management. The role and functions of JCL. How to code basic JCL

More information

IBM. Data Sheet. Enterprise COBOL for z/os. Version 6.2

IBM. Data Sheet. Enterprise COBOL for z/os. Version 6.2 Enterprise COBOL for z/os IBM Data Sheet Version 6.2 Enterprise COBOL for z/os IBM Data Sheet Version 6.2 Third edition (January 2018) This edition applies to Version 6 Release 2 of IBM Enterprise COBOL

More information

ECE264 Spring 2013 Final Exam, April 30, 2013

ECE264 Spring 2013 Final Exam, April 30, 2013 ECE264 Spring 2013 Final Exam, April 30, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing

More information

work.test temp.test sasuser.test test

work.test temp.test sasuser.test test DSCI 325 Midterm Practice Test Spring 2017 Name: 1. Consider the following four names used to create a SAS data set: work.test temp.test sasuser.test test How many of these will be stored as permanent

More information

Computer Associates SRAM Sort Emulation

Computer Associates SRAM Sort Emulation Batch Mainframe applications in COBOL or PL/1 may use CA s SRAM sort on the mainframe. Mainframe Express does not support SRAM by default. SRAM sort is compatible to DFSORT (only the process of invocation

More information

PSI Compiler Programmer s Guide

PSI Compiler Programmer s Guide PSI Compiler Programmer s Guide May 28, 2018 Contents 1 Overview 2 2 Programming Style 3 3 Data Structures 4 3.1 Tokens (symbol t,emit t)...................................... 4 3.2 The Symbol Table.........................................

More information

Interactive Systems. NESUG '96 Proceedings ROUND PEGS INTO SQUARE HOLES: DATA WAREHOUSES FOR THE HARDWARE IMPAIRED

Interactive Systems. NESUG '96 Proceedings ROUND PEGS INTO SQUARE HOLES: DATA WAREHOUSES FOR THE HARDWARE IMPAIRED ROUND PEGS INTO SQUARE HOLES: DATA WAREHOUSES FOR THE HARDWARE IMPAIRED Michael Davis Bassett Consulting Services, Inc. Abstract One of the dirty secrets of most data warehouse projects is that they require

More information

Algorithms 4. Odd or even Algorithm 5. Greatest among three numbers Algorithm 6. Simple Calculator Algorithm

Algorithms 4. Odd or even Algorithm 5. Greatest among three numbers Algorithm 6. Simple Calculator Algorithm s 4. Odd or even Step 3 : If number divisible by 2 then Print "Number is Even" Step 3.1 : else Print "Number is Odd" Step 4 : Stop 5. Greatest among three numbers Step 2 : Read values of a, b and c Step

More information

COBOL 13. Language Summary. Version 0.01

COBOL 13. Language Summary. Version 0.01 COBOL 13 Language Summary Version 0.01 Bryan Silvia Theory of Programming Languages Alan Labouseur Due: 16 May 2013 1. Introduction COBOL traditionally stands for Completely Obsolete Burdensome Old Language.

More information

SUBSCRIPTING A 2-D Table A 3-D Table Laoding a Table The INITIALIZE Statement The Replacing Option...

SUBSCRIPTING A 2-D Table A 3-D Table Laoding a Table The INITIALIZE Statement The Replacing Option... IS SUBSCRIPTING... 1 A 2-D Table... 2 A 3-D Table... 2 Laoding a Table... 4 The INITIALIZE Statement... 5 The Replacing Option... 6 Initialising fixed length Tables... 6 Restrictions on the use of INITIALIZE...

More information

Programming - 1. Computer Science Department 011COMP-3 لغة البرمجة 1 لطالب كلية الحاسب اآللي ونظم المعلومات 011 عال- 3

Programming - 1. Computer Science Department 011COMP-3 لغة البرمجة 1 لطالب كلية الحاسب اآللي ونظم المعلومات 011 عال- 3 Programming - 1 Computer Science Department 011COMP-3 لغة البرمجة 1 011 عال- 3 لطالب كلية الحاسب اآللي ونظم المعلومات 1 1.1 Machine Language A computer programming language which has binary instructions

More information

WYSE Academic Challenge State Finals Computer Science 2007 Solution Set

WYSE Academic Challenge State Finals Computer Science 2007 Solution Set WYSE Academic Challenge State Finals Computer Science 2007 Solution Set 1. Correct answer: C. a) PGP is for encrypting documents, traditionally used for email. b) SSH is used to gain secure access to a

More information

SUGI 29 Data Warehousing, Management and Quality

SUGI 29 Data Warehousing, Management and Quality Building a Purchasing Data Warehouse for SRM from Disparate Procurement Systems Zeph Stemle, Qualex Consulting Services, Inc., Union, KY ABSTRACT SAS Supplier Relationship Management (SRM) solution offers

More information

String Instructions In Cobol Delimited By Spaces

String Instructions In Cobol Delimited By Spaces String Instructions In Cobol Delimited By Spaces The fourth division in a COBOL (sub)program is the PROCEDURE DIVISION, which of the instruction STOP RUN, or, in the case of a subprogram, EXIT PROGRAM,

More information

E-SRF. Security Signature Analysis. Release EKC Security Reporting Facility GENERAL AVAILABILITY. September 1, 2005 EKC Inc.

E-SRF. Security Signature Analysis. Release EKC Security Reporting Facility GENERAL AVAILABILITY. September 1, 2005 EKC Inc. E-SRF EKC Security Reporting Facility Security Signature Analysis Release 2.1.0 E-SRF V2R1M0 GENERAL AVAILABILITY September 1, 2005 EKC Inc. E-SRF is a proprietary product developed and maintained by EKC

More information

Develop a batch DB2 for z/os COBOL application using Rational Developer for System z

Develop a batch DB2 for z/os COBOL application using Rational Developer for System z Develop a batch DB2 for z/os COBOL application using Rational Developer for System z Make use of multiple Eclipse perspectives Skill Level: Intermediate Laurence England (englandl@us.ibm.com) STSM IBM

More information

SAS seminar. The little SAS book Chapters 3 & 4. April 15, Åsa Klint. By LD Delwiche and SJ Slaughter. 3.1 Creating and Redefining variables

SAS seminar. The little SAS book Chapters 3 & 4. April 15, Åsa Klint. By LD Delwiche and SJ Slaughter. 3.1 Creating and Redefining variables SAS seminar April 15, 2003 Åsa Klint The little SAS book Chapters 3 & 4 By LD Delwiche and SJ Slaughter Data step - read and modify data - create a new dataset - performs actions on rows Proc step - use

More information

APPENDIX E SOLUTION TO CHAPTER SELF-TEST CHAPTER 1 TRUE-FALSE FILL-IN-THE-BLANKS

APPENDIX E SOLUTION TO CHAPTER SELF-TEST CHAPTER 1 TRUE-FALSE FILL-IN-THE-BLANKS APPENDIX E SOLUTION TO CHAPTER SELF-TEST CHAPTER 1 2. F The AS/400 family of computers, as with all IBM midrange and mainframe computers, uses the EBCDIC coding system. 3. F Arrival sequence files do not

More information

CS101 Introduction to Programming Languages and Compilers

CS101 Introduction to Programming Languages and Compilers CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights

More information

Draw a diagram of an empty circular queue and describe it to the reader.

Draw a diagram of an empty circular queue and describe it to the reader. 1020_1030_testquestions.text Wed Sep 10 10:40:46 2014 1 1983/84 COSC1020/30 Tests >>> The following was given to students. >>> Students can have a good idea of test questions by examining and trying the

More information

Strings Investigating Memory Allocation Pointers Fixed-Point Arithmetic. Memory Matters. Embedded Systems Interfacing.

Strings Investigating Memory Allocation Pointers Fixed-Point Arithmetic. Memory Matters. Embedded Systems Interfacing. 22 September 2011 Strings Single character char ch; char ch = a ; char ch = 0x41; Array of characters char str[5]={ H, e, l, l, o }; Null-terminated string char str[ ]= Hello String Runtime Library #include

More information

CALL CLICK FAX MAIL P.O. Box 1213, New York, NY 10156

CALL CLICK FAX MAIL P.O. Box 1213, New York, NY 10156 File-AID s Microsoft Systems courses include: Programming Skills PC Emulation of Mainframe Software Telecommunications VSAM Database: IMS Client/Server for MVS Programming Languages Utilities & Development

More information

Source Listing Display. Chapter 2: Objectives

Source Listing Display. Chapter 2: Objectives Display Chapter 2: SYS-ED/Computer Education Techniques, Inc. 2: 1 Objectives You will learn: How to invoke a source listing. How to list ProtSym datasets. How to use the source listing. Configuring the

More information

Faculty of Engineering Computer Engineering Department Islamic University of Gaza C++ Programming Language Lab # 6 Functions

Faculty of Engineering Computer Engineering Department Islamic University of Gaza C++ Programming Language Lab # 6 Functions Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2013 C++ Programming Language Lab # 6 Functions C++ Programming Language Lab # 6 Functions Objective: To be familiar with

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard

FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 The data of the problem is of 2GB and the hard disk is of 1GB capacity, to solve this problem we should Use better data structures

More information