ALGOL: The Best Language You’ve Never Heard Of

Disclosure: Il tuo supporto aiuta a mantenere il sito in funzione! Guadagniamo un compenso per alcuni dei servizi che raccomandiamo in questa pagina. Impara di più

ALGOL è probabilmente il linguaggio più influente di cui non hai mai sentito parlare.

Gli altri importanti linguaggi della stessa epoca – Fortran, COBOL, Lisp – sono ancora molto usati (relativamente parlando).

ALGOL era importante di per sé, specialmente nel mondo accademico e nella matematica. Ma la sua più grande influenza è stata sullo sviluppo di altri linguaggi. La maggior parte dei linguaggi in uso oggi deve qualcosa ad ALGOL

Breve storia di ALGOL

ALGOL fu originariamente inventato alla fine degli anni 50, da un comitato congiunto di scienziati informatici americani ed europei, riuniti a Zurigo. Il loro lavoro fu rilasciato come il linguaggio ora conosciuto come ALGOL 58.

Una seconda versione del gruppo, conosciuta come ALGOL 60, divenne la versione standard del linguaggio di uso comune.

Questa versione, descritta nell’ormai famoso ALGOL 60 Report, ebbe un profondo impatto sul campo della progettazione del linguaggio di programmazione. ALGOL 68, l’ultima versione “ufficiale” del linguaggio non fu ben accolta dalla comunità ALGOL.

ALGOL non ha mai preso piede nella programmazione aziendale, a parte alcune applicazioni di analisi matematica usate dall’industria finanziaria.

Era, tuttavia, ampiamente usato nell’informatica accademica e nella matematica, ed era il linguaggio standard per la descrizione algoritmica fino agli anni ’80 e ’90.

L’influenza di Algol su altri linguaggi

La sintassi e la struttura di Algol hanno influenzato direttamente un certo numero di altri linguaggi, che sono diventati noti come linguaggi “Algol-like”.

Questi linguaggi includono Simula, C, Pascal e Ada. Alcune di queste connessioni sono abbastanza dirette: Il Pascal, per esempio, è stato sviluppato da Niklaus Wirth, che aveva precedentemente costruito un derivato dell’ALGOL chiamato ALGOL W.

Il membro più famoso di questo gruppo è il C, che ha generato la propria famiglia di derivati e discendenti: C++, C#, Objective-C e D – per nominarne solo alcuni. Anche la sintassi di PHP è basata su C, il che significa che il linguaggio lato server più usato su internet traccia la sua discendenza da ALGOL.

Ancora più profondamente, ALGOL ha influenzato il modo in cui i linguaggi di programmazione sono concepiti e descritti.

Lo scienziato informatico John Backus propose una descrizione grammaticale per ALGOL (PDF), che fu usata nell’ALGOL 60 Report, curato da Peter Naur. Questo linguaggio di descrizione divenne noto come Backus-Naur Form (BNF). BNF, e EBNF (“esteso”), è ora il modo standard di descrivere la grammatica di un linguaggio formale.

Risorse ALGOL

ALGOL è un vecchio linguaggio, per lo più obsoleto, e quindi può essere molto difficile trovare risorse e informazioni affidabili su di esso. Per tua fortuna, non devi farlo. Abbiamo setacciato internet per portarti le risorse più importanti per imparare ALGOL.

Tutorial storici

Tutti i tutorial utili su ALGOL sono stati scritti molto tempo fa. Fortunatamente, i migliori sono stati scannerizzati e resi disponibili online.

  • A Course of Algol 60 Programming (PDF) è un tutorial sul linguaggio, scritto da Peter Naur, l’editore dell’originale ALGOL 60 Report (vedi sotto)

  • Informal Introduction to ALGOL 68, Revised Edition (PDF) di Lindsey e Meulen, fu originariamente pubblicato nel 1977, ed è ora disponibile gratuitamente online

  • Programming Algol 68 Made Easy (PDF) di Sian Leitch, è un altro libro classico

  • A Tutorial on Algol 68 (PDF) è un articolo di giornale del 1976, che fornisce sia un’introduzione al linguaggio che uno sguardo alla storia del calcolo.

Compilatori

  • Algol 68 Genie è un moderno compilatore ALGOL multipiattaforma – probabilmente il modo più semplice per iniziare a lavorare con ALGOL sul tuo computer; non perderti Learning Algol 68 Genie (PDF) di Marcel van der Veer, che include un tutorial del linguaggio e programmi di esempio

  • Esegui Algol Online con l’interprete Algol in-browser di Tutorials Point

  • Algol-68 to C è un traduttore/compilatore portatile, che permette di eseguire ALGOL 68 in qualsiasi ambiente con un compilatore C

  • Z80 ALGOL Compiler con una macchina virtuale, per eseguire ALGOL su MS-DOS.

Programmi ALGOL di esempio

  • Ciao mondo! e Compute the Mean, scritto in ALGOL per il mainframe Unisys (Burroughs) serie A

  • 99 Bottles of Beer on the Wall, programmato in ALGOL 68 e in ALGOL 60

  • Sieve of Eratosthenes in ALGOL 60 mostra un programma di esempio per trovare numeri primi in ALGOL.

Risorse storiche

  • Report on the Algorithmic Language ALGOL 60 (PDF) a cura di Peter Naur, è il documento originale di definizione del linguaggio – una lettura obbligatoria per ogni ricercatore ALGOL; il Revised Report (PDF) fornisce la definizione finale e ufficiale del linguaggio; il Revised Report è anche disponibile in un’edizione critica contemporanea con errori corretti (PDF)

  • Algol68.org è un sito web dedicato al linguaggio, con molte risorse e materiale aggiuntivo

  • il progetto History of ALGOL del Software Preservation Group include una raccolta di materiale ALGOL, inclusi documenti originali, compilatori, articoli, applicazioni e altro.

Libri su ALGOL

  • A Guide to ALGOL Programming (1962) di Daniel McCracken è un libro che copre ALGOL 60

  • Programming – ALGOL (1969) di D J Malcolme-Lawes è un primo manuale per tutti sul linguaggio, e include un’introduzione storicamente affascinante alla tecnologia dei computer

  • Programming and Problem-Solving in Algol 68 (1978) di Andrew JT Colin è un libro entry-level che introduce sia la programmazione dei computer in generale che ALGOL in particolare

  • An Introduction to Algol 68 Through Problems (2014) di Learner e Powell introduce anche alla programmazione dei computer usando ALGOL, usando una serie di problemi pratici di calcolo

  • Programming by Case Studies: An Algol Primer (1969) di Chedzoy e Ford è un’altra introduzione alla programmazione tramite ALGOL, ma con un’enfasi sulla matematica.

ALGOL and Other Languages

  • Handbook and Guide for Comparing and Selecting Computer Languages (1990) di James Ogden fornisce un interessante confronto delle proprietà, forze e debolezze di Basic, FORTRAN, Pascal, COBOL, PL/1, APL, ALGOL-60, e C

  • Numerical Methods of Mathematical Optimization (1968) a cura di Kunzi et al copre il calcolo matematico usando sia FORTRAN che ALGOL

  • Data Structures of Pascal, ALGOL 68, PL/1 e Ada (1986) di Lewi e Paredaens, copre i concetti di base, non esempi pratici di programmazione, nei linguaggi inclusi

  • FORTRAN, PL/I and the Algols (1979) di Brian Meek confronta queste tre importanti famiglie di linguaggi

  • Expert C Programming: Deep C Secrets (1994) di Peter van der Linden include interessanti dettagli sull’influenza che ALGOL ebbe sullo sviluppo del C

  • Algol-like Languages Volume 1 (1996) e Volume 2 (1997) a cura di O’Hearn e Tennent è una raccolta di saggi che esplorano la storia di ALGOL e la sua influenza sullo sviluppo di altri linguaggi di programmazione.

Sommario

ALGOL non è un linguaggio che devi imparare per ottenere un lavoro o per essere uno sviluppatore di successo. Tuttavia, è stato enormemente influente sia nella pratica che nella teoria della programmazione dei computer.

Se siete interessati al design del linguaggio o alla storia dell’informatica, ALGOL è un’importante pietra di paragone da conoscere.

Altre letture e risorse

Abbiamo altre guide, tutorial e infografiche relative alla codifica e allo sviluppo:

  • Risorse sul Fortran: uno dei primissimi linguaggi ad alto livello, ancora ampiamente usato nella programmazione scientifica.

  • Cobol Introduzione e risorse: il classico linguaggio di programmazione aziendale.

  • Prolog Risorse: Prolog era un primo linguaggio di programmazione logica.

Che codice dovresti imparare?

Confuso su quale linguaggio di programmazione dovresti imparare a scrivere? Dai un’occhiata alla nostra infografica, Quale codice dovresti imparare? Non solo discute i diversi aspetti dei linguaggi, ma risponde a domande importanti come, “Quanti soldi farò programmando Java per vivere?”

.

Lascia un commento