- Project Runeberg -  Teknisk Tidskrift / Årgång 90. 1960 /
1089

(1871-1962)
Table of Contents / Innehåll | << Previous | Next >>
  Project Runeberg | Catalog | Recent Changes | Donate | Comments? |   

Full resolution (JPEG) - On this page / på denna sida - 1960, H. 40 - Algol 60 — ett internationellt datamaskinsspråk, av Sven Yngvell

scanned image

<< 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 been proofread at least once. (diff) (history)
Denna sida har korrekturlästs minst en gång. (skillnad) (historik)


Den rapport som utarbetades härom mottogs
med mycket stort intresse, vilket i Europa
ledde till att datamaskintillverkare och
maskincentraler i ett flertal västeuropeiska länder
inledde samarbete för fortsatt utveckling av
denna preliminära version av Algol. Detta arbete
har bedrivits under ledning av Regnecentralen
i Köpenhamn. Motsvarande verksamhet i USA
har bedrivits under ledning av ACM. I januari
1960 samlades representanter för dessa båda
grupper till en konferens i Paris, vilken ledde
till att en definitiv version utformades under
namnet Algol 602.

Språknivåer

Man skiljer på tre nivåer av språket:

referensspråket i vilket Algol 60 definieras,

publikationsspråket som medger vissa
typografiska avvikelser, vilka ansluter sig till
konventionellt skrivsätt, samt

maskinrepresentationer vilkas avvikelser från
referensspråket betingas av att datamaskinens
inmatningsorgan endast förmår särskilja ett
begränsat antal tecken.

För de båda senare språkvarianterna gäller
att de entydigt skall kunna återföras på
referensspråket. Detta kommer att användas i det
följande.

Uppbyggnad

Ett program för Algol 60 är uppbyggt av satser
("statements") och deklarationer. Genom
satserna beskrives hur beräkningarna skall
utföras. Deklarationerna användes för att till
översättningsprogrammet ge upplysningar om de
i satserna ingående storheterna. Satser och
deklarationer åtskiljas från andra satser och
deklarationer genom semikolon.

Beräkningssats

Den enklaste satsen är beräkningssatsen
("assignment statement"), som används för att
tillordna värdet av ett uttryck till en variabel. Om
det exempelvis gäller att en storhet Ka kan
beräknas ur sambandet

Ka = Kn – (α + V) / (b + 1,2 p2)

blir den motsvarande beräkningssatsen

Ka := Kn – (alfa + V)/(b + 1.2 × p ↑ 2);

Definitionstecknet := har ej samma
betydelse som ett matematiskt likhetstecken, utan skall
snarare utläsas som "tillordnas".

Satsen n := n + 1; betyder alltså att n
tillordnas värdet n + 1.

Exponentiering utmärkes med symbolen ↑
Exempel: 2↑nm betyder (2n)m, 2 ↑ (nk)
betyder 2(nk).

I publikationsspråket utmärks exponentiering
på vanligt sätt.

Tal

Tal skrives på vanligt sätt, dock användes
decimalpunkt i stället för decimalkomma.
Talen kan även förses med tioexponent. Denna
sättes efter symbolen 10. Exempel: –17, –105,
10–5, 1.3810 + 4.

Namn

För benämning av storheter användes namn
("identifier"). Första symbolen i ett namn
måste vara en bokstav, varefter kan följa ett
godtyckligt antal bokstäver eller siffror.
Exempel: a, B17, k2N, Tolerans.

Fält

I ett uttryck kan förutom enkla variabler och
tal även ingå indicerade variabler och
funktioner. De indicerade variablerna är element i
flerdimensionella fält ("arrays"), exempelvis
vektorer, matriser o.d. Indices åtskiljas genom
kommatecken och sättas inom klammer efter
variabelnamnet. De kan endast anta
heltalsvärden. Exempel: A[k], Beta[j + 2, n × (n–1)],
p4[3, 8, i].

Typdeklaration

De i satserna ingående variablerna kan vara
av olika typer. Således kan en variabel endast
anta heltalsvärden, medan en annan kan anta
godtyckliga reella värden. Dessa egenskaper
anges genom en typdeklaration, för en variabel
av det första slaget genom symbolen integer
och för den andra genom symbolen real.
(Tryckning med fet stiltyp användes för att
utmärka symboler av ordtyp som ingår i Algol
60). En tredje typ, Boolean, är också möjlig.
Variabler av denna typ kan endast anta de
logiska värdena "sann" och "falsk". Exempel:
real Ka, Kn, alfa, B17; integer p, q2, n;

I ett aritmetiskt uttryck kan variabler av
både typ real och integer samtidigt förekomma.
Resultatet av en beräkning av ett sådant
blandat uttryck skall vara av samma typ som den
variabel som står till vänster om
definitionstecknet i beräkningssatsen. Är denna av
heltalstyp medan högerledet ger ett resultat som
ej är heltal, måste avrundning ske till närmaste
heltal.

Fältdeklaration

För indicerade variabler måste dessutom
minsta och största värden för indices anges genom
en fältdeklaration. Exempel:

array A, B[0:7], Beta[1:10, –1:N];

integer array p4[1:2, i:4, i:i + K];

Här är A och B båda vektorer med elementen
A0, A1, ... A7 resp. B0, B1, ... B7. Beta är en
matris och p4 ett tredimensionellt fält vars
element är av typ integer. Anges ingen typ vid
fältdeklarationen är elementen av typ real.

Villkorlig sats

Genom en villkorlig sats ("conditional
statement") möjliggöres vägval under
beräkningsgången.

Exempel:

if k ≥ 0 then c := a↑2 + b↑2 else c := 0;

Denna sats medför att c tillordnas värdet av
a2 + b2 om variabel k är större eller lika med 0.

<< prev. page << föreg. sida <<     >> nästa sida >> next page >>


Project Runeberg, Fri Oct 18 15:56:35 2024 (aronsson) (diff) (history) (download) << Previous Next >>
https://runeberg.org/tektid/1960/1115.html

Valid HTML 4.0! All our files are DRM-free