Linguaggi di programmazione di alto e basso livello

Programming Languages Used In Most Famous Websites

Linguaggi di programmazione di alto e basso livello

1

Vediamo quali sono e che differenze ci sono fra i linguaggi di programmazione di alto livello e quelli di basso livello.

Per programmare i primi computer, esistevano solo linguaggio di programmazione di basso livello: ma cosa sono in realtà? E che differenza c’è con quelli ad alto livello?

Linguaggio di programmazione di basso livello

Il termine alto o basso livello, non si riferisce come si potrebbe erroneamente pensare alla qualità o alla potenza del linguaggio; bensì alla sua comprensione.

Un linguaggio a basso livello, è un linguaggio appartentente ad un sottoinsieme chiamato di basso livello e si basa su istruzioni che sono più comprensibili per la macchina che per il programmatore.

Non a caso infattii, per basso ed alto livello ci si riferisce al grado di astrazione fra il linguaggio considerato ed il linguaggio macchina.

Messi a confronto, i linguaggi a basso livello sono molto più difficili in quanto richiedono molti più parametri da conoscere e da tenere in considerazione rispetto a quelli ad alto livello: questo però, si traduce anche in una minore richiesta di risorse e un minor peso nel programma finale.

Il linguaggio di programmazione a basso livello per eccellenza è l’assembly.

Linguaggi di programmazione ad alto livello

Questa categoria di linguaggi, è sicuramente più facile da imparare in quanto richiede meno conoscenze ed è inoltre più comprensibile: più avanti faremo un confronto con un esempio nei due linguaggi.

Ad ogni modo, come abbiamo già visto, quando diciamo alto livello ci riferiamo al grado di astrazione: questi linguaggi infatti, sono più comprensibili per il programmatore.

Questo non solo ci permette di facilitare il porting da un sistema operativo (o meglio proprio computer) all’altro, ma inoltre ci permette anche più facilmente di modificarli.

Il fatto è che programmando per esempio in assembly, dobbiamo conoscere fisicamente come è fatto il nostro computer e, dato il grado di complessità a cui siamo arrivati, non sembre si dimostra un compito facile.

Il confronto

Vediamo un’esempio di hello world di un linguaggio di programmazione ad alto livello, il C:

#include <stdio.h>
main()
{
printf('Hello, World');
}

Lo stesso equivalente in assembly con sintassi intel (preso da wikipedia):

IDEAL
MODEL SMALL
STACK 100h
DATASEG
    HW      DB      "Hello, world", 13, 10, '$'
CODESEG
Begin:
    MOV AX, @data
    MOV DS, AX
    MOV DX, OFFSET HW
    MOV AH, 09H
    INT 21H
    MOV AX, 4C00H
    INT 21H
END Begin

Come potete notare, il secondo codice è decisamente più lungo e difficile nonostante la semplice operazione che vogliamo fare.

La differenza fra i due però è che, anche se questi programmi sono molto piccoli, il secondo verrà eseguito più velocemente del primo.

Nei sistemi importanti, dove ogni istante è veramente importante (come per esempio nelle catene di montaggio) spesso viene scelto un linguaggio a basso livello proprio per la sua velocità – di certo non per la semplicità.

 

About the Author

Federico PonziStudente, Webmaster ed appassionato di tutto ciò che è informatico con una spruzzata di scienza.View all posts by Federico Ponzi

Leave a Reply