ALGOL: Det bedste sprog, du aldrig har hørt om

Afsløring: Din støtte hjælper med at holde siden kørende! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side. Læs mere

ALGOL er sandsynligvis det mest indflydelsesrige sprog, du aldrig har hørt om.

De andre vigtige sprog fra samme tid – Fortran, COBOL, Lisp – bliver stadig brugt meget (relativt set).

ALGOL var vigtigt i sin egen ret, især inden for den akademiske verden og matematikken. Men dets største indflydelse har været på udviklingen af andre sprog. De fleste sprog, der er i brug i dag, skylder ALGOL noget

Brief historie om ALGOL

ALGOL blev oprindeligt opfundet i slutningen af 1950’erne af et fælles udvalg af amerikanske og europæiske dataloger, der mødtes i Zürich. Deres arbejde blev udgivet som det sprog, der nu er kendt som ALGOL 58.

En anden udgave af gruppen, kendt som ALGOL 60, blev den standardversion af sproget, der er almindeligt anvendt.

Denne version, der er beskrevet i den nu berømte ALGOL 60-rapport, havde en dybtgående indflydelse på området for programmeringssprogdesign. ALGOL 68, den sidste “officielle” version af sproget, blev ikke godt modtaget af ALGOL-fællesskabet.

ALGOL slog aldrig rigtig igennem inden for forretningsprogrammering, bortset fra nogle matematiske analyseapplikationer, der blev brugt af finansindustrien.

Det blev dog flittigt brugt inden for akademisk datalogi og matematik og var standardsprog til algoritmisk beskrivelse langt ind i 1980’erne og 90’erne.

ALGOL’s indflydelse på andre sprog

ALGOL’s syntaks og struktur havde direkte indflydelse på en række andre sprog, som er blevet kendt som “Algol-lignende” sprog.

Disse sprog omfatter Simula, C, Pascal og Ada. Nogle af disse forbindelser er ret direkte: Pascal blev f.eks. udviklet af Niklaus Wirth, som tidligere havde udviklet et ALGOL-derivat kaldet ALGOL W.

Det mest berømte medlem af denne gruppe er C, som har affødt sin egen familie af derivater og efterkommere: C++, C#, Objective-C og D – for blot at nævne nogle få. Syntaksen i PHP er også baseret på C, hvilket betyder, at det mest anvendte serverside-sprog på internettet kan spore sin afstamning tilbage til ALGOL.

Mere dybtgående har ALGOL påvirket den måde, programmeringssprog opfattes og beskrives på.

Datalog John Backus foreslog en grammatikbeskrivelse for ALGOL (PDF), som blev anvendt i ALGOL 60 Report, redigeret af Peter Naur. Dette beskrivelsessprog blev kendt som Backus-Naur Form (BNF). BNF, og EBNF (“udvidet”), er nu standardmetoden til at beskrive grammatikken i et formelt sprog.

ALGOL-ressourcer

ALGOL er et gammelt, for det meste forældet sprog, og derfor kan det være meget svært at finde ressourcer og pålidelige oplysninger om det. Heldigvis for dig behøver du ikke at gøre det. Vi har gennemsøgt internettet for at give dig de vigtigste ressourcer til at lære om ALGOL.

Historiske tutorials

Alle værdifulde tutorials om ALGOL blev skrevet for lang tid siden. Heldigvis er de bedste af dem blevet scannet og gjort tilgængelige online.

  • A Course of Algol 60 Programming (PDF) er en tutorial om sproget, skrevet af Peter Naur, redaktør af den oprindelige ALGOL 60 Report (se nedenfor)

  • Informal Introduction to ALGOL 68, Revised Edition (PDF) af Lindsey og Meulen, blev oprindeligt udgivet i 1977, og er nu tilgængelig gratis online

  • Programming Algol 68 Made Easy (PDF) af Sian Leitch, er en anden klassisk bog

  • A Tutorial on Algol 68 (PDF) er en tidsskriftsartikel fra 1976, som både giver en introduktion til sproget og et glimt af computerhistorien.

Compilere

  • Algol 68 Genie er en moderne ALGOL-compiler på tværs af platforme – sandsynligvis den nemmeste måde at komme i gang med at arbejde med ALGOL på din computer; gå ikke glip af Learning Algol 68 Genie (PDF) af Marcel van der Veer, som indeholder en sprogvejledning og eksempelprogrammer

  • Udfør Algol Online med in-browser Algol-fortolkeren fra Tutorials Point

  • Algol-68 to C er en bærbar oversætter/kompiler, der giver dig mulighed for at køre ALGOL 68 i ethvert miljø med en C-compiler

  • Z80 ALGOL Compiler med en virtuel maskine, til at køre ALGOL på MS-DOS.

Eksempel på ALGOL-programmer

  • Hello World! and Compute the Mean, skrevet i ALGOL til Unisys (Burroughs) A-series mainframe

  • 99 Bottles of Beer on the Wall, programmeret i ALGOL 68 og i ALGOL 60

  • Sieve of Eratosthenes in ALGOL 60 viser et eksempelprogram til at finde primtal i ALGOL.

Historiske ressourcer

  • Report on the Algorithmic Language ALGOL 60 (PDF) redigeret af Peter Naur, er det oprindelige definitionsdokument for sproget – et must-read for enhver ALGOL-efterforsker; den reviderede rapport (PDF) er den endelige, officielle definition af sproget; den reviderede rapport findes også i en moderne kritisk udgave med korrigerede errata (PDF)

  • Algol68.org er et websted dedikeret til sproget, med masser af yderligere ressourcer og materiale

  • The History of ALGOL project by the Software Preservation Group indeholder et væld af ALGOL-materiale, herunder originale artikler, compilere, artikler, applikationer og meget mere.

Bøger om ALGOL

  • A Guide to ALGOL Programming (1962) af Daniel McCracken er en bog, der dækker ALGOL 60

  • Programming – ALGOL (1969) af D J Malcolme-Lawes er en tidlig håndbog om sproget til det brede publikum, og indeholder en historisk fascinerende introduktion til computerteknologi

  • Programming and Problem-Solving in Algol 68 (1978) af Andrew JT Colin er en bog på begynderniveau, der introducerer både computerprogrammering i almindelighed og ALGOL i særdeleshed

  • An Introduction to Algol 68 Through Problems (2014) af Learner og Powell introducerer også computerprogrammering med ALGOL, ved hjælp af en række praktiske computerproblemer

  • Programmering ved hjælp af casestudier: An Algol Primer (1969) af Chedzoy og Ford er en anden introduktion til programmering ved hjælp af ALGOL, men med vægt på matematikken.

ALGOL and Other Languages

  • Handbook and Guide for Comparing and Selecting Computer Languages (1990) af James Ogden indeholder en interessant sammenligning af egenskaber, styrker og svagheder ved Basic, FORTRAN, Pascal, COBOL, PL/1, APL, ALGOL-60 og C

  • Numerical Methods of Mathematical Optimization (1968) redigeret af Kunzi et al dækker matematisk beregning ved hjælp af både FORTRAN og ALGOL

  • Data Structures of Pascal, ALGOL 68, PL/1 and Ada (1986) af Lewi og Paredaens, dækker de underliggende begreber, ikke praktiske programmeringseksempler, i de inkluderede sprog

  • FORTRAN, PL/I and the Algols (1979) af Brian Meek sammenligner disse tre vigtige sprogfamilier

  • Expert C Programming: Deep C Secrets (1994) af Peter van der Linden indeholder interessante detaljer om den indflydelse, som ALGOL havde på udviklingen af C

  • Algol-like Languages Volume 1 (1996) og Volume 2 (1997) redigeret af O’Hearn og Tennent er en samling af essays, der udforsker ALGOL’s historie og dets indflydelse på udviklingen af andre programmeringssprog.

Summary

ALGOL er ikke et sprog, som man skal lære for at få et job eller for at blive en succesfuld udvikler. Men det har haft enorm indflydelse på både praksis og teori inden for computerprogrammering.

Hvis du er interesseret i sprogdesign eller computervidenskabens historie, er ALGOL en vigtig berøringssten, som det er vigtigt at kende.

Videre læsning og ressourcer

Vi har flere vejledninger, tutorials og infografikker relateret til kodning og udvikling:

  • Fortran Resources: Et af de allerførste højniveausprog, der stadig er meget anvendt inden for videnskabelig programmering.

  • COBOL Introduktion og ressourcer: Det klassiske programmeringssprog til erhvervslivet.

  • Prolog Ressourcer: Prolog var et tidligt logisk programmeringssprog.

Hvilken kode skal du lære?

Er du i tvivl om, hvilket programmeringssprog du skal lære at kode i? Tjek vores infografik, Hvilken kode skal du lære? Den diskuterer ikke kun forskellige aspekter af sprogene, den besvarer også vigtige spørgsmål som: “Hvor mange penge vil jeg tjene på at programmere Java som levebrød?”

Skriv en kommentar