Contenuto
L'obiettivo di qualsiasi linguaggio di programmazione è trasformare un costoso computer fermacarte in un utile dispositivo di elaborazione e archiviazione dei dati. Il linguaggio scelto per svolgere questo compito deve essere bilanciato tra efficienza e facilità d'uso. Il linguaggio macchina rappresenta le estremità dello spettro per entrambi i fattori.
Linguaggio macchina
Il linguaggio macchina produce l'unico insieme di istruzioni che un computer comprende senza un traduttore. I computer sono in grado di riprodurre audio e video, elaborare e memorizzare dati, comunicare con Internet ed eseguire altre attività specializzate, rispondendo a una serie di istruzioni che riconosce solo uno e zero. Scrivere centinaia di righe di codice con solo uno e zero è un compito noioso che contribuisce alla popolarità dei linguaggi di alto livello, come C e Java.
Vantaggi iniziali
Il primo personal computer IBM era dotato di 512 KB di memoria ad accesso casuale e di un'unità floppy da 360 KB. Dopo che il sistema operativo è stato caricato in memoria dal disco floppy, i programmi sono stati caricati nello spazio di memoria rimanente, lasciando una piccola area di RAM, solitamente inferiore a 100 KB, affinché il programma attivo elabori i dati. Durante quel periodo, la preoccupazione principale di un programmatore era creare codice conciso ed efficiente. Lo strumento di programmazione più utilizzato su questi computer era il linguaggio macchina, che può essere notevolmente più piccolo di una versione scritta in BASIC o C. Era anche un po 'più semplice usare il linguaggio assembly.
Dipendenza dalla piattaforma
Il linguaggio macchina punta direttamente all'hardware del computer, dando al programmatore il controllo completo di ogni aspetto dell'esecuzione di un programma. Lo svantaggio di questo approccio è che il programmatore deve conoscere l'architettura di ogni insieme di circuiti integrati (chipset) per scrivere codice efficace. Quando un componente come una scheda video o un controller del disco viene modificato, il codice deve essere aggiornato per riconoscere e utilizzare il nuovo dispositivo.
Linguaggi di alto livello
I vantaggi della velocità e del basso utilizzo della memoria del linguaggio macchina sono controbilanciati dalla difficoltà di scrivere istruzioni a livello di chip in codice binario. La disponibilità di gigabyte di RAM e terabyte di memoria ha eliminato la necessità di codice conciso ed efficiente sui moderni personal computer. La memoria aggiuntiva e le richieste di archiviazione dei programmi scritti in linguaggi di alto livello, come C e Java, non sono più un fattore importante nella scelta di una piattaforma di sviluppo. La facilità d'uso e la manutenzione sono fattori preferiti per la velocità e l'efficienza nella maggior parte dei progetti software moderni.