3 Maggio 2021 11:31

Linguaggio assembly

Che cos’è un linguaggio assembly?

Un linguaggio assembly è un tipo di linguaggio di programmazione di basso livello destinato a comunicare direttamente con l’hardware di un computer. A differenza del linguaggio macchina, che consiste di caratteri binari ed esadecimali, i linguaggi assembly sono progettati per essere leggibili dagli esseri umani.

I linguaggi di programmazione di basso livello come il linguaggio assembly sono un ponte necessario tra l’hardware sottostante di un computer e i linguaggi di programmazione di livello superiore, come Python o JavaScript, in cui sono scritti i programmi software moderni.

Punti chiave

  • Un linguaggio assembly è un tipo di linguaggio di programmazione che traduce linguaggi di alto livello in linguaggio macchina.
  • È un ponte necessario tra i programmi software e le loro piattaforme hardware sottostanti.
  • Oggi, i linguaggi di assemblaggio vengono scritti raramente direttamente, sebbene siano ancora utilizzati in alcune applicazioni di nicchia, ad esempio quando i requisiti di prestazioni sono particolarmente elevati.

Come funzionano i linguaggi di assemblaggio

Fondamentalmente, le istruzioni più elementari eseguite da un computer sono codici binari, costituiti da uno e zero. Questi codici vengono tradotti direttamente negli stati “acceso” e “spento” dell’elettricità che si muove attraverso i circuiti fisici del computer. In sostanza, questi semplici codici costituiscono la base del “linguaggio macchina”, la varietà più fondamentale del linguaggio di programmazione.

Naturalmente, nessun essere umano sarebbe in grado di costruire programmi software moderni programmando esplicitamente uno e zero. Invece, i programmatori umani devono fare affidamento su vari livelli di astrazione che possono consentire a se stessi di articolare i propri comandi in un formato più intuitivo per gli esseri umani. In particolare, i programmatori moderni emettono comandi nei cosiddetti “linguaggi di alto livello”, che utilizzano una sintassi intuitiva come intere parole e frasi inglesi, nonché operatori logici come “And”, “Or” e “Else” che sono familiare all’uso quotidiano.

In definitiva, tuttavia, questi comandi di alto livello devono essere tradotti in linguaggio macchina. Piuttosto che farlo manualmente, i programmatori si affidano a linguaggi assembly il cui scopo è tradurre automaticamente tra questi linguaggi di alto livello e quelli di basso livello. I primi linguaggi assembly furono sviluppati negli anni ’40 e, sebbene i programmatori moderni impieghino pochissimo tempo a occuparsi dei linguaggi assembly, rimangono comunque essenziali per il funzionamento generale di un computer.

Esempio del mondo reale di un linguaggio di assemblaggio

Oggi, i linguaggi assembly rimangono oggetto di studio da parte degli studenti di informatica, al fine di aiutarli a capire come il software moderno si relaziona alle sue piattaforme hardware sottostanti. In alcuni casi, i programmatori devono continuare a scrivere in linguaggi assembly, come quando le richieste sono le prestazioni sono particolarmente elevate, o quando l’hardware in questione è incompatibile con gli attuali linguaggi di alto livello.

Uno di questi esempi rilevanti per la finanza sono le piattaforme di trading ad alta frequenza (HFT) utilizzate da alcune società finanziarie. In questo mercato, la velocità e l’accuratezza delle transazioni sono di fondamentale importanza affinché le strategie di trading HFT si dimostrino redditizie. Pertanto, al fine di ottenere un vantaggio rispetto ai concorrenti, alcune aziende HFT hanno scritto il loro software di trading direttamente in linguaggi assembly, rendendo così superfluo attendere che i comandi di un linguaggio di livello superiore vengano tradotti in linguaggio macchina.