I LINGUAGGI DI
PROGRAMMAZIONE
In informatica un linguaggio di programmazione è 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.
I linguaggi di programmazione (Programming Languages o PL) si
dividono in due grandi famiglie:
A) PL A BASSO LIVELLO (cioè a livello del computer). Sono
1. Linguaggio Macchina ( 0101000101001011110….) (Non più
usato)
2. Linguaggio Esadecimale ( F1A437EFA14…) (Quasi mai usato)
3. Linguaggio Assembler (Istruzioni della CPU del computer)
(Ancora usato)
B) PL AD ALTO LIVELLO (cioè a livello dell’uomo). Sono tanti,
eccone alcuni fra i più usati:
1. C++ (si legge C plus plus, oppure C più più)
2. Java
3. Python
4. Visual Basic
5. PHP

I programmi a basso livello sono più lunghi e difficili da
scrivere ma sono velocissimi e richiedono poca memoria RAM.

I programmi ad alto livello sono facili da scrivere ma
richiedono un tempo di esecuzione maggiore perché tutte le
istruzioni devono essere prima tradotte in linguaggio macchina
e richiedono molta memoria RAM.
FORTRAN
Il Fortran (o FORTRAN: il nome maiuscolo è stato sostituito da
quello con la sola iniziale maiuscola a partire dal Fortran 90 acronimo di Formula Translation o Translator ovvero
traduzione/traduttore di formule matematiche in algoritmi
computazionali), è 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.
ASSEMBLY
Il linguaggio assembly, detto anche linguaggio assemblativo, è, tra
i linguaggi di programmazione, quello più vicino allinguaggio
macchina vero e proprio, pur essendo differente rispetto a
quest'ultimo. Erroneamente viene spesso chiamato "assembler",
anche se quest'ultimo termine identifica
il programma "assemblatore" che converte il linguaggio assembly in
linguaggio macchina.
L'assembly ha lo scopo generale di consentire al programmatore di
ignorare il formato binario del linguaggio macchina. Ogni codice
operativo del linguaggio macchina viene sostituito, nell'assembly,
da una sequenza di caratteri che lo rappresenta in
forma mnemonica; per esempio, il codice operativo per
la somma potrebbe essere trascritto comeADD e quello per
il salto come JMP. In secondo luogo, i dati e gli indirizzi di
memoria manipolati 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, con il quale mantiene
però un totale (o quasi totale) isomorfismo. Il programma scritto in
assembly non può essere eseguito direttamente dal processore;
esso deve essere tradotto nel linguaggio macchina (binario)
corrispondente, usando un
programma compilatore detto assembler.
COBOL
In informatica il COBOL (acronimo di COmmon Business-Oriented L
anguage, ossia, letteralmente, "linguaggio comune orientato
alle applicazioni commerciali") è uno dei primi linguaggi di
programmazione ad essere stato sviluppato. Nonostante sia un
linguaggio datato il COBOL è tuttora presente in
molte applicazioni software commerciali di tipo bancario, specie
lato mainframe (es.CICS), che non si è preferito o voluto migrare in
altra tecnologia software.
In generale, le istruzioni del linguaggio COBOL sono da intendere
come frasi scritte in inglese, che terminano con un punto fermo. In
certe situazioni, si riuniscono più istruzioni in un'unica «frase», che
termina con un punto, ma in tal caso spesso si usa la virgola, e
il punto e virgola per concludere le istruzioni singole. Le parole
chiave più importanti del linguaggio sono dei «verbi» imperativi,
che descrivono un comando che si vuole sia eseguito. Un gruppo
interessante di parole chiave è rappresentato dalle «costanti
figurative», che servono a indicare verbalmente delle costanti di
uso comune. Per esempio, la parola chiave ZERO rappresenta uno o
più zeri, in base al contesto.
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 memorianew 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.
'elenco che segue riporta alcune comuni parole chiave utilizzate nel
BASIC:
Manipolazione dei dati

LET (comando): assegna un valore (che può essere anche il
risultato di un'espressione) ad una variabile

DATA (istruzione): introduce un elenco di valori che possono
essere assegnati sequenzialmente dal comando READ.
Controllo del flusso

IF..THEN..ELSE (istruzione): usate per eseguire confronti o
prendere decisioni.

FOR..NEXT (istruzione): ripete una porzione di codice per un
certo numero di volte. Nel ciclo viene usata una variabile che
agisce da contatore.

WHILE..WEND e REPEAT..UNTIL (comandi): ripete una
porzione di codice mentre la condizione di controllo è vera
(ciclo WHILE..WEND) o finché non diventa vera (ciclo
REPEAT..UNTIL). La condizione viene verificata all'inizio del
ciclo (WHILE..WEND) oppure alla fine (REPEAT.UNTIL).

GOTO (comando): salta nel programma ad un determinato
numero di riga o ad una specifica etichetta.

GOSUB (comando): salta ad eseguire una determinata
porzione di codice, continuando ad eseguire il programma
dall'istruzione successiva il GOSUB non appena viene
incontrato il comando RETURN. Il GOSUB era usato per
implementare le subroutine.

ON..GOTO/GOSUB (comando): esegue un salto in base al
verificarsi di una determinata condizione.
Input/output

PRINT (istruzione): visualizza un messaggio sullo schermo o
su un altro dispositivo di output.

INPUT (istruzione): chiede all'utente di inserire un valore che
sarà memorizzato in una variabile. Può includere un
messaggio di testo.

TAB o AT (funzione): imposta la posizione dove stampare il
prossimo carattere.
Vari

REM (da Remark): introduce un commento del programmatore
(il nome del programma, la spiegazione delle variabili
utilizzate, le istruzioni d'uso del software). Tutto ciò che
compare dopo il REM è ignorato dall'interprete o dal
compilatore.
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 libero.
C
In informatica, il C è un linguaggio di programmazione di
tipo strutturato. Il C è un linguaggio di programmazione
relativamente minimalista; la sua semantica utilizza un insieme
ristretto di concetti relativamente semplici e vicini al funzionamento
dell'hardware dei calcolatori; molte istruzioni C sono traducibili
direttamente con una singola istruzione di linguaggio macchina (per
esempio, gli operatori di autoincremento e autodecremento). Nel
linguaggio un ruolo centrale viene svolto dal concetto di puntatore,
che viene generalizzato fino a coincidere con l'indirizzamento
indiretto, un modo di accedere alla memoria hardware caratteristico
di tutte le moderne CPU. Questo rende il C un linguaggio
particolarmente efficiente. D'altra parte, rispetto al linguaggio
assembly il C ha in più una struttura logica definita e leggibile,
funzioni in stile Pascal e soprattutto il controllo sui tipi (in fase di
compilazione), che manca completamente in assembly.
La sintassi del C è piuttosto versatile e il linguaggio è in forma
libera, permettendo di scrivere istruzioni complesse in poche righe
di codice, o di creare programmi criptici e illeggibili (offuscamento
del codice). In definitiva, il successo del C fu decretato dall'essere
un linguaggio creato da programmatori esperti, per essere usato da
programmatori esperti.
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, overloading degli operatori, ereditarietà
multipla, template e gestione delle eccezioni. Il C++ fu
standardizzato nel 1998 (ISO/IEC 14882:1998 "Information
Technology - Programming Languages - C++", aggiornato
nel 2003). C++11, conosciuto anche come C++0x, è il
nuovo standard per il linguaggio di programmazione C++ che
sostituisce la revisione del 2003. L'ultima versione dello standard
(nota informalmente come C++14) è stata pubblicata nel 2014.
JAVA
In informatica Java è un linguaggio di programmazione orientato
agli oggetti, specificatamente progettato per essere il più
possibile indipendente dalla piattaforma di esecuzione.
Uno dei principi fondamentali del linguaggio è espresso dal
motto write once, run anywhere (WORA): 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.
Al 2014, Java risulta essere uno dei linguaggi di programmazione
più usati al mondo, specialmente per applicazioni client-server, con
un numero di sviluppatori stimato intorno ai 9 milioni.
Il linguaggio fu originariamente sviluppato da James Gosling e altri
ingegneri presso Sun Microsystems, nel 2010 acquisita da Oracle
Corporation, che è attualmente detentore del marchio registrato.
Il linguaggio deriva gran parte della sua sintassi dai
linguaggi Simula, C e C++, ma ha meno costrutti a basso livello e
implementa in modo più puro (rispetto al C++) il paradigma objectoriented.
Un buon punto di partenza per imparare Java è il tutorial ufficiale.
Caratteristiche
Java venne creato per soddisfare quattro scopi:
1. essere orientato agli oggetti;
2. essere indipendente dalla piattaforma;
3. contenere strumenti e librerie per il networking;
4. essere progettato per eseguire codice da sorgenti remote in
modo sicuro.
I programmi scritti in linguaggio Java, dopo una fase iniziale
di compilazione con ottenimento del cosiddetto bytecode, sono
destinati all'esecuzione sulla piattaforma Javaattraverso una fase
di interpretazione (per questo motivo il linguaggio Java è detto
anche semi-interpretato) ad opera di una Java Virtual Machine e, a
tempo di esecuzione, avranno accesso alle API della libreria
standard. Questi due passi forniscono un livello di astrazione che
permette alle applicazioni di essere interamente indipendenti dal
sistemahardware su cui esse saranno eseguite.
Un'implementazione della piattaforma java è il Java Runtime
Environment (JRE), necessario per l'esecuzione del programma
compilato, mentre per lo sviluppo dei programmi in Java a partire
dal codice sorgente è necessario il Java Development Kit (JDK) che
include anche il JRE.
JAVA SCRIPT
In informatica JavaScript è un linguaggio di scripting orientato agli
oggetti e agli eventi, comunemente utilizzato nellaprogrammazione
Web lato client per la creazione, in siti web e applicazioni web, di
effetti dinamici interattivi tramite funzioni di scriptinvocate
da eventi innescati a loro volta in vari modi dall'utente sulla pagina
web in uso (mouse, tastiera ecc...). Le caratteristiche principali di
JavaScript sono:

l'essere un linguaggio interpretato: il codice non
viene compilato, ma interpretato (in JavaScript lato client,
l'interprete è incluso nel browser che si sta utilizzando).

la sintassi è relativamente simile a quella del C, del C++ e
del Java.

definisce le funzionalità tipiche dei linguaggi di
programmazione ad alto livello (strutture di controllo, cicli,
ecc.) e consente l'utilizzo del paradigma object oriented.

è un linguaggio debolmente tipizzato.

è un linguaggio debolmente orientato agli oggetti. Ad esempio,
il meccanismo dell'ereditarietà è più simile a quello del Self e
del NewtonScript che a quello del linguaggio Java(che è un
linguaggio fortemente orientato agli oggetti). Gli oggetti stessi
ricordano più gli array associativi del Perl che gli oggetti di
Java o del C++.
Altri aspetti di interesse: in JavaScript lato client, il codice viene
eseguito direttamente sul client e non sul server. Il vantaggio di
questo approccio è che, anche con la presenza
discript particolarmente complessi, il web server non viene
sovraccaricato a causa delle richieste dei client. Di contro, nel caso
di script che presentino un codice sorgenteparticolarmente grande,
il tempo per lo scaricamento può diventare abbastanza lungo. Un
altro svantaggio è il seguente: ogni informazione che presuppone
un accesso a dati memorizzati in un database remoto deve essere
rimandata ad un linguaggio che effettui esplicitamente
la transazione, per poi restituire i risultati ad una o più variabili
JavaScript; operazioni del genere richiedono il caricamento della
pagina stessa. Con l'avvento di AJAX tutti questi limiti sono stati
superati.
Alcune funzionalità degne di nota:

Può usare Unicode

Può valutare le espressioni regolari (introdotte nella versione
1.2; supporto da parte dei browser: a partire da Netscape
Navigator 4 e Internet Explorer 4)

Le espressioni JavaScript contenute in una stringa possono
essere valutate usando la funzione eval.
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 OLE-db 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.
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.
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. Il PHP permette il passaggio di
informazioni da una pagina all'altra attraverso le diverse
funzionalità supportate dall'HTTP, in specifico richieste di
tipo GET (informazioni parametrizzate nella barra degli
indirizzi), POST (informazioni con origine da un precedente submit
da un web-form, generalmente) e dei COOKIE (informazioni
parametrizzate in piccole stringhe di testo salvate fisicamente su un
browser), insieme al supporto alle sessioni (funzionalità basata
sull'utilizzo dei cookie). Queste informazioni sono utilizzabili in PHP
tramite 4 array di tipo
associativo: $_GET, $_POST, $_COOKIE, $_SESSION.