linguaggi - lavori di Informatica

Evoluzione dei linguaggi di programmazione
- Linguaggio binario
Il sistema numerico binario è un sistema numerico posizionale in base 2. Esso utilizza solo due
simboli, di solito indicati con 0 e 1, invece delle dieci cifre utilizzate dal sistema numerico
decimale. Ciascuno dei numeri espressi nel sistema numerico binario è chiamato "numero binario".
In informatica il sistema binario è utilizzato per la rappresentazione interna dell'informazione dalla
quasi totalità degli elaboratori elettronici, in quanto le caratteristiche fisiche deicircuiti digitali
rendono particolarmente conveniente la gestione di due soli valori, rappresentati fisicamente da due
diversi livelli di tensione elettrica.
Tali valori assumono convenzionalmente il significato numerico di 0 e 1 o quelli di vero e falso
della logica booleana.
- Assembler
Un assembler (assemblatore in italiano) è un software che trasforma le istruzioni mnemoniche
dell'assembly in linguaggio macchina. Si tratta dunque di un compilatore per un particolare
linguaggio assembly.
Il termine assembler deriva dal fatto che le istruzioni vengono convertite e montate una accanto
all'altra come se fossero in fila.
Ci sono molti tipi di linguaggi assembly e di conseguenza diversi assemblatori: esistono gli
assembler per programmare i microchip, per creare programmi sul Personal Computer, per telefoni
cellulari, ecc. Questo perché un assemblatore produce linguaggi macchina per una specifica
famiglia di processori (intel 8086, 80386, Motorola 68000, ecc.).
- Fortran
Il è uno dei primi linguaggi di programmazione, essendo stato sviluppato a partire dal 1954, da un
gruppo di lavoro guidato da John Backus. Il primo manuale di riferimento per il programmatore del
FORTRAN I, "The FORTRAN automatic coding system for the IBM 704 EDPM", scritto dallo
stesso Backus, è del 1956; il compilatore fu pubblicato nel 1957.
Il Fortran è un linguaggio quasi sempre compilato, imperativo, con tipizzazione statica delle
variabili, progettato principalmente per ilcalcolo scientifico e numerico; vi sono state però anche
implementazioni con codice interpretato. Un tipo particolare di Fortran compilato è il Fortran
FLAG (Fortran Load And Go), sviluppato da Bob Richardson, programmatore presso la Rice
University, molto usato negli anni settanta per l'esecuzione di programmi non troppo complessi.
Grazie sia agli innumerevoli programmi applicativi sviluppati nel corso degli anni, sia alle immense
librerie di funzioni (richiamabili anche da programmi scritti con altri linguaggi di programmazione),
il Fortran è tuttora molto usato.
Di esso esistono varianti per il calcolo parallelo (usate nel calcolo scientifico: simulazione di fluidi,
interazioni fra particelle, previsioni meteorologiche, ecc.); inoltre, anche se progettato
originariamente come linguaggio procedurale, alcune sue versioni più recenti consentono di usare
anche costrutti propri della programmazione orientata agli oggetti.
- Pascal
In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth. Si basa sul
linguaggio ALGOL e fu così chiamato in onore del matematico e filosofo francese Blaise Pascal,
inventore della prima macchina calcolatrice automatica.
Le caratteristiche principali del Pascal sono una sintassi molto chiara e molto rigida con l'obbligo di
dividere il programma in sezioni ben definite (uses, implementation) e di dichiarare in anticipo tutte
le variabili usate nel programma (var, const); permette l'uso di tipi di dati complessi e definibili dal
programmatore (i record) tramite la sezione type; permette (con alcune rigidità) l'uso dei puntatori e
l'allocazione dinamica della memoria (new e dispose). Il Pascal è pertanto classificato come
linguaggio semidinamico, in quanto gestisce i puntatori, permettendo di creare liste di variabili di
dimensione non nota all'atto della compilazione, ma questi possono essere solo di un tipo alla volta,
il tipo usato per definire la variabile puntatore stessa. Al posto delle subroutine di uso comune nei
linguaggi di allora, il Pascal introduce le procedure e le funzioni, che estendono il concetto di
subroutine incapsulando al loro interno le variabili e i dati locali, ed esponendo solo i valori in
ingresso ed in uscita. Inoltre, nella sua formulazione originale, era privo dell'istruzione GOTO,
aggiunta poi in seguito con riluttanza.
- Basic
Il BASIC, in informatica, è un linguaggio di programmazione ad alto livello sviluppato nel 1964
presso l'Università di Dartmouth sulcalcolatore GE-225. Ne furono coinventori i professori John
George Kemeny e Thomas Eugene Kurtz. Il primo programma in BASIC "girò" il 1º maggio 1964
alle ore 4:00.
- RPG
RPG oppure RPG IV è un linguaggio di programmazione nativo per minicomputer IBM della serie
iSeries, denominata anche, più comunemente, AS/400. La sua versione più recente comprende l'uso
di prototipi di funzioni e procedure, binding statico e dinamico dei dati, accesso a librerie di routine
scritte in C, uso di funzioni contenute in DLLcompilate a partire da altri linguaggi, e supporta
totalmente codice dotato di sintassi ricorsiva e rientrante.
Un programma RPG inizia tipicamente con una File Specification, contenente la lista di tutti i file
da scrivere, leggere o modificare, seguita da una Input Specification, con le strutture dei dati (data
Structures) e le matrici. Segue la Calculation Specification che racchiude la parte più importante del
programma, ed infine la Output Specification, usata, fra l'altro, per impostare l'aspetto dei report
stampati. Una delle modalità di funzionamento più caratteristiche del linguaggio è il cosiddetto
ciclo (The Cycle): ogni programma RPG gira all'interno di un loop (letteralmente anello, cioè
gruppo di istruzioni eseguite ciclicamente), che può essere usato, ad esempio, per esaminare uno
alla volta tutti i record di un file. In alternativa il ciclo può ripetersi per un numero indefinito di
volte, finché non viene interrotto dal verificarsi di un evento, oppure a seguito di un esplicito
comando dell'utente. Altra caratteristica dell'RPG è che, molto più del COBOL e del FORTRAN, il
modo in cui il codice è scritto è strettamente dipendente da come il testo è incolonnato. In altre
parole anche gli spazi vuoti all'interno del codice
devono avere un'esatta dimensione. Tutto questo era valido fino a qualche anno fa. Ultimamente il
linguaggio si è evoluto e permette anche la scrittura in formato
-C LANGUAGE
Il C è un linguaggio di programmazione ad alto livello che integra caratteristiche dei linguaggi di
basso livello, come il linguaggio macchina e l'assembly, per questo si usa anche l'espressione "di
medio livello".
Il C è rinomato per la sua efficienza, e si è imposto come linguaggio di riferimento per la
realizzazione di software di sistema su gran parte delle piattaforme hardware moderne. La
standardizzazione del linguaggio (da parte dell'ANSI prima e dell'ISO poi) garantisce la portabilità
dei programmi scritti in C (standard, spesso detto ANSI C) su qualsiasi piattaforma.
Oltre che per il software di sistema, il C è stato a lungo il linguaggio dominante in tutta una serie di
altri domini applicativi caratterizzati da forte enfasi sull'efficienza. Esempi tipici sono le
telecomunicazioni, il controllo di processi industriali e il software real-time. Oggi il predominio del
C in questi contesti è in parte diminuito a seguito dell'avvento dicompetitor significativi, primo fra
tutti il C++.
Il C ha, e continua ad avere, anche una notevole importanza didattica, sebbene, per la sua
complessità semantica e per le forti relazioni di tale semantica con il funzionamento dell'hardware
dei computer, non si tratti di un linguaggio particolarmente intuitivo per i principianti, e in special
modo a quelli sprovvisti di un adeguato background sull'elettronicadei calcolatori. Se un tempo
scuole superiori e corsi universitari adottavano il C come linguaggio di riferimento a causa della sua
importanza tecnica, oggi questa scelta trova un'ulteriore motivazione nella crescente importanza di
linguaggi che dal C derivano (per esempio C++, Java e C# e, per consentire allo studente un
approccio iniziale più rapido ed intuitivo, linguaggi ad alto livello come Python).
-C ++
Il linguaggio di programmazione C++ fu originariamente derivato dal C. Tuttavia, non tutti i
programmi C sono programmi validi in C++. Via via che il C e il C++ evolvevano
indipendentemente, sono aumentate le loro incompatibilità. L'ultima versione del C, C99, creò un
numero di conflitti in più. Le differenze rendono difficile la scrittura di programmi e librerie che
funzionino sia in C che in C++, e creano confusione in chi programma in entrambi i linguaggi. La
disparità rende difficile per entrambi i linguaggi l'adozione di caratteristiche dall'altro.
Bjarne Stroustrup, il creatore di C++, ha ripetutamente suggerito[5] che le incompatibilità tra il C e
il C++ dovrebbero essere ridotte il più possibile per massimizzare l'interoperatività tra i due
linguaggi. Altri hanno sostenuto che poiché il C e il C++ sono linguaggi differenti, la compatibilità
tra i due è utile ma non vitale; secondo questa posizione, gli sforzi per ridurre l'incompatibilità non
devono ostacolare i tentativi per migliorare i linguaggi nel loro isolamento.
- JAVA
In informatica Java è un linguaggio di programmazione orientato agli oggetti, 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. Tale nome fu successivamente
cambiato in Java a causa di un problema di copyright (il linguaggio di programmazione Oak
esisteva già).
Per facilitare il passaggio a Java ai programmatori old-fashioned, legati in particolare a linguaggi
come il C++, la sintassi di base (strutture di controllo, operatori e così via) è stata mantenuta
pressoché identica a quella del C++; tuttavia, non sono state introdotte caratteristiche ritenute fonti
di una complessità non necessaria a livello di linguaggio e che favoriscono l'introduzione di
determinati bug durante la programmazione, come l'aritmetica dei puntatori e l'ereditarietà multipla
delle classi. Per le caratteristiche orientate agli oggetti del linguaggio ci si è ispirati al C++ e
soprattutto all'Objective C.
In un primo momento Sun decise di destinare questo nuovo prodotto alla creazione di applicazioni
complesse per piccoli dispositivi elettronici; fu solo nel 1993 con l'esplosione di internet che Java
iniziò a farsi notare come strumento per iniziare a programmare per internet.
Contemporaneamente Netscape Corporation annunciò la scelta di dotare il suo allora omonimo e
celeberrimo browser della Java Virtual Machine (JVM). Questo segna una rivoluzione nel mondo di
Internet: grazie alle applet, le pagine web diventarono interattive a livello client (ovvero le
applicazioni vengono eseguite direttamente sulla macchina dell'utente di internet, e non su un server
remoto). Gli utenti poterono per esempio utilizzare giochi direttamente sulle pagine web ed
usufruire di chat dinamiche e interattive.
Java fu annunciato ufficialmente il 23 maggio 1995 a SunWorld.
Il 13 novembre 2006 la Sun Microsystems ha distribuito la sua implementazione del compilatore
Java e della macchina virtuale (virtual machine) sotto licenza GPL. Non tutte le piattaforme java
sono libere. L'ambiente Java libero si chiama IcedTea.
L'8 maggio 2007 Sun ha pubblicato anche le librerie (tranne alcune componenti non di sua
proprietà) sotto licenza GPL, rendendo Java un linguaggio di programmazione la cui
implementazione di riferimento è libera.
Il linguaggio è definito da un documento chiamato The Java Language Specification (spesso
abbreviato JLS). La prima edizione del documento è stata pubblicata nel 1996. Da allora il
linguaggio ha subito numerose modifiche e integrazioni, aggiunte di volta in volta nelle edizioni
successive. Ad oggi, la versione più recente delle specifiche è la Java SE 8 Edition (quarta).
- ASP
In informatica, le Active Server Pages (Pagine Server Attive, in genere abbreviato in ASP) sono
pagine web contenenti, oltre al puro codice HTML, degli script che verranno eseguiti dal server
(elaborazione lato server) per generare il codice HTML runtime da inviare al browser dell'utente
(proprio per questo vengono in genere definite pagine web dinamiche). In questo modo è possibile
mostrare contenuti dinamici (ad esempio estratti da database che risiedono sul server web) e
modificarne l'aspetto secondo le regole programmate negli script, il tutto senza dover inviare il
codice del programma all'utente finale (al quale va inviato solo il risultato), con notevole risparmio
di tempi e banda. La tecnologia ASP comprende alcuni linguaggi di scripting per la
programmazione Web all'interno del cosiddetto paradigma del Web dinamico.
I linguaggi utilizzati sono VBScript e JScript per l'ambiente ASP e VB.NET, C# e J# per l'ambiente
ASP.NET (anche se il più utilizzato è proprio VB.NET). Grazie a questi linguaggi il sistema
dinamico può comunicare lato server con tutti gli oggetti presenti sul sistema, infatti le possibilità
offerte dal sistema sono fortemente orientate verso l'interfaccia con un corrispondente database,
rendendo così possibile lo sviluppo di siti dinamici basati sulle informazioni contenute nel database.
È possibile interfacciare le pagine ASP con qualsiasi tipo di database che abbia un driver OLEdb o
ODBC, come ad esempio Access, SQL Server, MySQL, Oracle, Firebird,Sybase e tanti altri.
Funziona ufficialmente solo sul web server Microsoft Internet Information Services (IIS).
Nonostante questo, per quanti utilizzano piattaforme GNU/Linux è disponibile un emulatore che
consente di eseguire i codici ASP senza dover riscrivere l'intero progetto ma soltanto una piccola
porzione di esso. Nel diffuso web server Apache, ad esempio, è possibile utilizzare pagine dalla
sintassi simile ad ASP installando e configurando il modulo Apache: ASP funzionante sulla base di
Perl. In alternativa esiste inoltre un modulo generalmente noto come ChiliASP (su cui si basa il
modulo SJSASP, Sun Java System Active Server Pages, disponibile sul sito di SUN).
Una caratteristica molto apprezzata dagli utilizzatori dell'interprete ASP è la semplice e
comprensibile sintassi di programmazione che rende la curva di apprendimento di tale linguaggio
poco ripida. L'interprete ASP, tuttavia, presenta alcuni limiti, specialmente di prestazioni.
Principali concorrenti di ASP sono il PHP, che funziona in modo molto simile, ma con una sintassi
del tutto diversa dal VBScript, e l'unione di Perl/Python e CGI, che è un meccanismo meno
integrato nella sola pagina web e quindi più macchinoso da gestire, che tuttavia permette al
programmatore più flessibilità.
ASP è stato ufficialmente abbandonato, seppure continua ancora ad essere supportato e può
funzionare sulle ultime versioni di IIS, in favore di ASP.NET, ormai giunto alla versione 4.x, che
consente di creare applicazioni web su piattaforma Microsoft che possono sfruttare anche
funzionalità avanzate e, soprattutto, contare su un'infrastruttura molto più avanzata, qual è quella
offerta dal .NET Framework in accoppiata con IIS 7.
- PHP
PHP (acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti;
originariamente acronimo di "Personal Home Page") è un linguaggio di programmazione
interpretato, originariamente concepito per la programmazione di pagine web dinamiche.
L'interprete PHP è un software libero distribuito sotto la PHP License.
Attualmente è principalmente utilizzato per sviluppare applicazioni web lato server, ma può essere
usato anche per scrivere script ariga di comando o applicazioni stand-alone con interfaccia grafica.
PHP riprende per molti versi la sintassi del C, come peraltro fanno molti linguaggi moderni, e del
Perl. È un linguaggio a tipizzazione debole e dalla versione 5 migliora il supporto al paradigma di
programmazione ad oggetti. Certi costrutti derivati dal C, come gli operatori fra bit e la gestione di
stringhe come array, permettono in alcuni casi di agire a basso livello; tuttavia è fondamentalmente
un linguaggio di alto livello, caratteristica questa rafforzata dall'esistenza delle sue moltissime API,
oltre 3.000 funzioni del nucleo base.
PHP è in grado di interfacciarsi a innumerevoli database tra cui MySQL, PostgreSQL, MariaDB,
Oracle, Firebird, IBM DB2, Microsoft SQL Server solo per citarne alcuni tra cui anche database
NoSql come per esempio MongoDB, e supporta numerose tecnologie, come XML, SOAP, IMAP,
FTP, CORBA. Si integra anche con altri linguaggi/piattaforme quali Java e .NET e si può dire che
esista un wrapper per ogni libreria esistente, come CURL, GD, Gettext, GMP, Ming, OpenSSL ed
altro.
Fornisce un'API specifica per interagire con Apache, nonostante funzioni naturalmente con
numerosi altri server web. È anche ottimamente integrato con il database MySQL, per il quale
possiede più di una API. Per questo motivo esiste un'enorme quantità di script e librerie in PHP,
disponibili liberamente su Internet. La versione 5, comunque, integra al suo interno un piccolo
database embedded, SQLite.
Dispone di un archivio chiamato PEAR che mette a disposizione un framework di librerie riusabili
per lo sviluppo di applicazioni PHP e di PECL che raccoglie tutte le estensioni conosciute scritte in
C.
PHP non ha ancora un supporto nativo per le stringhe Unicode o multibyte; il supporto Unicode è in
fase di sviluppo per una futura versione di PHP, e consentirà di usare caratteri non ASCII in
stringhe e nomi di funzioni, classi e metodi.