MainframeSupports
tip uge 44/2009:

Tildeling af værdier til variable sker i PL/I ved at benytte et assignment statement. I COBOL derimod findes der en mangfoldighed af statements til at tildele værdier til variable, som eksempelvis MOVE, ADD, COMPUTE og SUBTRACT. En af de mest udbredte statements i alle programmeringssprog er at tælle en variabel een op. I COBOL sker det med ADD 1 TO VARIABLE. I PL/I sker det med VARIABLE = VARIABLE + 1. Men med version 3 af PL/I er det faktisk blevet muligt at skrive VARIABLE += 1 for at opnå præcis det samme.

Version 3 af PL/I er bedre kendt som Enterprise PL/I og udkom i 1998. Da implementeringen af en ny version af software for PL/I er en langsommelig affære, er der gået nogen år før version 3 er nået helt frem til os programmører. Det var faktisk først for nylig, at jeg opdagede, at et assignment statement er blevet udvidet med et compound assignment statement, som giver mulighed for at addere, multiplicere, subtrahere, dividere og concatenere en variabel med forkortet syntax:

DCL X FIXED BIN(31);
X = 1;
X += 1;
X -=1;
X *= 2;
X /= 2;
PUT SKIP LIST('X='!!X);
DCL A CHAR(10) VAR;
A = 'ABC';
A !!= 'DEF';
A !!= 'GHIJ';
PUT SKIP LIST('A='!!A);

De to PUT statements vil udskrive hhv. X= 1 og A=ABCDEFGHIJ. Alt i alt kan compound statements spare dig for lidt skrivearbejde. Samtidig gør det PL/I lettere at kapere for C-programmører, som er bekendt med denne syntaks, og som PL/I lab'et har tyvstjålet. Hvis du tror, at det også gør dit PL/I program hurtigere at eksekvere, bliver du lettere skuffet. PL/I compileren har de sidste 25 år (eller mere) været i stand til at gennemskue, at X=X+1 er lig ADD 1 TO X og genereret den tilsvarende mest effektive kode.

Forrige danske tip        Last tip in english        Tip oversigten