Sei sulla pagina 1di 5

03/02/23, 14:09 Programma (informatica) - Wikipedia

Programma (informatica)
Da Wikipedia, l'enciclopedia libera.
Questa voce o sezione sull'argomento programmazione non cita le
fonti necessarie o quelle presenti sono insufficienti.

Un programma, in informatica, è un procedimento


algoritmico applicato ad un problema dato da
automatizzare, tipicamente codificato in una serie di
linee di codice scritte in un certo linguaggio di
programmazione da un programmatore in fase di
programmazione a formare un software, che può
essere eseguito o interpretato da un elaboratore[1],
ricevendo in input determinati dati e restituendo in
output gli eventuali risultati ottenuti a seguito
dell'esecuzione/elaborazione delle sue istruzioni.

Indice
Descrizione
Scrittura
Compilazione/interpretazione e linking Esempio di diagramma di flusso di un
algoritmo di un programma
Esecuzione
Note
Voci correlate
Altri progetti
Collegamenti esterni

Descrizione
Lo stesso argomento in dettaglio: Algoritmo e Software.

Un programma è un insieme di linee di codice a loro volta costituite da un insieme di istruzioni. Il


problema deve essere risolvibile attraverso un algoritmo affinché un programmatore possa
codificarlo in istruzioni in un linguaggio di programmazione; in questa fase - detta
programmazione - viene realizzato il codice sorgente del programma che definisce il suo flusso di
esecuzione.

La programmazione del computer (conosciuta anche come sviluppo del software e ingegneria del
software) è il processo di scrittura o modifica del codice sorgente. In un ambiente formale, un
analista di sistema raccoglie informazioni dai manager su tutti i processi dell'organizzazione da
automatizzare. Questo professionista prepara poi un piano dettagliato per il sistema nuovo o

https://it.wikipedia.org/wiki/Programma_(informatica) 1/5
03/02/23, 14:09 Programma (informatica) - Wikipedia

modificato. Il piano assomiglia alle planimetrie utilizzate in


architettura. Un programmatore di computer è uno specialista
responsabile di scrivere o modificare il codice sorgente per
implementare il piano dettagliato.[2]

Il termine indica una sequenza logicamente ordinata di


comandi, istruzioni e operazioni e differisce dal termine - più
generico - di software in quanto un programma è un software
che può essere caricato nella memoria RAM per essere
eseguito sotto forma di processo, includendo quindi anche
quei programmi che girano in background come ad esempio in
un sistema operativo in esecuzione come per esempio le Codice sorgente ed esecuzione
librerie. Analogamente, differisce dal termine "applicazione" il di un semplice programma
quale viene usato normalmente nella prospettiva dell'utente dimostrativo (chiamato "Hello
finale per intendere un servizio di cui questi può usufruire, a world") scritto in linguaggio Perl
prescindere dal fatto che questo sia realizzato da un solo
programma o da un insieme di programmi - e infatti i
programmi operanti su sistemi embedded non sono dunque applicazioni per l'utente ma
consentono comunque la funzionalità del dispositivo. In questo caso l'applicazione si compone di
un'interfaccia utente e di un nucleo elaborativo. L'espressione "sistema software" è usata poi, di
norma, per indicare esplicitamente una collezione di componenti software come programmi,
librerie, file e altro, interagenti fra loro.

Lo stesso argomento in dettaglio: Programmazione (informatica).

Scrittura
Lo stesso argomento in dettaglio: Codice sorgente.

Un programma, per essere scritto, deve rispettare la sintassi e


la semantica del particolare linguaggio di programmazione
scelto. Errori di scrittura vengono poi rilevati e segnalati in
fase di compilazione o interpretazione. Il presupposto base per
la corretta scrittura e funzionalità del programma, secondo le Codice sorgente scritto in C++
specifiche desiderate, è anche la corretta elaborazione a monte
dell'algoritmo di risoluzione del problema da automatizzare.

Compilazione/interpretazione e linking
Lo stesso argomento in dettaglio: Compilazione, Interprete (informatica), Linker e
Piattaforma (informatica).

L'esecuzione del codice, una volta precompilato, compilato e/o interpretato, avviene
sequenzialmente nel rispetto di selezioni/controlli e iterazioni; spesso inoltre il codice risulta
altamente concatenato ovvero il risultato di una certa istruzione (ad es. il valore di una certa
variabile) è sfruttato come input o è propedeutico a istruzioni successive secondo la logica del
divide et impera.

Esecuzione
Lo stesso argomento in dettaglio: Esecuzione (informatica).

https://it.wikipedia.org/wiki/Programma_(informatica) 2/5
03/02/23, 14:09 Programma (informatica) - Wikipedia

Un programma scritto in linguaggio assembly o in un


linguaggio di programmazione ad alto livello (codice sorgente),
può essere eseguito solo compilando il codice sorgente in
codice oggetto ovvero traducendolo in linguaggio macchina
che darà vita poi al programma eseguibile, oppure servendosi
di un interprete.

Da parte del sistema operativo: Nella maggior parte dei


computer moderni, basati sull'architettura di von Neumann,
l'esecuzione di un programma binario prevede che, sotto
l'attività e il controllo del sistema operativo, il programma
stesso sia inizialmente caricato in memoria primaria (es.
RAM), tipicamente a partire da una periferica di memoria di
massa (o memoria secondaria), come ad esempio un
disco rigido. Viene quindi identificato il "punto d'ingresso"
(entry point) del programma (cioè la prima istruzione), e il Codice sorgente in HTML e
rispettivo indirizzo di memoria viene copiato in un registro JavaScript
del processore detto program counter. A questo punto
viene avviato nel processore, da parte dell'Unità di
Controllo, un ciclo di fetch-execute che ripetutamente
preleva l'istruzione "puntata" dal program counter,
incrementa il program counter in modo da farlo puntare
all'istruzione successiva, ed esegue l'istruzione caricata
sequenzialmente nell'ordine. Si può osservare che il ciclo
fetch-execute, per default, comporta dunque l'esecuzione
sequenziale delle istruzioni del programma. L'istruzione
corrente, tuttavia, può modificare il program counter:
questa operazione corrisponde ad un'istruzione di salto
goto o ad una di salto condizionato che è il meccanismo
fondamentale su cui si basa l'implementazione delle
strutture di controllo più evolute da parte di compilatori e
interpreti. Un programma in esecuzione è visto dal sistema
operativo come un processo o insieme di processi, gestiti
attraverso chiamate di sistema, e più programmi/processi
possono essere eseguiti contemporaneamente attraverso
l'eventuale multitasking offerto dal sistema operativo
stesso e gestito dallo scheduler.
Da parte dell'hardware: Un programma scritto Livello di esecuzione
direttamente o convertito in linguaggio macchina può dall'utente all'hardware
essere eseguito direttamente da un computer (inteso come
hardware). L'esecuzione di codice da parte di una
macchina hardware nel ciclo di fetch-execute è possibile in virtù della capacità del processore
di eseguire una serie di istruzioni base (instruction set), sulla quale il programma è
mappato/tradotto a livello di linguaggio macchina, grazie ai circuiti elettronici di base (circuiti
integrati) che compongono il processore stesso. Dal punto di vista utente, nei calcolatori
moderni questo normalmente avviene grazie all'esercizio, gestione o controllo delle risorse
hardware (processore, memoria, ecc...) operata dal sistema operativo che funge da
piattaforma software del sistema. L'unica eccezione si verifica al momento dell'accensione del
computer, quando viene fatto il boot e viene eseguito il firmware che si occupa di testare
l'elettronica e di caricare il sistema operativo. Una volta che il processo di boot ha passato il
controllo al sistema operativo, nessun programma può essere eseguito direttamente
dall'hardware. Col tempo è divenuto raro che un programma sia adatto all'esecuzione diretta
da parte di un computer inteso come solo hardware; di norma, esso richiede una macchina
virtuale che comprende l'hardware del computer con l'aggiunta di uno o più livelli di software
che contribuiscono a creare l'ambiente di esecuzione adatto per il programma stesso. Gli
stessi programmi eseguibili richiedono di norma la presenza di un determinato sistema

https://it.wikipedia.org/wiki/Programma_(informatica) 3/5
03/02/23, 14:09 Programma (informatica) - Wikipedia

operativo, di determinate librerie, e così via. Benché le


linee generali del funzionamento di una macchina virtuale
siano talvolta piuttosto simili a quelle descritte sopra per la
macchina di von Neumann, in molti casi esse se ne
discostano in maniera sostanziale, introducendo numerosi
concetti non presenti in tale architettura (per esempio, lo
stack dei record di attivazione). Si può dire che un
linguaggio di programmazione è tanto più ad alto livello
quanto più la corrispondente macchina virtuale esibisce
caratteristiche concettualmente distanti dai meccanismi
fondamentali dell'architettura di von Neumann (o, in
generale, dell'architettura hardware sottostante).

Note
1. ^ computer program, su TheFreeDictionary.com. URL
consultato il 6 aprile 2022.
2. ^ George Walter Reynolds, Principles of information Ciclo del processore (fetch-
systems : a managerial approach, 6th ed, Thomson/Course execute)
Technology, 2003, ISBN 0-619-06489-7, OCLC 50919802.
URL consultato il 6 aprile 2022.

Voci correlate
ABEND
Crash (informatica)
Programmazione (informatica)
Funzione (informatica)
Programma eseguibile
Linguaggio macchina
Programmatore
Riflessione (informatica)
Salvataggio (informatica)

Altri progetti
Wikimedia Commons (https://commons.wikimedia.org/wiki/?uselang=it) contiene immagini
o altri file su programma (https://commons.wikimedia.org/wiki/Category:Software?uselan
g=it)

Collegamenti esterni
Definizione di "programma" su Webopedia, su webopedia.com.
Definizione di "programma" su Agtivity, su Agtivity.com. URL consultato il 1º maggio 2019 (archiviato
dall'url originale il 14 giugno 2013).
Definizione di "programma" su FOLDOC, su wombat.doc.ic.ac.uk (archiviato dall'url originale il 7
settembre 2005).
Controllo di LCCN (EN) sh85029524 (http://id.loc.gov/authorities/subjects/sh85029524) · GND
autorità (DE) 4047394-6 (https://d-nb.info/gnd/4047394-6) · BNE (ES) XX526558 (http://catalog
o.bne.es/uhtbin/authoritybrowse.cgi?action=display&authority_id=XX526558) (data)
(http://datos.bne.es/resource/XX526558) · J9U (EN, HE) 987007545774305171 (http://

https://it.wikipedia.org/wiki/Programma_(informatica) 4/5
03/02/23, 14:09 Programma (informatica) - Wikipedia

uli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=987007545
774305171)

Estratto da "https://it.wikipedia.org/w/index.php?title=Programma_(informatica)&oldid=126785651"

Questa pagina è stata modificata per l'ultima volta il 14 apr 2022 alle 07:57.

Il testo è disponibile secondo la licenza Creative Commons Attribuzione-Condividi allo stesso modo; possono
applicarsi condizioni ulteriori. Vedi le condizioni d'uso per i dettagli.

https://it.wikipedia.org/wiki/Programma_(informatica) 5/5

Potrebbero piacerti anche