ALGOL: Det bästa språket du aldrig hört talas om

Avslöjande: Ditt stöd hjälper oss att hålla sidan igång! Vi tjänar en remissavgift för vissa av de tjänster vi rekommenderar på den här sidan. Läs mer

ALGOL är förmodligen det mest inflytelserika språket du aldrig hört talas om.

De andra viktiga språken från samma tid – Fortran, COBOL, Lisp – används fortfarande mycket (relativt sett).

ALGOL var viktigt i sin egen rätt, särskilt inom akademin och matematiken. Men dess största inflytande har varit på utvecklingen av andra språk. De flesta språk som används idag har något att tacka ALGOL för

Bryt historia om ALGOL

ALGOL uppfanns ursprungligen i slutet av 1950-talet, av en gemensam kommitté av amerikanska och europeiska datavetare som träffades i Zürich. Deras arbete släpptes som det språk som nu är känt som ALGOL 58.

En andra version av gruppen, känd som ALGOL 60, blev den standardversion av språket som används allmänt.

Denna version, som beskrevs i den numera berömda ALGOL 60-rapporten, hade en djupgående inverkan på området för utformning av programmeringsspråk. ALGOL 68, den sista ”officiella” versionen av språket, togs inte väl emot av ALGOL-gemenskapen.

ALGOL slog aldrig riktigt igenom inom affärsprogrammering, bortsett från vissa matematiska analystillämpningar som används av finansindustrin.

Det användes dock i stor utsträckning inom akademisk datavetenskap och matematik, och var standardspråket för algoritmiska beskrivningar långt in på 1980- och 90-talen.

ALGOL:s inflytande på andra språk

ALGOL:s syntax och struktur påverkade direkt ett antal andra språk, som har kommit att kallas ”Algol-liknande” språk.

Dessa språk inkluderar Simula, C, Pascal och Ada. Vissa av dessa kopplingar är ganska direkta: Pascal, till exempel, utvecklades av Niklaus Wirth, som tidigare hade byggt ett ALGOL-derivat som kallades ALGOL W.

Den mest kända medlemmen av denna grupp är C, som har gett upphov till en egen familj av derivat och efterföljare: C++, C#, Objective-C och D – för att bara nämna några. Syntaxen i PHP är också baserad på C, vilket innebär att det mest använda serverbaserade språket på Internet spårar sin härstamning tillbaka till ALGOL.

Ännu mer djupgående påverkade ALGOL det sätt på vilket programmeringsspråk uppfattas och beskrivs.

Datorforskaren John Backus föreslog en grammatikbeskrivning för ALGOL (PDF), som användes i ALGOL 60 Report, redigerad av Peter Naur. Detta beskrivningsspråk blev känt som Backus-Naur Form (BNF). BNF, och EBNF (”extended”), är nu det standardiserade sättet att beskriva grammatiken för ett formellt språk.

ALGOL-resurser

ALGOL är ett gammalt, mestadels föråldrat språk, och därför kan det vara mycket svårt att hitta resurser och tillförlitlig information om det. Som tur är behöver du inte göra det. Vi har letat igenom internet för att ge dig de viktigaste resurserna för att lära dig om ALGOL.

Historiska handledningar

Alla värdefulla handledningar om ALGOL skrevs för länge sedan. Tack och lov har de bästa av dem skannats in och gjorts tillgängliga på nätet.

  • A Course of Algol 60 Programming (PDF) är en handledning om språket, skriven av Peter Naur, redaktör för den ursprungliga ALGOL 60 Report (se nedan)

  • Informal Introduction to ALGOL 68, Revised Edition (PDF) av Lindsey och Meulen, publicerades ursprungligen 1977, och finns nu gratis tillgänglig online

  • Programming Algol 68 Made Easy (PDF) av Sian Leitch, är en annan klassisk bok

  • A Tutorial on Algol 68 (PDF) är en tidskriftsartikel från 1976, som både ger en introduktion till språket och en glimt av datorernas historia.

Compilatorer

  • Algol 68 Genie är en modern, plattformsoberoende ALGOL-kompilator – förmodligen det enklaste sättet att börja arbeta med ALGOL på din dator; missa inte Learning Algol 68 Genie (PDF) av Marcel van der Veer, som innehåller en språkhandledning och exempelprogram

  • Exekvera Algol Online med Algol-tolkaren i webbläsaren från Tutorials Point

  • Algol-68 to C är en portabel översättare/kompilator, så att du kan köra ALGOL 68 i alla miljöer med en C-kompilator

  • Z80 ALGOL Compiler med en virtuell maskin, för att köra ALGOL på MS-DOS.

Exempel på ALGOL-program

  • Hello World! and Compute the Mean, skrivet i ALGOL för Unisys (Burroughs) A-series mainframe

  • 99 Bottles of Beer on the Wall, programmerat i ALGOL 68 och i ALGOL 60

  • Sieve of Eratosthenes in ALGOL 60 visar ett exempelprogram för att hitta primtal i ALGOL.

Historiska resurser

  • Report on the Algorithmic Language ALGOL 60 (PDF) redigerad av Peter Naur, är det ursprungliga definitionsdokumentet för språket – ett måste för alla ALGOL-forskare; Revised Report (PDF) är den slutliga, officiella definitionen av språket. Revised Report finns också i en modern kritisk utgåva med korrigerade felaktigheter (PDF)

  • Algol68.org är en webbplats som är tillägnad språket, med många ytterligare resurser och material

  • The History of ALGOL project by the Software Preservation Group innehåller en mängd ALGOL-material, inklusive originalartiklar, kompilatorer, artiklar, tillämpningar med mera.

Böcker om ALGOL

  • A Guide to ALGOL Programming (1962) av Daniel McCracken är en bok som täcker ALGOL 60

  • Programming – ALGOL (1969) av D J Malcolme-Lawes är en tidig handbok för allmänheten om språket, och innehåller en historiskt fascinerande introduktion till datorteknik

  • Programming and Problem-Solving in Algol 68 (1978) av Andrew JT Colin är en bok som introducerar både dataprogrammering i allmänhet och ALGOL i synnerhet

  • An Introduction to Algol 68 Through Problems (2014) av Learner och Powell introducerar även den dataprogrammering med ALGOL, med hjälp av en serie praktiska datorproblem

  • Programmering genom fallstudier: An Algol Primer (1969) av Chedzoy och Ford är en annan introduktion till programmering med hjälp av ALGOL, men med tonvikt på matematik.

ALGOL and Other Languages

  • Handbook and Guide for Comparing and Selecting Computer Languages (1990) av James Ogden ger en intressant jämförelse av egenskaper, styrkor och svagheter hos Basic, FORTRAN, Pascal, COBOL, PL/1, APL, ALGOL-60 och C

  • Numerical Methods of Mathematical Optimization (1968) redigerad av Kunzi et al täcker matematisk beräkning med hjälp av både FORTRAN och ALGOL

  • Data Structures of Pascal, ALGOL 68, PL/1 and Ada (1986) av Lewi och Paredaens, täcker underliggande begrepp, inte praktiska programmeringsexempel, i de ingående språken

  • FORTRAN, PL/I and the Algols (1979) av Brian Meek jämför dessa tre viktiga språkfamiljer

  • Expert C Programming: Deep C Secrets (1994) av Peter van der Linden innehåller intressanta detaljer om det inflytande som ALGOL hade på utvecklingen av C

  • Algol-like Languages Volume 1 (1996) and Volume 2 (1997) redigerad av O’Hearn och Tennent är en samling essäer som utforskar ALGOL:s historia och dess inflytande på utvecklingen av andra programmeringsspråk.

Sammanfattning

ALGOL är inte ett språk du behöver lära dig för att få ett jobb eller för att bli en framgångsrik utvecklare. Det hade dock ett enormt inflytande på både praktik och teori inom datorprogrammering.

Om du är intresserad av språkdesign eller datavetenskapens historia är ALGOL en viktig peksten att känna till.

Fortsatt läsning och resurser

Vi har fler guider, handledningar och infografik med anknytning till kodning och utveckling:

  • Fortranresurser: ett av de allra första högnivåspråken, som fortfarande används flitigt inom vetenskaplig programmering.

  • COBOL Introduktion och resurser: det klassiska programmeringsspråket för företag.

  • Prolog Resurser: Prolog var ett tidigt logiskt programmeringsspråk.

Vilken kod ska du lära dig?

Förvirrad över vilket programmeringsspråk du ska lära dig att koda i? Kolla in vår infografik, Vilken kod ska du lära dig? Den diskuterar inte bara olika aspekter av språken, utan svarar också på viktiga frågor som ”Hur mycket pengar kommer jag att tjäna på att programmera Java?”

Lämna en kommentar