Full resolution (JPEG) - On this page / på denna sida - Software: COBOL kontra PL/1, av Bo Erdén
<< prev. page << föreg. sida << >> nästa sida >> next page >>
Below is the raw OCR text
from the above scanned image.
Do you see an error? Proofread the page now!
Här nedan syns maskintolkade texten från faksimilbilden ovan.
Ser du något fel? Korrekturläs sidan nu!
This page has never been proofread. / Denna sida har aldrig korrekturlästs.
DATABEHANDLING 10/1967 g
att dagens operativsystem erbjuder
möjligheter att samtidigt köra flera
helt oberoende jobb i en maskin. Det
gäller då att ett jobb ej upptar för stor
del av den tillgängliga CPU-tiden, då
detta menligt kommer att inverka på
möjligheten att utnyttja
operativsystemets fördelar.
Låt oss så studera de program som
konstruerats för att denna jämförelse
skulle kunna utföras. Två typer av
program ansågs nödvändiga för att vi
skulle kunna göra en utvärdering, dels
ett redigeringsprogram och dels ett
beräkningsprogram.
Redigeringsprogrammet avsåg att
framställa en fingerad registerhandling
bestående av 10 tryckrader. Varje
tryckrad har en för oss representativ
datafördelning, dvs. blandad numerisk
och alfabetisk information. Själva
re-digeringsunderlaget bestod av en
fingerad registerpost som konstruerats
och lagts som en fast del av
programmet, dvs. samma registerpost
utgjorde grundstommen för varje
redige-ringscykel.
Beräkningsprogrammet bestod i
framställning av en så kallad lathund för
bilpremie, dvs. en slags prislista över
bilförsäkringspremier, totalt
omfattande ca 3 000 tal.
Programmen skrevs med tanke på vår
kommande körningsbild. Det innebar
att programmens resultat skrevs ut på
magnetband. I PL/1 användes den
ut-matningsteknik som kallas ”RECORD
l/O”. Redigeringsprogrammet skrevs
med högsta optimeringsgrad,
utgående från ett fast registerpostutseende.
PL/1-programmen skrevs av en
programmerare som hade varit sysselsatt
med språket under ett år.
COBOL-programmen skrevs av en
programmerare som ej hade varit sysselsatt
med problemorienterade språk
tidigare, men själva riktlinjerna för
programmeringen drogs upp med erfarenhet
från tidigare COBOL-kompilatorer.
Beräkningsprogrammet som skrevs i
PL/1 skrevs om flera gånger och
optimeringen drevs här mycket långt.
De framställda programmen har körts
på IBM 360 på följande sätt. På
modell 40 har PL/1-kompilatorerna
”re-lease” (= nivå) 2 och ”pre-release” 3
använts för framställning av
maskinkod; på modell 50 enbart ”release” 2
Tabell 1: Tid i sekunder för respektive bearbetning.
M40/2 M40/3 M50/2 M50/3*
PL/1 COBOL PL/1 COBOL PL/1 COBOL PL/1 COBOL
Redigering dummy 10,0 0,6 5,0 0,6 4,2 0,3 2,1 0,3
Redigering band 13,5 7,0 8,9 7,0 6,7 5,8 — 5,8
Beräkning dummy 61,6 10,0 30,0 10,0 24,9 4,6 12,1 4,6
Beräkning band 63,7 13,0 31,9 12,2 26,1 6,7 — 6,7
Tabell 2, Relationer.
Redigering Dummy Redigering band Cobol = 1 ger för PL/1 PL/1 = 1 ger för COBOL
M40/2 M40/3 M50/2 M50/3* M40/2 M40/3 M50/2 M50/3*
16,66 1,92 8,33 1,27 14,00 1,15 7,00 0,06 0,51 0,12 0,78 0,07 0,86 0,14
Beräkning Dummy 6,16 3,00 5,41 2,63 0,16 0,33 0,18 0,38
Beräkning band 4,90 2,61 3,90 — 0,20 0,38 0,26 —
* Dessa värden beräknade på bas av relationerna mellan release 2 och pre-relesae 3 i modell 40.
Teckenförklaring:
M40/2: bearbetning körd på modell 40
och PL/1 ”release” 2 har använts
för framtagning av programmet.
dummy: undertryckning av själva
ut-matningsoperationen. Man erhåller
härmed enbart CPU-tiden.
band: resultatet har skrivits på
magnetband.
Vilka slutsatser kan man dra av
dessa resultat? Låt oss först studera
siffrorna i tabell 1 och 2 litet närmare.
av PL/1-kompilatorn. Samma
COBOL-kompilator har använts på båda
modellerna.
Bearbetningstiderna som erhölls
framgår av tabell 1 och 2.
Från körningen av
beräkningsprogrammet kan vi konstatera följande:
— En förbättring av resultatet mellan
PL/1 ”release” 2- och ”pre-release"
3-kod med en faktor 2.
— att COBOL-koden enligt tabell 2
är 3 gånger snabbare än
motsvarande PL/1 ”pre-release” 3 kod.
— att både PL/1 och COBOL har
genererat kod som ger
bearbetnings-’ bundenhet. Detta framgår av
tids
<< prev. page << föreg. sida << >> nästa sida >> next page >>