Linguaggi di programmazione

Transcript

Linguaggi di programmazione
Evoluzione linguaggi di
programmazione
Cos'è un linguaggio di programmazione?
Un linguaggio di programmazione è un linguaggio composto da regole ed istruzioni che, grazie alla
trasformazione dei dati di input e alla produzione, con questi, di dati di output, permetta di scrivere
programmi per computer.
Esempio: PHP, JAVA, C++....
Sistema binario (linguaggio di prima generazione)
Il linguaggio macchina è il linguaggio in cui sono scritti i programmi eseguibili per computer. Può
venire classificato come linguaggio di programmazione, sebbene quest'ultima espressione sia più
spesso riservata per indicare i linguaggi di alto livello con cui si scrivono programmi non
direttamente eseguibili, ma che richiedono una traduzione in linguaggio macchina.
Il linguaggio macchina è basato su un alfabeto detto binario perché comprende due soli simboli,
generalmente indicati con 0 e 1, detti bit. Il processore o CPU è quella componente hardware di un
computer che è in grado di eseguire i programmi scritti in linguaggio macchina, in altre parole, il
linguaggio macchina sono definite l'insieme di istruzioni fondamentali che un processore è in grado
di compiere in cui i codici di programmi da eseguire devono essere tradotti.
Assembly (linguaggio di seconda generazione)
Il linguaggio assembly, detto anche linguaggio assemblativo, è, tra i linguaggi di programmazione,
quello più vicino al linguaggio macchina vero e proprio.
L'assembly ha lo scopo generale di consentire al programmatore di ignorare il formato binario del
linguaggio macchina: ogni codice del linguaggio macchina viene sostituito, nell'assembly, da una
sequenza di caratteri che lo rappresenta; per esempio, il codice operativo per la somma potrebbe
essere trascritto come ADD.
In secondo luogo, i dati utilizzati dal programma possono essere scritti, in assembly, nella base
numerica più consona al momento: esadecimale, binaria, decimale, ottale ma anche in forma
simbolica, utilizzando stringhe di testo (identificatori). Il programma assembly risulta in questo
modo relativamente più leggibile di quello in linguaggio macchina.
Il programma però non può essere eseguito direttamente dal processore: esso deve essere
tradotto nella forma binaria corrispondente, usando un programma compilatore detto assembler.
Linguaggi di terza generazione
• Pascal: Le caratteristiche principali del Pascal sono una sintassi molto chiara e molto
rigida con l'obbligo di dividere il programma in sezioni ben definite e di dichiarare in
anticipo tutte le variabili usate nel programma;
•
• Basic: Il nome Visual Basic è composto dalle parole "Visual", che fa riferimento al
metodo utilizzato per creare l'interfaccia utente grafica visualizzata agli utenti, e "Basic",
che fa riferimento al linguaggio di programmazione BASIC.
• Fortran: è uno dei primi linguaggi di programmazione, essendo stato sviluppato a partire dal
1954.
Il Fortran è un linguaggio quasi sempre compilato, imperativo, con tipizzazione statica delle
variabili, progettato principalmente per il calcolo scientifico e numerico e il suo nome deriva da
traduttore di formule matematiche in algoritmo.
Originariamente come linguaggio procedurale, alcune sue versioni più recenti consentono di
usare anche programmazione orientata agli oggetti.
• COBOL: (COmmon Business - Oriented Language) è uno dei primi linguaggi di
programmazione ad essere stato sviluppato. COBOL è tutt'ora presente in molte applicazioni
software commerciali di tipo bancario, specie lato mainframe.
Gli applicativi COBOL sono alla base del funzionamento dei Bancomat e dell'operatività di molte
banche e assicurazioni.
• PL/1: (Programming Language One) è un linguaggio di programmazione progettato per lo
sviluppo di applicazioni scientifiche, ingegneristiche o commerciali.
La sintassi del linguaggio rispecchia quella della lingua inglese ed è pensata per poter
descrivere funzioni complesse.
Lo scopo del PL/I era appunto quello di creare un linguaggio unico che potesse essere utilizzato
sia per le applicazioni scientifiche (che usavano il FORTRAN) e in ambito commerciale( in cui si
usava il COBOL).
Linguaggi di quarta generazione 4GL
Linguaggi di quarta generazione (fourth generation language) che usano i database
in questa categoria troviamo i linguaggi dichiarativi, il cui rappresentate più illustre è SQL, utilizzato
principalmente nei database relazionali.
Sono la conseguenza logica delle prime tre generazioni le quali hanno cercato di avvicinarsi al
linguaggio umano. Questi linguaggi basano la loro potenza e versatilità su comandi predisposti, i
quali svolgono funzioni molto complesse.
I linguaggi di quarta generazione sono contemporaneamente:
• Simple & complex query language;
• Report generator (prospetti);
• Linguaggi grafici (CAD);
• Decision support system (DSS);
• Fogli elettronici;
• Editor di testi.
Linguaggi di quinta generazione
Questi linguaggi vanno impiegati nell'ambito della intelligenza artificiale. Si dividono in:
• Linguaggi logici: si basano sulle teorie della logica matematica e il più rappresentativo è il
PROLOG
• Linguaggi basati sugli oggetti: si basano sulla definizione di oggetti anziché di algoritmi.
Utilizzano icone per quanto riguarda l'uso dell'elaboratore.
• Linguaggi funzionali: ricostruiscono tutte le possibili funzioni utilizzando come punto di
partenza le tre funzioni di base.
Linguaggi orientati al Web
• HTML: L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per
ipertesti) è un linguaggio usato per descrivere la struttura dei documenti ipertestuali disponibili
nel World Wide Web. Tutti i siti web sono scritti in HTML, codice che viene letto ed elaborato dal
browser, il quale genera la pagina che viene visualizzata sullo schermo del computer.
L'HTML non è un linguaggio di programmazione, ma un linguaggio di markup, ossia descrive il
contenuto, testuale e non, di una pagina web. Punto HTML (.html) o punto HTM (.htm) è anche
l'estensione comune dei documenti HTML.
• Java: In informatica, un linguaggio di programmazione che permette di sviluppare programmi
eseguibili su diversi tipi di computer e compatibili con qualsiasi sistema operativo; per queste
sue caratteristiche è molto usato nella creazione di siti in Internet.
• PHP (acronimo ricorsivo per PHP: Hypertext Preprocessor) è un linguaggio di scripting generalpurpose open source molto utilizzato, è specialmente indicato per lo sviluppo web e può essere
integrato nell'HTML.
Ciò che distingue il PHP da altri linguaggi di scripting del tipo client-side JavaScript è che il
codice viene eseguito nel server, generando HTML che sarà dopo inviato al client. Il client
dovrebbe ricevere i risultati dell'esecuzione dello script, ma non potrà conoscere qual'è il codice
eseguito. Si può anche configurare il web server per processare tutti i file HTML presenti ed
allora non ci sarebbe realmente alcun modo per gli utenti di sapere cosa si ha sul server.
• Asp: ASP.NET è un insieme di tecnologie di sviluppo di software per il web, commercializzate
dalla Microsoft. Utilizzando queste tecnologie gli sviluppatori possono realizzare applicazioni
Web e servizi Web (Web Service).
Questo genere di pagine sono formare da tre parti:
• Testo
• Marcatori html
• Comandi script
Linguaggi orientati agli oggetti (smalltalk, eiffel, java)
La programmazione orientata agli oggetti è un paradigma di programmazione introdotto tra la
seconda metà degli anni '50 e l'inizio degli anni '60. Particolarmente utile nel caso della definizione
e creazione dell'interfaccia grafica di programmi e la permette di definire gli oggetti software e
stabilirne le modalità di interazione e le relazioni di interdipendenza degli uni con gli altri. Tra i
vantaggi che questo metodo di programmazione assicura troviamo il supporto alla modellazione
degli oggetti naturali (bottoni, menu, cerchi e quadrati) all'interno dell'infrastruttura software;
migliore gestione e manutenzione dei programmi di grandi dimensioni; favorire la modularità e il
riuso del codice.
• Smalltalk: è il primo linguaggio di programmazione Object-Oriented ed è definito puro, perché
tutto è un oggetto. Smalltalk originariamente progettato per semplificare all'utente inesperto l'uso
dell'elaboratore ed è costituito da un insieme di oggetti che comunicano tra loro attraverso
messaggi, tramite i quali possono scambiarsi dati o richiedere l'esecuzione di determinate
procedure (metodo). Un metodo è quindi un insieme di istruzioni, identificato da un nome, detto
selettore, con il quale può essere mandato in esecuzione ricevendo un certo insieme di valori in
ingresso. Ogni oggetto è creato e si comporta in accordo con quanto definito dalla sua classe (si
dice che un oggetto è istanza di una classe). La definizione di una classe determina pertanto la
struttura logica (e in ultima analisi anche la memorizzazione fisica) e il comportamento di ogni
oggetto che sia istanza di quella classe.
• Eiffel: Eiffel è un linguaggio di programmazione object-oriented che enfatizza la scrittura di
programmi robusti. Fu uno dei primi linguaggi a oggetti compilati e pensati per l'utilizzo
industriale e la sua sintassi ricorda quella di ALGOL, Pascal, e Ada. Eiffel ha una gestione
automatica e affidabile della memoria.
Il linguaggio è nato nel 1985 e ha avuto applicazioni nell'industria del software, pur non
riuscendo a raggiungere il livello di diffusione di altri linguaggi object-oriented compilati (per
esempio C++). Gode di un'ottima reputazione fra i suoi utenti e, in virtù delle sue rinomate
proprietà di purezza concettuale (ovvero di aderenza al paradigma object-oriented classico), non
raramente veniva usato nelle università a scopo didattico; oggi anche in questo ruolo è stato in
molti casi soppiantato da Java.
• Java: Java è un linguaggio di programmazione orientato agli oggetti, specificatamente
progettato per essere il più possibile indipendente dalla piattaforma di esecuzione. Il codice
compilato che viene eseguito su una piattaforma non deve essere ricompilato per essere
eseguito su una piattaforma diversa: il prodotto della compilazione è infatti in un formato
chiamato bytecode che può essere eseguito da una qualunque implementazione di un
processore virtuale detto Java Virtual Machine.