In informatica, cos’è un punto di ingresso?

Nei computer, un punto di ingresso è il punto in un programma, modulo o funzione in cui inizia il codice; in particolare, l’indirizzo di memoria dove inizia. In un programma, è il primo modulo di codice, o anche la prima riga di codice che viene eseguita. In un programma lineare, come BASIC o COBOL, il punto di ingresso è letteralmente la prima riga di codice. Il codice segue quindi in sequenza fino a quando non viene eseguita una sorta di salto o chiamata. Nella programmazione modulare, come tutte le varianti del linguaggio di programmazione C, il punto di ingresso è il modulo iniziale. In C, questa è la funzione “Main()”.

Nei programmi e nei sistemi operativi meno recenti, un programma potrebbe avere più punti di ingresso, a seconda della funzione o del sistema in esecuzione. Nella maggior parte dei sistemi operativi moderni, inclusi Windows® e Unix, i programmi sono scritti in linguaggi che supportano un unico punto di ingresso. Anche agli albori dell’informatica moderna, linguaggi come il BASIC, pur avendo un unico punto di ingresso al programma, potrebbero supportare “salti lunghi”, in cui il programma potrebbe “saltare” da un modulo al punto di ingresso di un altro modulo indiscriminatamente. Questo incoraggiato era quello che veniva chiamato “codice degli spaghetti”, che era difficile da mantenere o modificare.

Un punto di ingresso potrebbe anche non fare riferimento al punto di ingresso di un programma, ma può essere il punto di ingresso di una libreria a collegamento dinamico (DLL), che sono una sorta di mini-programmi condivisi tra altri programmi. Un esempio è una DLL che controlla l’input da tastiera. Indipendentemente dal tipo di programma, modulo o funzione, il punto di ingresso è l’unico punto in cui avviene l’elaborazione in quel pezzo di codice. La chiave per comprendere qualsiasi linguaggio o modificare e supportare qualsiasi programma sta nel capire come viene identificato il punto di ingresso in quello specifico programma o sistema operativo.

Il concetto di punti di ingresso è stato implementato quando la programmazione informatica ha lasciato i metodi completamente lineari dei primi giorni. A quei tempi, un programma per computer iniziava sulla prima riga di codice e procedeva una riga alla volta fino alla fine del processo. Presto, costrutti di programmazione come loop, ramificazione condizionale, ricorsione e altri hanno creato programmi funzionalmente più efficienti, ma l’elaborazione è rimbalzata ovunque all’interno del codice. La natura di questi programmi significa che potrebbero esserci molte righe o sezioni di codice prima del punto in cui inizia effettivamente l’elaborazione. Per questo motivo è stato creato e identificato il punto di ingresso.

In C, questa è diventata la funzione main(). Indipendentemente da dove esistesse questa funzione nel codice, è lì che è iniziata l’elaborazione. In altre lingue, i punti di ingresso non sono identificati tanto da dove sono, ma da dove non sono. L’inizio del programma potrebbe contenere sezioni di dichiarazioni di variabili e subroutine. La prima riga di codice che segue queste aree o funzioni, per impostazione predefinita, diventa il punto di ingresso.