sabato 19 marzo 2016

Promemoria sulla programmazione

In informatica un linguaggio di programmazione è un linguaggio formale che specifica un insieme di istruzioni che possono essere usate per produrre dati in output. Esso è utilizzabile per il controllo del comportamento di una macchina formale o di una implementazione di essa (tipicamente, un computer) ovvero in fase di programmazione di questa attraverso la scrittura del codice sorgente di un programma ad opera di un programmatore.


Programmare in un dato linguaggio di programmazione significa generalmente scrivere uno o più semplici file di testo ASCII, chiamato codice sorgente che esprime l'algoritmo del programma tradotto nel linguaggio di programmazione.

Per essere eseguito dal processore il codice sorgente deve essere tradotto in linguaggio macchina che è il linguaggio in cui opera la macchina a livello fisico, e questo è possibile attraverso due possibile tecniche: la compilazione e l'interpretazione.
Se il programma, come spesso accade, usa delle librerie, o è composto da più moduli software, questi devono essere 'collegati' tra loro. Lo strumento che effettua questa operazione è detto appunto linker ("collegatore"), e si occupa principalmente di risolvere le interconnessioni tra i diversi moduli.
Classificazione dei linguaggi

In generale esistono circa 2500 linguaggi di programmazione più o meno noti e diffusi. Questi in primis vengono classificati, a seconda del livello di astrazione a partire dal linguaggio macchina fin verso il linguaggio logico umano, in linguaggi a basso livello e ad alto livello (negli anni novanta si distinguevano anche quelli ad altissimo livello).
  • In informatica, per linguaggio di programmazione a basso livello si intende un linguaggio di programmazione che coincide con il linguaggio macchina o che differisce poco dal linguaggio macchina, fornendo poca o nessuna astrazione dai dettagli del funzionamento fisico del calcolatore. L'espressione si contrappone a "linguaggio di programmazione ad alto livello". Si può dire che i linguaggi di programmazione di basso livello sono orientati "alla macchina" (ovvero il loro scopo è di essere direttamente eseguibili dal processore, o di poter essere tradotti facilmente in programmi eseguibili dal processore), mentre i linguaggi ad alto livello sono orientati "al programmatore" (il loro scopo è quello di essere facilmente utilizzabili dai programmatori umani).
A loro volta i linguaggi possono essere classificati in linguaggi compilati e interpretati come visto sopra.

Normalmente i linguaggi vengono poi distinti in tre grandi famiglie basate sul paradigma di programmazione di riferimento: i linguaggi imperativi, quelli funzionali e quelli logici.

Linguaggi imperativi

Nei linguaggi imperativi l'istruzione è un comando esplicito, che opera su una o più variabili oppure sullo stato interno della macchina, e le istruzioni vengono eseguite in un ordine prestabilito. Scrivere un programma in un linguaggio imperativo significa essenzialmente occuparsi di cosa la macchina deve fare per ottenere il risultato che si vuole, e il programmatore è impegnato nel mettere a punto gli algoritmi necessari a manipolare i dati.

Esempio: Assembly

Linguaggi strutturati

La programmazione strutturata è una tecnica il cui scopo è di limitare la complessità della struttura del controllo dei programmi. Il programmatore è vincolato ad usare solo le strutture di controllo canoniche definite dal Teorema di Böhm-Jacopini, ovvero la sequenza, la selezione e il ciclo, evitando le istruzioni di salto incondizionato.
Esempi: C, Pascal, ecc.

Linguaggi orientati agli oggetti

La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione che prevede di raggruppare in un’unica entità (la classe) sia le strutture dati che le procedure che operano su di esse, creando per l’appunto un “oggetto” software dotato di proprietà (dati) e metodi (procedure) che operano sui dati dell’oggetto stesso.

Esempio PHP

class NomeClasse {
 //qui dentro vanno inserite le variabili pubbliche (gli attributi) e private della classe
 //e le funzioni (metodi)
 //questa funzione è il costruttore della classe e si chiama sempre così
 function __construct ($parametri) { 
  //istruzioni...
 }
 } //qui finisce la dichiarazione della classe 

Un tipo di dato (o semplicemente tipo) è un nome che indica l’insieme di valori che una variabile, o il risultato di un’espressione, possono assumere e le operazioni che si possono effettuare su tali valori.

Esempi: C++, C#, Java, PHP, Phython, Visual Basic

La programmazione a oggetti è basata su una evoluzione del concetto di tipo di dato astratto caratterizzata da incapsulamento, ereditarietà, polimorfismo.

In informatica l'ereditarietà è uno dei concetti fondamentali nel paradigma di programmazione a oggetti. Essa consiste in una relazione che il linguaggio di programmazione, o il programmatore stesso, stabilisce tra due classi. Se la classe B eredita dalla classe A, si dice che B è una sottoclasse di A e che A è una superclasse di B.

Linguaggio C++

Il C++ è un linguaggio di programmazione orientato agli oggetti, con tipizzazione statica. È stato sviluppato (in origine col nome di "C con classi") da Bjarne Stroustrup ai Bell Labs nel 1983 come un miglioramento del linguaggio C. Tra i miglioramenti principali troviamo: l'introduzione del paradigma di programmazione a oggetti, funzioni virtuali, overloadingdegli operatori, ereditarietà multipla, template e gestione delle eccezioni.

C#

Il C# (pronuncia: [ˈsiː ˈʃɑːp], come la parola inglese "see sharp")[1] è un linguaggio di programmazione orientato agli oggetti sviluppato da Microsoft all'interno dell'iniziativa .NET, e successivamente approvato come standard dalla Ecma(ECMA-334) e ISO (norma ISO/IEC 23270).

La sintassi e struttura del C# prendono spunto da vari linguaggi nati precedentemente, in particolare Delphi, C++, Java e Visual BASiC. Il risultato è un linguaggio con meno simbolismo rispetto a C++, meno elementi decorativi rispetto a Java, ma comunque orientato agli oggetti in modo nativo e adatto allo sviluppo di una vasta gamma di software.

Java

In informatica Java è un linguaggio di programmazione ad alto livello, orientato agli oggetti e a tipizzazione statica, specificatamente progettato per essere il più possibile indipendente dalla piattaforma di esecuzione.

Java è stato creato a partire da ricerche effettuate alla Stanford University agli inizi degli anni novanta. Nel 1992 nasce il linguaggio Oak (in italiano "quercia"), prodotto da Sun Microsystems e realizzato da un gruppo di esperti sviluppatori capitanati da James Gosling.[1] Tale nome fu successivamente cambiato in Java per problemi di copyright (il linguaggio di programmazione Oak esisteva già).

Il linguaggio in sé definisce solo una minima parte delle librerie utilizzabili in combinazione con il linguaggio stesso. La parte restante è definita dalla piattaforma sulla quale il programma sarà eseguito.

La Oracle mette a disposizione tre piattaforme ufficiali, ciascuna destinata ad ambiti diversi:

Nessun commento:

Posta un commento