Cristina Vignati 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; Il suo nome deriva da traduttore di formule matematiche in algoritmi. 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, nome commerciale ® di 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 PHP (acronimo ricorsivo per PHP: Hypertext Preprocessor) è un linguaggio di scripting general-purpose open source molto utilizzato, è specialmente indicato per lo sviluppo web e può essere integrato nell'HTML. Ciò che distingue 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. Potete persino configurare il vostro web server per processare tutte i vostri file HTML con PHP ed allora non ci sarebbe realmente alcun modo per gli utenti di sapere cosa avete sul vostro 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 objectoriented 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.