Programma (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Compilazione/interpretazione e linking: Corretto un collegamento |
|||
Riga 6:
{{Vedi anche|Algoritmo|Software}}
[[File:Hello World Perl GTk2.png|thumb|[[Codice sorgente]] ed [[esecuzione (informatica)|esecuzione]] di un semplice programma dimostrativo (chiamato "[[Hello world]]") scritto in linguaggio [[Perl]]]]
Un programma è un insieme di linee di [[codice sorgente|codice]] a loro volta costituite da un insieme di istruzioni. Il
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 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.<ref>{{Cita libro|nome=George Walter|cognome=Reynolds|titolo=Principles of information systems : a managerial approach|url=https://www.worldcat.org/oclc/50919802|accesso=2022-04-06|edizione=6th ed|data=2003|editore=Thomson/Course Technology|OCLC=50919802|ISBN=0-619-06489-7}}</ref>
Riga 31:
[[File:CPU_block_diagram.svg|thumb|[[Ciclo del processore]] (fetch-execute)]]
* '''Da parte dell'hardware:''' Un programma scritto direttamente o convertito in linguaggio macchina può 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 [[circuito elettronico|circuiti elettronici]] di base ([[circuito integrato|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 (informatica)|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 [[programma eseguibile|programmi eseguibili]] richiedono di norma la presenza di un determinato [[sistema operativo]], di determinate [[libreria software|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ù [[linguaggio di programmazione ad alto livello|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==
<references/>
|