Programma (informatica)

Esempio di diagramma di flusso di un algoritmo di un programma

In informatica, un programma è una sequenza di istruzioni codificate in un linguaggio interpretabile da un elaboratore, espressione di un algoritmo per la risoluzione automatica di una certa classe di problemi.[1] L'insieme dei programmi presenti su un elaboratore ne forma il software.

Descrizione

Lo stesso argomento in dettaglio: Algoritmo e Software.
Codice sorgente ed esecuzione di un semplice programma dimostrativo (chiamato "Hello world") scritto in linguaggio Perl

Un programma è un insieme di linee di codice a loro volta costituite da un insieme di istruzioni. Il procedimento deve essere eseguibile 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 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 librerie. Analogamente, differisce dal termine "applicazione" il quale viene usato normalmente nella prospettiva dell'utente finale per intendere un servizio di cui questi può usufruire, a 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.[non chiaro] 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.

Scrittura

Lo stesso argomento in dettaglio: Programmazione (informatica) e Codice sorgente.
Codice sorgente scritto in C++

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 specifiche desiderate, è anche la corretta elaborazione a monte dell'algoritmo di risoluzione del problema da automatizzare.

Compilazione/interpretazione e linking

Codice sorgente in HTML e JavaScript

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).
Livello di esecuzione dall'utente all'hardware
Ciclo del processore (fetch-execute)

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 rispettivo indirizzo di memoria viene copiato in un registro 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 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 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 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 systems : a managerial approach, 6th ed, Thomson/Course Technology, 2003, ISBN 0-619-06489-7, OCLC 50919802. URL consultato il 6 aprile 2022.

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autoritàLCCN (ENsh85029524 · GND (DE4047394-6 · BNE (ESXX526558 (data) · J9U (ENHE987007545774305171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Read other articles:

Circondario della Weinstraße Meridionalecircondario(DE) Landkreis Südliche Weinstraße LocalizzazioneStato Germania Land Renania-Palatinato DistrettoNon presente AmministrazioneCapoluogoLandau in der Pfalz TerritorioCoordinatedel capoluogo49°10′12″N 8°00′00″E / 49.17°N 8°E49.17; 8 (Circondario della Weinstraße Meridionale)Coordinate: 49°10′12″N 8°00′00″E / 49.17°N 8°E49.17; 8 (Circondario della Weinstraße Meridionale) ...

 

Die Synagoge Haeckelstraße hinter dem als Garten abgetrennten Vorplatz Die Synagoge in der Haeckelstraße in Hannover ist die Synagoge der Jüdischen Gemeinde Hannover. Standort des Anfang der 1960er Jahre entstandenen Sakralbaus als Teil des Jüdischen Gemeindezentrums Haeckelstraße[1] ist die Haeckelstraße 10 im Stadtteil Bult[2] mit Bezug zur Freundallee.[3] Inhaltsverzeichnis 1 Geschichte 2 Baubeschreibung 3 Siehe auch 4 Weblinks 5 Einzelnachweise Geschichte Ins...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Kawasan Industri Wijayakusuma – berita · surat kabar · buku · cendekiawan · JSTOR (Maret 2016) PT Kawasan Industri WijayakusumaSebelumnyaPT Kawasan Industri CilacapJenisPerseroan terbatasIndustriKawasan indus...

Музей лемківської культури 49°05′09″ пн. ш. 25°09′52″ сх. д. / 49.085936874858873580° пн. ш. 25.16463154463354002° сх. д. / 49.085936874858873580; 25.16463154463354002Координати: 49°05′09″ пн. ш. 25°09′52″ сх. д. / 49.085936874858873580° пн. ш. 25.16463154463354002° сх. д. / 49.08593687...

 

Pemandangan pangkalan pulau SignyPeta Kepulauan Orkney SelatanGeografiLokasiAntartikaKoordinat60°35′S 45°30′W / 60.583°S 45.500°W / -60.583; -45.500Luas620 km2Titik tertinggi1.269 mPemerintahanNegaraDiatur di dalam Sistem Traktat AntartikaKependudukanPendudukTidak berpenghuni Kepulauan Orkney Selatan adalah gugusan kepulauan yang terletak di Samudra Selatan, sekitar 604 kilometer (375 mi) di sebelah timur laut dari ujung Semenanjung Antartik...

 

Indian TV series or programme Abar ProloyGenreCrime thrillerWritten byRaj ChakrabortyDirected byRaj ChakrabortyCreative directorSohini DasguptaStarring Saswata Chatterjee Paran Bandopadhyay Ritwick Chakraborty Gaurav Chakrabarty Koushani Mukherjee June Maliah Sohini Sengupta ComposerAmit ChatterjeeCountry of originIndiaOriginal languageBengaliNo. of seasons1No. of episodes10 (list of episodes)ProductionExecutive producerMimeo HhazraProducerSubhashree Ganguly Raj ChakrabortyCinematography...

Tallest living man (born 1982) Not to be confused with Kösem Sultan. Sultan KösenKösen in 2009Born (1982-12-10) 10 December 1982 (age 40)[1][2]Mardin, TurkeyOccupationFarmerKnown forTallest living man 7th verified tallest person in historyHeight8 ft 2.82 in (251.00 cm)Spouse Merve Dibo ​ ​(m. 2013; div. 2021)​ Sultan Kösen (born 10 December 1982) is a Turkish farmer who holds the Guinness World Record...

 

Main article: 1904 United States presidential election 1904 United States presidential election in California ← 1900 November 8, 1904 1908 →   Nominee Theodore Roosevelt Alton B. Parker Eugene V. Debs Party Republican Democratic Socialist Home state New York New York Indiana Running mate Charles W. Fairbanks Henry G. Davis Ben Hanford Electoral vote 10 0 0 Popular vote 205,226 89,404 29,535 Percentage 61.84% 26.94% 8.90% County Results Roosevelt ...

 

Lukisan Huang Zhong pada zaman Dinasti Qing. Huang Zhong (Hanzi:黃忠),bernama lengkap Huang Hansheng (黃漢升), seorang jendral dari Zaman Tiga Negara. Huang Zhong adalah salah satu dari Lima Jenderal Macan Shu Han Biografi sejarah Huang Zhong adalah penduduk asli Nanyang. Ia ditunjuk oleh penguasa Jingzhou, Liu Biao sebagai Zhonglang Jiang dan menjaga provinsi Changsha dengan keponakan Liu Biao, Liu Pan. Ketika Cao Cao menyerang Jingzhou, Huang pura-pura bersekutu dengannya. Huang diangk...

Main cast of Diyar-e-Dil, from left to right: Wali Suhaib Khan, Suhaib Bakhtiyar Khan, Arjumand Suhaib Khan, Bakhytiyar Khan (middle), Ruhina Behroze Khan, Behroze Bakhtiyar Khan and Faarah Behroze Khan The characters from the Pakistani drama serial Diyar-e-Dil were created by writer Farhat Ishtiaq based on her book of same name for Hum TV. The series follows the lives of a dysfunctional family led by Agha Jaan and his sons generation. Each episode follows a serialized sequence of the lives o...

 

Motorsport track in the United States This article's tone or style may not reflect the encyclopedic tone used on Wikipedia. See Wikipedia's guide to writing better articles for suggestions. (August 2013) (Learn how and when to remove this template message) Southside SpeedwayThe Toughest Short Track in the SouthPre Race ceremonies for a 2009 Denny Hamlin Charity event benefiting the Cystic Fibrosis Foundation.LocationMidlothian, VirginiaCoordinates37°27′03″N 77°37′45″W / ...

 

Unincorporated community in Tennessee, United StatesPeytonsville, TennesseeUnincorporated communityPeytonsville, TennesseeShow map of TennesseePeytonsville, TennesseeShow map of the United StatesCoordinates: 35°49′06″N 86°46′46″W / 35.81833°N 86.77944°W / 35.81833; -86.77944CountryUnited StatesStateTennesseeCountyWilliamsonElevation791 ft (241 m)Time zoneUTC-6 (Central (CST)) • Summer (DST)UTC-5 (CDT)Area code615GNIS feature ID1297292&...

American record producer (born 1933) This article is about the American record producer. For other people named Quincy Jones, see Quincy Jones (disambiguation). Quincy JonesJones in May 2014BornQuincy Delight Jones Jr. (1933-03-14) March 14, 1933 (age 90)Chicago, Illinois, U.S.OccupationsRecord producerconductorarrangerrecord executivesongwriterYears active1950–presentSpouses Jeri Caldwell ​ ​(m. 1957; div. 1966)​ Ulla Andersson R...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Koma film – news · newspapers · books · scholar · JSTOR (June 2019) (Learn how and when to remove this template message) 2004 Hong Kong filmKomaTheatrical posterDirected byLaw Chi-LeungProduced byLawrence ChengStarringKarena LamAngelica LeeAndy HuiRelease ...

 

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) The topic of this article may not meet Wikipedia's notability guidelines for companies and organizations. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the articl...

For other people named Zhao Qi, see Zhao Qi. In this Chinese name, the family name is Zhao. Zhao Qi Supreme Minister Zhao Qi (Chinese: 赵启; pinyin: Zhào Qǐ) is a character featured within the famed classic Chinese novel Fengshen Yanyi. Zhao Qi is renowned as a Grand Counselor during the Shang Dynasty. When the princes had finally been both caught and hung up within the executional area, Zhao Qi would boldly tear up the executional edict sent by the king himself. Thus, Zhao Qi was...

 

Place in Atsinanana, MadagascarManaratsandryManaratsandryLocation in MadagascarCoordinates: 19°24′0″S 48°29′00″E / 19.40000°S 48.48333°E / -19.40000; 48.48333[1]Country MadagascarRegionAtsinananaDistrictAntanambao-Manampotsy (district)Elevation387 m (1,270 ft)Population (2019)Census • Total5,833Time zoneUTC3 (EAT)postal code507 Manaratsandry is a rural municipality located in the Atsinanana region of eastern Madagasca...

 

International cricket tour Australian cricket team in South Africa in 1993–94    South Africa AustraliaDates 10 February 1994 – 8 April 1994Captains KC Wessels AR BorderTest seriesResult 3-match series drawn 1–1Most runs AC Hudson (293) DC Boon (277)Most wickets CR Matthews (13) SK Warne (15)Player of the series SR Waugh (Australia)One Day International seriesResults 8-match series drawn 4–4Most runs WJ Cronje (380) SR Waugh (291)Most wickets CR Matthews (17) SK Warne (...

This article contains too many or overly lengthy quotations. Please help summarize the quotations. Consider transferring direct quotations to Wikiquote or excerpts to Wikisource. (July 2017) Tudor CataragaTudor Cataraga, Knight of the National Order of the Star of Romania, in the rank of Commander Photograph taken by Mihai PotârnicheBorn(1956-08-04)4 August 1956Seliște, Nisporeni, Moldavian Soviet Socialist RepublicDied27 December 2010(2010-12-27) (aged 54)MoldovaNationalityMoldovanEdu...

 

1966 wallpaper design by Andy Warhol Cow Wallpaper [Pink on Yellow]ArtistAndy WarholYear1966MediumScreen print on wallpaperDimensions46 by 28 inches (117 cm × 71 cm)LocationThe Andy Warhol Museum, North Shore, Pittsburgh Andy Warhol's Cow Wallpaper was the first in a series of wallpaper designs he created from the 1960s to the 1980s. According to Warhol, the inspiration for the cow image came from art dealer Ivan Karp:[1] Another time he said, Why don't you paint some ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!