martedì 25 novembre 2008

Breve storia sui linguaggi di programmazione


I primi calcolatori elettronici, nati nel 1940, erano enormi, riempivano una stanza, consumavano tantissima energia e costavano milioni di dollari.
A quel tempo i programmatori scrivevano codice direttamente in linguaggio macchina.
Il linguaggio macchina è una sequenza di bit direttamente controllato da processore per eseguire istruzioni di add, compare e move sui dati.

Es. la somma tra due registri in linguaggio macchina
0000 00ss ssst tttt dddd d000 0010 0000

Successivamente nasce l'assembly ideato per consentire di esprimere operazioni con abbreviazioni menmoniche.

Es. la somma tra due registri in linguaggio assembly
add $d, $s, $t
MIPS Instruction Reference

Inizialmente il linguaggio assembly era caratterizzato da una corrispondenza uno ad uno tra istruzioni menmoniche e istruzioni linguaggio macchina.
Ognuna dell’istruzione assembly veniva codificata nell'istruzione corrispondente del linguaggio macchina.
La traduzione( interpretazione ) tra linguaggio menmonico e linguaggio macchina è affidato ad un processo di sistema chiamato assemblatore(assembler).
Con lo sviluppo dei computers diventava veramente frustrante per i programmatori doversi riscrivere il programma in ogni assembly per poterlo far eseguire su architetture diverse.
Così matura l'idea di avere un linguaggio indipendente dalla macchina.
L'obbiettivo viene raggiunto negli anni '50 con Fortran il primo linguaggio d’alto livello indipendente dalla macchina, seguirono altri linguaggio con Lisp ed Angol.
La traduzione da linguaggio d’alto livello in linguaggio assembly o linguaggio macchina è effettuata da un processo di sistema chiamato compilatore(compiler).
Il compilatore è, sostanzialmente, più complicato dell'assembler, la corrispondenza uno a uno con le istruzioni del linguaggio macchina non esiste più quando il sorgente è di alto livello. Ricordiamo che il linguaggio assembly e' soltanto un'interpretazione menmonica del linguaggio macchina e può essere scavalcato in modo da far produrre direttamente al compilatore linguaggio macchina, ma si preferisce far generare codice assembly per comodità e poter utilizzare più facilmente il debugger.
Inizialmente Fortran non ha avuto tanto successo perché i programmatori preferivano scrivere programmi più efficienti direttamente in assembly, ma con lo sviluppo dei computer, il crescere della complessità dell'hardware e il miglioramento della tecnologia dei compilatori si è arrivato al punto che il codice generato dalla compilazione risulta essere migliore da quello implementato da un sviluppatore assembly.

Ref.
Programming Launguage Pragmatics, Michael L. Scott, University of Rochester

Daniele Licari

Nessun commento: