Indietro

ⓘ Calcolo (informatica)




Calcolo (informatica)
                                     

ⓘ Calcolo (informatica)

Per calcolo in informatica intende qualsiasi attività che utilizza i computer per elaborare, gestire e comunicare informazioni, ed include lo sviluppo di hardware e software. La computazione è una componente fondamentale e integrante della moderna tecnologia industriale. Le principali discipline informatiche includono ingegneria informatica, ingegneria del software, informatica, sistemi di informazione e tecnologia dellinformazione.

                                     

1. Definizioni

LACM definisce cinque sotto-discipline nel campo dell informatica:

  • Ingegneria del software.
  • Sistemi di informazione.
  • Tecnologia dellinformazione.
  • Ingegneria informatica.
  • Informatica.
                                     

2. Storia

La storia della computazione è sicuramente più lunga della storia dellhardware informatico e della moderna tecnologia informatica, essa comprende anche la storia dei metodi destinati per carta e penna o alla lavagna, con o senza lausilio di tabelle.

Il calcolo è strettamente connesso alla rappresentazione numerica. Ma molto prima che sorgessero astrazioni come il numero, già vi erano concetti matematici necessari a servire gli scopi della civiltà. Questi concetti includono, per esempio, la corrispondenza biunivoca la base del conteggio, il confronto con ununità standard usato per la misurazione e il triangolo rettangolo 3-4-5 un dispositivo per assicurare un angolo retto.

Il primo strumento noto per il suo uso per effettuare calcoli è labaco, e si pensa che sia stato inventato a Babilonia intorno al 2400 a.C. La sua forma originale di utilizzo era costituita da linee disegnate nella sabbia con ciottoli. Gli Abachi, dal design più moderno, sono ancora oggi utilizzati come strumenti di calcolo. Questo è stato il primo aiuto al calcolo noto, che ha preceduto i metodi greci di circa 2000 anni.

La prima idea sullutilizzo dellelettronica digitale per effettuare calcoli si può trovare nel documento del 1931 "Luso dei tiratroni per il conteggio automatico ad alta velocità di fenomeni fisici" scritto da CE Wynn-Williams. Il documento di Claude Shannon del 1938 Unanalisi simbolica dei circuiti di relè e di commutazione introdusse inoltre lidea di usare lelettronica per le operazioni algebriche booleane.

Il concetto di transistor ad effetto di campo venne proposto da Julius Edgar Lilienfeld nellanno 1925. John Bardeen e Walter Brattain, nel 1947, mentre i due stavano lavorando per William Shockley ai Laboratori Bell, costruirono il primo transistor funzionante nella storia, il transistor a contatto a punti. Nel 1953, lUniversità di Manchester costruì il primo computer a Transistor, che venne chiamato Transistor Computer. Tuttavia, i primi transistor a giunzione erano dispositivi relativamente ingombranti ed erano estremamente difficili da produrre in massa, il che li vedeva limitati ad una serie di applicazioni specializzate. Il transistor ad effetto di campo metallo-ossido-silicio MOSFET o transistor MOS venne inventato nel 1959 da Mohamed Atalla e Dawon Kahng presso i Laboratori Bell. Fu il primo transistor che poteva essere definito compatto e che poteva essere miniaturizzato e prodotto in serie per una vasta gamma di usi. Il MOSFET ha quindi permesso di costruire chip per circuiti integrati ad alta densità, portando a quella che oggi viene chiamata la rivoluzione del computer o rivoluzione del personal computer.

                                     

3. Computer

Un computer è una macchina che manipola i dati mediante una serie di istruzioni chiamate programmi. Il programma possiede un modulo, chiamato eseguibile, che il computer può utilizzare direttamente per eseguire le istruzioni. Lo stesso programma se visualizzato nella forma di codice sorgente diventa leggibile dalluomo e consente di conseguenza ad un programmatore di studiare e di sviluppare una sequenza di passaggi che viene chiamata "algoritmo". Poiché le istruzioni possono essere eseguite da diverse tipologie di computer e di processori, un singolo set di istruzioni di origine viene convertito in istruzioni macchina in base al tipo di CPU utilizzata.

Il processo di esecuzione esegue le istruzioni di un programma. Le istruzioni esprimono i calcoli che vengono eseguiti dal computer ed attivano sequenze di azioni semplici sulla macchina in esecuzione. Tali azioni producono effetti in base alla semantica delle istruzioni.

                                     

3.1. Computer Software e hardware

Per "software" si definisce una raccolta di programmi e dati correlati ad essi che forniscono le istruzioni per informare un computer sul cosa fare e sul come farlo. Il temine "software" si riferisce a uno o più programmi per computer e dati conservati nella memoria del computer per alcuni scopi. In altre parole, il software è un insieme di programmi, algoritmi, procedure e la documentazione relativa al funzionamento di un sistema di elaborazione dei dati. Il software di un determinato programma svolge la funzione del programma che implementa, fornendo direttamente le istruzioni allhardware del computer o fungendo da input per un altro software. Il termine è stato coniato per contrastare con il vecchio termine hardware che si riferisce ai dispositivi fisici. Contrariamente allhardware, il software non è fisicamente toccabile. Il software viene talvolta utilizzato anche in un senso più stretto,per riferirsi esclusivamente alsoftware applicativo.



                                     

3.2. Computer Software applicativo

Il software applicativo, noto anche come "applicazione" o "app", è un software il cui scopo è aiutare lutente a svolgere determinate attività specifiche. Esempi di questo tipo di software includono software ad uso aziendale, software di produttività personale, software grafico e lettori multimediali. La maggior parte dei software applicativi riguardano principalmente i documenti. Le app possono essere fornite in bundle con il computer ed il relativo software di sistema o possono essere pubblicate separatamente. Alcuni utenti sono soddisfatti delle app in bundle siccome non devono installare applicazioni aggiuntive.

Il software applicativo va differenziato dal software di sistema e dal middleware, i quali, diversamente dal software applicativo, gestiscono e integrano le capacità di un computer, ma in genere non le applicano direttamente nellesecuzione di attività a beneficio dellutente. Il software di sistema serve lapplicazione, che a sua volta serve lutente.

Il software applicativo utilizza la potenza di una particolare piattaforma informatica o di un paricolare software di sistema per perseguire un determinato scopo. Alcune app come Microsoft Office sono disponibili nelle versioni per diverse piattaforme; altre hanno requisiti più specifici e sono quindi chiamati con il nome del sistema in uso, ad esempio: "Geografia per Windows" o "un gioco Linux". A volte sorge unapplicazione nuova e popolare che funziona solo su una piattaforma, aumentando la desiderabilità di quella piattaforma. Questa si chiama unapplicazione killer.

                                     

3.3. Computer Software di sistema

Il software di sistema dallinglese system software è un software pensato per far funzionare e per controllare lhardware di un computer e per creare una piattaforma per lesecuzione di un software applicativo. Il "software di sistema" include sistemi operativi, software di utilità, driver di dispositivo e firmware. Talvolta altri strumenti di sviluppo come compilatori, linker e debugger vengono classificati come software di sistema.

                                     

3.4. Computer Rete di computer

Una rete di computer, talvolta definita semplicemente come una "rete", è una raccolta di componenti hardware e di computer collegati tra di loro mediante canali di comunicazione che consentono la condivisione di risorse ed informazioni. Laddove è presente un processo in un dispositivo, il quale è in grado di inviare e/o ricevere dati a/da almeno un processo situato in un dispositivo remoto, si dice che i due dispositivi si trovano in una rete.

Le reti si possono classificare mediante unampia varietà di caratteristiche come il mezzo utilizzato per trasportare i dati, il protocollo di comunicazione utilizzato, la dimensione, la topologia e lambito organizzativo.

I protocolli di comunicazione definiscono le regole ed i formati dei dati che si utilizzano nello scambio di informazioni in una rete di computer e che forniscono la base per la programmazione di una rete. Tra i protocolli di comunicazione noti troviamo: Ethernet, che è uno standard di tipo hardware, Link Layer, che è onnipresente nelle reti locali, e Internet Protocol Suite, che definisce una serie di protocolli per la comunicazione di dati tra più reti, per il trasferimento di dati host-to-host e per la definizione e luso di formati di trasmissione dei dati specifici ad una determinata applicazione.

Le reti informatiche vengono talvolta considerate una sotto-disciplina di ingegneria elettrica, telecomunicazioni, informatica, informatica o ingegneria informatica, siccome esse si basano sulla messa in pratica di queste discipline.



                                     

3.5. Computer Internet

Internet è un sistema di reti di computer interconnesse che utilizzano la il protocollo internet standard TCP / IP al fine di fornire un servizio a miliardi di utenti nel mondo costituito da un gran numero di reti private, pubbliche, accademiche, aziendali e governative, di portata locale e globale, che spesso sono collegati da una vasta gamma di tecnologie di reti elettroniche, wireless ed ottiche. Internet offre una inoltre una vasta gamma di risorse e di servizi di informazione, come i documenti ipertestuali interconnessi del World Wide Web e linfrastruttura per supportare la posta elettronica.

                                     

3.6. Computer Programmazione informatica

Per programmazione informatica si intende il processo di scrittura, testing, debug e manutenzione di un codice sorgente e della documentazione dei programmi per computer. Questo codice sorgente viene scritto in un linguaggio di programmazione, che è un linguaggio artificiale spesso molto più restrittivo e/o impegnativo di un linguaggio naturale, ma che viene facilmente tradotto da un computer. Lo scopo della programmazione è di invocare il comportamento desiderato dalla macchina. Il processo di scrittura del codice sorgente di alta qualità richiede la conoscenza sia dellambito delle applicazioni che nellambito dellinformatica. Un software di alta qualità è quindi sviluppato da un team di vari esperti in vari ambiti, ciascuno specializzato in determinate aree di sviluppo.Ill termine programmatore può tuttavia applicarsi ad una vasta gamma di qualità dallhacker al collaboratore open source al professionista. Un singolo programmatore può potenzialmente eseguire gran parte o tutta la programmazione necessaria per generare la una prova di un concetto o per lanciare una nuova applicazione "killer".

                                     

3.7. Computer Programmatore

Un programmatore o "programmatore di computer" è una persona che scrive software. Il termine programmatore si può riferire ad uno specialista in una determinata area della programmazione informatica o in generale ad una persona che scrive codice per varie tipoligie di software. Chi pratica o professa un approccio formale alla programmazione viene spesso conosciuto come programmatore analitico. Il linguaggio informatico principale di un programmatore è spesso uno fra C, C ++, Java, Lisp, Python, coloro che lavorano in un ambiente web molto spesso antepongono i loro titoli al web. Il termine programmatore può essere usato per indicare uno sviluppatore di software, un ingegnere informatico, un informatico o un analista di software. Tuttavia, i membri di queste professioni in genere possiedono altre capacità nellambito dellingegneria del software, oltre alle capacità di programmazione.

                                     

3.8. Computer Industria Informatica

Lindustria informatica è costituita da tutte le imprese coinvolte nello sviluppo di software per computer, progettazione hardware ed infrastutture con reti di computer, la produzione di componenti informatici e la fornitura di servizi IT tra cui lamministrazione del sistema e la manutenzione.

                                     

3.9. Computer Industria del software

Lindustria del software comprende aziende impegnate nello sviluppo, nella manutenzione e nella fase di pubblicazione del software. Lindustria comprende tuttavia anche servizi non destinati al software, come formazione del personale, documentazione del software e consulenza.

                                     

4.1. Sotto-discipline dellinformatica Ingegneria Informatica

Lingegneria informatica è una disciplina che integra molteplici campi dellingegneria elettrotecnica e dellinformatica, i quali sono requisiti allo sviluppo di hardware e software. Gli ingegneri informatici tendenzialmente possiedono una formazione in ingegneria elettronica o ingegneria elettrotecnica, progettazione software e intearazione ed integrazione tra hardware e software, anziché rimanere esclusivamente nel campo dellingegneria del software o dellingegneria elettronica. Gli ingegneri informatici sono coinvolti in molti aspetti hardware e software dellinformatica, dalla progettazione di singoli microprocessori, personal computer e supercomputer, fino alla progettazione di circuiti. Questo campo dellingegneria non si concentra esclusivamente alla progettazione dellhardware allinterno del proprio campo, ma anche sulle interazioni tra lhardware e il mondo che lo circonda.

                                     

4.2. Sotto-discipline dellinformatica Ingegneria del software

Lingegneria del software è lapplicazione sistematica, disciplinata e quantificabile alla progettazione, allo sviluppo, al funzionamento ed alla manutenzione di un determinato software ed allo studio di questi approcci; ossia, lapplicazione dellingegneria al software. In parole povere, è latto di utilizzare le intuizioni per concepire, modellare e ridimensionare una soluzione ad un problema. Il primo riferimento a questo termine è la Conferenza sullingegneria del software della NATO, che fu tenuta nell1968 lo scopo della quale era provocare pensieri sulla "crisi del software" percepita allepoca. Lo sviluppo del software, un termine molto usato e più generico, non sottrae necessariamente il paradigma ingegneristico. I concetti generalmente accettati dellingegneria del software come disciplina ingegneristica vengono specificati nella Guida allingegneria della conoscenza del software engineering Software Engineering Body of Knowledge. SWEBOK è diventato uno standard accettato a livello internazionale ISO / IEC TR 19759: 2015.



                                     

4.3. Sotto-discipline dellinformatica Informatica

Linformatica è lapproccio scientifico e pratico al calcolo ed alle sue applicazioni. Un informatico è specializzato nella teoria del calcolo e nella progettazione di sistemi computazionali.

I suoi sottocampi so possono suddividere in tecniche pratiche per la sua implementazione ed applicazione in sistemi informatici ed aree puramente teoriche. Talune, come la teoria della complessità computazionale, che studia le proprietà fondamentali dei problemi computazionali, sono estremamente astratte, diversamente altre, come la computer grafica, enfatizzano le applicazioni del mondo reale. Altre ancora si concentrano in modo specifico su sfide nellimplementazione dei calcoli. Ad esempio, la teoria dei linguaggi di programmazione studia gli approcci alla descrizione dei calcoli, mentre lo studio della stessa programmazione studia diversi aspetti delluso di linguaggi di programmazione e sistemi complessi, linterfaccia tra uomo e macchina si concentra specialmente sulle sfide nel rendere utili e utilizzabili computer e calcoli e universalmente accessibile agli umani.

                                     

4.4. Sotto-discipline dellinformatica Sistemi di informazione

"Sistemi Informativi SI" è lo studio delle reti complementari di hardware e di software vedi tecnologia dellinformazione che le persone le organizzazioni utilizzano per raccogliere, filtrare, elaborare, creare e distribuire dati.

Lo studio dei sistemi informativi collega il business allinformatica utilizzando le basi teoriche dellinformazione e del calcolo per studiare vari modelli di business ed i relativi processi algoritmici allinterno di una disciplina informatica.

                                     

4.5. Sotto-discipline dellinformatica Computer Information System s CIS

Questo campo in particolare studia i computer ed i processi algoritmici, compresi i loro principi, i loro progetti di software e hardware, le loro applicazioni ed il loro impatto sulla società mentre i sistemi informativi sottolineano la funzionalità rispetto al design.

                                     

4.6. Sotto-discipline dellinformatica Tecnologia dellinformazione

Con tecnologia dellinformazione IT si definisce lapplicazione dei computer e delle apparecchiature di telecomunicazione per archiviare, recuperare, trasmettere o manipolare dati, spesso nel contesto di unazienda o di unaltra impresa. Il termine viene normalmente utilizzato come sinonimo di computer e di reti di computer, ma comprende anche altre tecnologie di distribuzione delle informazioni come televisione e telefoni. Numerose industrie sono associate alla tecnologia dellinformazione, come hardware, software, elettronica, industria deisemiconduttori, internet, industria delle telecomunicazioni, e-commerce ed altri servizi informatici.

                                     

4.7. Sotto-discipline dellinformatica Amministrazione dei sistemi

Un amministratore di sistema è quella persona impiegata a mantenere ed a gestire un sistema informatico o una rete. Le funzioni dellamministratore di sistema sono di ampia portata e variano sostanzialmente tra unorganizzazione allaltra. Gli amministratori di sistema vengono normalmente incaricati di installare, del supportare e di fare manutenzione di un server o di altri sistemi informatici, nonché anche di pianificare e di rispondere a casi di interruzioni del servizio e ad altri problemi. Tra le varie funzioni si possono anche includere la creazione di script o la programmazione leggera ma anche la gestione di progetti relativi a progetti relativi ai sistemi, la supervisione e la formazione di operatori del settore informatico e la consulenza per problemi informatici al di là delle conoscenze del personale di supporto tecnico.

                                     

5. Ricerca e tecnologie emergenti

La computazione basata sul DNA e linformatica quantica sono due aree di ricerca sia nel campo dellhardware che nel software come lo sviluppo di algoritmi quantici. Le potenziali infrastrutture per le tecnologie future includono origami a DNA sulla fotolitografia e antenne quantiche per il trasferimento di informazioni tra trappole ioniche. Nel 2011, i ricercatori sono riusciti con successo aimpigliare 14 qubit. I circuiti digitali veloci compresi quelli basati su giunzioni Josephson e la tecnologia quantistica a flusso singolo rapido stanno attualmente diventando pian piano realizzabili con la scoperta di superconduttori situati ad una scala nanometrica.

I dispositivi di tipo fotonico ed a fibre ottiche, i quali vengono attualmente utilizzati per trasportare dati su lunghi tragitti, hanno iniziato ad essere utilizzati nei data center, in parallelo con CPU e componenti di memoria. Ciò consente la separazione della memoria RAM dalla CPU che possono essere unite mediante le connessioni ottiche. IBM ha ideato e prodotto un circuito integrato con lo scopo di elaborare informazioni di tipo elettronico ed ottico in un unico chip. Questo viene attualmente indicato come "nanofotonica integrata con CMOS" o CINP. Un vantaggio delle interconnessioni ottiche è il fatto che le schede madri che in precedenza richiedevano un certo tipo di sistema su un chip SoC ora possono spostare i controller di memoria e di rete precedentemente dedicati dalle schede madri, diffondendo i controller sul rack. Ciò consente la standardizzazione delle interconnessioni backplane e delle schede madri per più tipi di SoC, il che consente aggiornamenti più tempestivi delle CPU.

Un altro campo di ricerca moderno è la spintronica. La spintronica è un particolare campo nel quale si può fornire una sostanziale potenza di calcolo ed archiviazione, senza accumulo di calore. Alcune ricerche vengono condotte su chip ibridi, che combinano fotonica e spintronica.

                                     

5.1. Ricerca e tecnologie emergenti Cloud computing

Per cloud computing si intende un modello che consente lutilizzo di risorse informatiche, come server o applicazioni, evitando linterazione tra il proprietario di tali risorse e lutente che le utilizza. In genere, questo viene offerto come servizio rendendolo un altro esempio di SaaS Software come servizio, PaaS Pitattaforme come servizio e Iaas Infrastrutture come servizio a seconda di che funzionalità si offre. Le caratteristiche chiave includono laccesso "on demand", un ampio accesso alla rete e buone capacità di ridimensionamento veloce. Si parla anche del cloud computing per quanto riguarda il risparmio energetico. Consentire lesecuzione di migliaia di istanze di calcolo su una singola macchina anziché su migliaia di singole macchine è considerato un buon modo di abbattere i consumi. Facilita inoltre il passaggio ad ennergie rinnovabili poiché sarebbe necessario alimentare solo una server farm con un set di pannelli solari o turbine eoliche invece di milioni di case separate. Tuttavia, lelaborazione da una posizione centralizzata ha le sue sfide. Uno dei principali è la sicurezza. Le aziende di cloud computing non hanno inoltre nessun obbligo a mostrare quali dati possiedono su di un determinato individuo, dove vengono conservati o come vengono utilizzati. Le leggi attuali non sono ancora attrezzate per gestire queste circostanze. In futuro, i legislatori di molti paesi dovranno spingere per regolare il cloud computing e proteggere la privacy degli utenti. Il cloud computing è anche un ottimo modo per gli utenti individuali o per le piccole-medie imprese di beneficiare di economie di scala. Diversamente da quanto detto prima, attualmente linfrastruttura di cloud computing è troppo sottosviluppata per avvantaggiare la comunità scientifica, nel giro di pochi anni di sviluppo potrebbe anche essere utilizzata per aiutare i gruppi di ricerca più piccoli a ottenere la potenza di calcolo di cui hanno bisogno per rispondere a innumerevoli domande del mondo.

                                     

5.2. Ricerca e tecnologie emergenti Informatica quantistica

Linformatica quantistica è unarea di ricerca che riunisce le discipline dellinformatica, dellIT e della fisica quantistica. Lidea alla base è che linformazione sia una un elemento fondamentale nella fisica è relativamente nuova, ma al momento pare si possa creare un forte legame tra la teoria dellinformazione e la meccanica quantistica. Diversamente dal calcolo tradizionale che opera su un sistema binario di uno e zeri, il calcolo quantistico utilizza i qubit. I Qubit si possono trovare in uno stato di sovrapposizione, il che significa che si trovano contemporaneamente in ambedue gli stati, uno e zero. Ciò significa che il qubit non è compreso tra 1 e 0, ma in realtà il valore del qubit cambia a seconda di quando viene misurato. Questa caratteristica dei qubit viene chiamata in termini tecnici entanglement quantistico ed è lidea alla base del calcolo quantico ed è ciò che consente ai computer quantistici di eseguire calcoli con equazioni su larga scala. Il calcolo quantistico si utilizza per la ricerca scientifica nella quale un normale computer non avrebbe una potenza di calcolo sufficiente ad eseguire i calcoli necessari. Un buon esempio potrebbe essere la modellistica molecolare. Le molecole di grandi dimensioni sono troppo complesse per i computer moderni per calcolare cosa succede loro durante una reazione, ma la potenza dei computer quantistici può potenzialmente aiutare a spalancare le porte per comprendere ulteriormente queste molecole.