Programmazione (informatica)

La programmazione è il processo di ideazione, progettazione e costruzione di programmi informatici eseguibili volti generalmente alla risoluzione di problemi o allo svolgimento di computazioni. La programmazione è costituita da fasi come l'analisi e la generazione di algoritmi, lo studio della…

Programmazione (informatica)
Immagine: User:K.lee — Public domain — Wikimedia Commons

La programmazione è il processo di ideazione, progettazione e costruzione di programmi informatici eseguibili volti generalmente alla risoluzione di problemi o allo svolgimento di computazioni. La programmazione è costituita da fasi come l'analisi e la generazione di algoritmi, lo studio della loro accuratezza e del consumo di risorse, e l'implementazione di suddetti algoritmi (solitamente in un linguaggio di programmazione), fase nota come scrittura di codice (in inglese coding).

Il codice sorgente di un programma è scritto in uno o più linguaggi che sono comprensibili per i programmatori, piuttosto che nel linguaggio macchina, composto dalle istruzioni in codice binario direttamente eseguite dal processore. Lo scopo della programmazione è quello di trovare una sequenza di istruzioni in grado di automatizzare lo svolgimento di un compito su un calcolatore, spesso volto alla risoluzione di un dato problema. Una programmazione di qualità solitamente richiede competenza in vari ambiti, comprese la conoscenza del settore d'applicazione, di algoritmi specializzati, e di logica formale.

Tra gli incarichi legati alla programmazione ci sono la gestione del codice sorgente, il suo collaudo e il debugging, nonché l'implementazione di sistemi di automazione, e la gestione degli artefatti derivati, come il codice macchina. Queste fasi possono essere considerate parte del processo di programmazione, ma sono più spesso associate al più ampio termine "sviluppo del software", mentre si tende a racchiudere il termine "programmazione" più strettamente nell'effettiva scrittura del programma. L'ingegneria del software combina tecniche e principi associabili all'ingegneria con lo sviluppo del software. Ad esempio, chiunque sia coinvolto nello sviluppo di un programma può a volte occuparsi di reverse engineering, nel cercare di comprendere un programma già esistente con lo scopo di implementare in qualche modo le sue funzioni.

Descrizione

Con fondamenti di programmazione si indicano le conoscenze basilari che un programmatore deve possedere per la programmazione in un qualunque linguaggio di programmazione. Per la scrittura di righe di codice nei linguaggi di programmazione è sufficiente per un programmatore utilizzare un normale elaboratore testi, o un programma ad hoc detto editor spesso compreso all'interno di un ambiente di sviluppo integrato (IDE). Nel secondo caso il software individua automaticamente gli errori più banali (es. errori di sintassi) che un programmatore può commettere.

I passi con cui si sviluppa un programma efficiente sono simili tra di loro per quasi tutti i contesti di programmazione (aziende, hobby, lavoro, ecc.). Le prime fasi sono strettamente legate alla logica di quello che si va a creare e del suo funzionamento, mentre le ultime sono orientate verso lo specifico linguaggio di programmazione che si intende utilizzare. La prima operazione da svolgere per la creazione di un qualunque programma è definire nel modo più preciso ed accurato possibile quale problema intendiamo risolvere. Questo vale sia per una semplice funzione matematica che per un complesso database. L'input che il programma riceve è legato all'output che intendiamo restituire dopo l'elaborazione. Questa fase può presentare una grande complessità dovuta al lavoro astratto che impone al programmatore di immaginare il risultato finale e la sua formalizzazione.

Progettazione di un programma

Superata la definizione del problema che si vuole risolvere occorre progettare delle possibili soluzioni, porle a confronto tra loro e risalire a quella più efficiente (ricordando che una soluzione non efficiente per un determinato problema potrebbe essere utile allo sviluppo di altri programmi). Per confrontare l'effettiva differenza tra una soluzione ed un'altra possono essere utilizzati due diversi strumenti:

Uno di essi è il diagramma di flusso: con un grafico molto intuitivo si può illustrare un processo in tutte le fasi che lo caratterizzano. Ogni fase è collegata con le altre dalle linee di flusso che indicano la direzione del processo interno al programma.

Un efficace metodo di progettazione è lo pseudocodice, una forma di scrittura in codice affine alla lingua parlata dal programmatore. La sua stesura è simile ad una scaletta di operazioni che si definiscono quando si deve eseguire una determinata azione. La scrittura dello pseudocodice deve essere dettagliata almeno quanto il codice finale, ma rispetto ad esso non si richiede una sintassi precisa lasciando il programmatore libero di concentrarsi sui problemi principali del programma.

Servizi correlati

Altre voci

F

Fidelizzazione

La fidelizzazione indica l'insieme delle azioni di marketing volte al mantenimento della clientela già esistente e si realizza principalmente attraverso una serie di strategie consone a creare il più elevato grado di soddisfazione del cliente.

Leggi la voce →
Ansible (software)A

Ansible (software)

In informatica Ansible è un software libero che consente di automatizzare le procedure di configurazione e gestione sui sistemi unix-like e Windows (Il nome "Ansible" si riferisce ad un oggetto fantascientifico che consente di comunicare più velocemente della luce).

Leggi la voce →
I

Idealista (azienda)

Idealista (stilizzata come idealista, in lettere minuscole, dal 2015; e precedentemente idealista.com) è un'azienda spagnola fondata il 4 ottobre 2000 che offre servizi di portale immobiliare via internet in Spagna, Andorra, Italia e Portogallo.

Leggi la voce →
I

Ingegneria gestionale

L'ingegneria gestionale è un ramo dell'ingegneria che studia, con approccio quantitativo e qualitativo, gli aspetti organizzativi, operativi e tecnici delle imprese, siano esse industriali o di servizio. Si tratta di una delle discipline ingegneristiche più recenti e ampie.

Leggi la voce →
S

Specifica (ingegneria del software)

Il termine specifica, nell'ingegneria del software, viene usato in diversi contesti con significati diversi. In genere si può definire come un accordo tra un produttore di servizi ed un utente. A seconda del contesto il produttore e l'utente saranno diversi.

Leggi la voce →
E

Enterprise resource planning

Un enterprise resource planning o ERP, conosciuto come pianificazione delle risorse d'impresa, è un software di gestione (o Software gestionale) che integra tutti i processi aziendali e tutte le funzioni aziendali rilevanti, ad esempio vendite, acquisti, gestione magazzino, finanza o…

Leggi la voce →