Programma per computer

Article

August 14, 2022

Un programma per computer (inglese: Computer Program) si riferisce a un insieme di istruzioni che istruiscono un computer elettronico o un altro dispositivo elettronico con capacità di elaborazione delle informazioni per eseguire ogni fase dell'azione. Di solito è scritto in un linguaggio di programmazione e viene eseguito su un'architettura di destinazione . Ad esempio, il codice sorgente di un programma è come una ricetta di maiale brasato (codice sorgente del programma) scritta in cinese (linguaggio di programmazione), che viene utilizzata per guidare le persone che capiscono il cinese (compilatore) e sanno anche cucinare (architettura). Le persone vengono a cucinare il piatto (procedura). Di solito, i programmi per computer basati su testo inglese vengono compilati e collegati in una sequenza di numeri non facilmente leggibili dall'uomo ma interpretabili dai computer, e quindi messi in funzione. Tali programmi sono anche chiamati linguaggi compilati. I programmi che possono essere eseguiti senza compilazione sono spesso indicati come script o linguaggi interpretati.

Esecuzione del programma

Affinché un programma possa essere eseguito, il computer carica il codice del programma e possibilmente i dati, lo inizializza in uno stato di avvio e quindi richiama un meccanismo di avvio. Al livello più basso, questi vengono avviati da un caricatore. Nella maggior parte dei computer, un sistema operativo, come Windows, ecc., carica ed esegue molti programmi. In questo contesto, un programma per computer fa riferimento a una singola mappa eseguibile, non tutti i programmi attualmente in esecuzione sul computer.

Architettura di von Neumann

Su un computer basato sull'architettura von Neumann più comune (conosciuta anche come architettura di Princeton), i programmi vengono caricati nel computer da un dispositivo esterno, solitamente un disco rigido. Se il computer sceglie l'architettura von Neumann, il programma viene caricato in memoria. La sequenza di istruzioni viene eseguita in sequenza finché non viene eseguita un'istruzione di salto o diramazione o si verifica un'interruzione. Tutte queste istruzioni modificano il contenuto del registro delle istruzioni. I computer basati su questo sistema non possono funzionare senza il supporto di programmi. Un programma per computer è una raccolta di istruzioni. Le istruzioni in un programma sono basate sul linguaggio macchina; i programmi sono generalmente scritti prima in un linguaggio di programmazione per computer e poi tradotti in linguaggio macchina usando un compilatore o un interprete. A volte è anche possibile programmare in linguaggio assembly, che è essenzialmente un insieme di notazioni che rappresentano il linguaggio macchina - in questo caso, il programma utilizzato per la traduzione è chiamato assembler.

Programmi e dati

I dati possono essere definiti come informazioni che vengono elaborate da un programma. A volte la distinzione tra programmi e dati non è così ovvia se consideriamo l'intero sistema informatico. L'unità di elaborazione centrale a volte ha una serie di micro-istruzioni per controllare l'hardware, i dati possono essere un programma da eseguire (vedi linguaggi di programmazione di scripting) e il programma può essere scritto per scrivere altri programmi; tutti questi esempi fanno il confronto di programma e dati una prospettiva s Scelta. Alcuni addirittura affermano che non c'è differenza tra programmi e dati. Il processo di scrittura di un programma per generare un altro programma è chiamato metaprogrammazione. Può essere utilizzato per consentire ai programmi di generare codice in base a dati dati. Un singolo programma potrebbe non essere sufficiente per rappresentare tutti gli aspetti di un dato dato. Potrebbe essere più semplice avere un programma che analizzi questi dati e generi nuovi programmi per gestire tutti gli aspetti dei dati. Lisp è un esempio di linguaggio di programmazione che supporta questo paradigma di programmazione. I pesi memorizzati nella rete neurale sono una specie di dati. Sono questi dati di peso, insieme alla topologia di rete, che definiscono il comportamento della rete. Spesso è difficile definire cosa rappresentino esattamente questi dati o se possano essere sostituiti da programmi. Questo esempio e altri problemi relativi all'intelligenza artificiale mettono ulteriormente alla prova la distinzione tra programmi e dati.

Algoritmo

Un algoritmo si riferisce a un metodo rigoroso per risolvere un problema, solitamente integrato da un certo grado di analisi delle prestazioni operative. Un algoritmo può essere puramente teorico o può essere implementato da un programma per computer. Gli algoritmi teorici sono spesso suddivisi in categorie in base alla complessità; gli algoritmi implementati sono spesso profilati per testarne le prestazioni. Si noti che mentre un algoritmo è teoricamente valido, un algoritmo scadente può comunque sprecare preziose risorse del computer. (Per maggiori dettagli, vedere Teoria dell'informazione algoritmica)

Sviluppo

Scrivere un programma è un processo iterativo di scriverne uno nuovo