Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.
- Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
- Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
Plankalkül
Plankalkül | ||
Paradigma | imperatief | |
Verschenen in | 1948 | |
Ontworpen door | Konrad Zuse | |
Implementaties | Tot 2000 geen | |
Beïnvloed door | Gottlob Freges werk |
Plankalkül is een programmeertaal ontwikkeld door de Duitser Konrad Zuse. De ontwikkeling gebeurde tussen 1943 en 1945. Plankalkül was de eerste hogere programmeertaal. Vanwege de gaande Tweede Wereldoorlog en de commercialisering van Zuses Z3-computer werd de programmeertaal niet toen uitgebracht. Tegen 1946 had Zuse er een boek over geschreven dat niet gepubliceerd werd. In 1948 publiceerde hij wel een paper dat evenwel weinig aandacht kreeg. Hierdoor zou computerprogrammering nog lange tijd gezien worden als een zaak van machinecode. Pas in 1972 werd wijder over Plankalkül gepubliceerd. In 2000, vijf jaar nadat Zuse was overleden, werd de eerste Plankalkül-compiler geschreven door de Vrije Universiteit Berlijn.
Beschrijving
Plankalkül was beïnvloed door de relationele algebra. De notatie (in de oorspronkelijke vorm tweedimensionaal) was gelijkaardig aan die in Gottlob Freges Begriffsschrift uit 1879. De naam was een samentrekking van de Duitse woorden Plan en Kalkül.
De taal omvat onder meer:
- Arrays
- Asserties
- Condities (zonder else-statements)
- Zwevendekommabewerkingen
- Foutafhandeling
- Iteratie
- Recordstructuren
- subroutines
- Toekenning
Voorbeeld
Volgend voorbeeld berekent de hoogste waarde van drie variabelen door de functie
max aan te roepen:
P1 max3 (V0[:8.1],V1[:8.2],V2[:8.1]) => R0[:8.1]
max(V0[:8.5],V1[:8.4]) => Z1[:8.3]
max(Z1[:8.6],V2[:8.2]) => R0[:8.2]
END
P2 max (V0[:8.6],V1[:8.3]) => R0[:8.1]
V0[:8.0] => Z1[:8.4]
(Z1[:8.0] < V1[:8.3]) -> V1[:8.2] => Z1[:8.1]
Z1[:8.3] => R0[:8.2]
END
Zie ook
Externe links
- (en) delivery.acm.org
- (en) epemag.com