top of page

In informatica, un linguaggio di programmazione è un linguaggio formale, dotato (al pari di un qualsiasi linguaggio naturale) di un lessico, di una sintassi e di una semantica ben definiti, utilizzabile per il controllo del comportamento di una macchina formale o di una implementazione di essa (tipicamente, un computer) ovvero per la programmazione di questa attraverso la scrittura di un programma sotto forma di codice. Condizione sufficiente per un linguaggio per essere considerato un linguaggio di programmazione è l'essere Turing-completo. Qui di seguito vi riporteremo i linguaggi piu usati e conosciuti:

HTML è l'acronimo di Hyper Text Markup Language ("Linguaggio di contrassegno per gli Ipertesti") ed è il "linguaggio" con cui sono scritte le pagine web.

L'HTML non è un linguaggio di programmazione (sono linguaggi di programmazione invece il C, il C++, il Pascal, il Java), infatti l'html:

non ha meccanismi che consentono di prendere delle decisioni (in questa situazione fai questo, in quest'altra fai quest'altro...)
non è in grado di compiere delle iterazioni, ("ripeti questa cosa, finchè non succede questo...)
non ha altri costrutti propri della programmazione
L'HTML è un linguaggio di contrassegno o di marcatura, cioè, attraverso degli appositi marcatori detti "tag", permette di indicare come disporre gli elementi all'interno di una pagina web, in particolare:
che sfondo applicare alla pagina
che carattere e grandezza utilizzare per il testo
quale formattazione applicare al testo
dove disporre le immagini
dove inserire tabelle e liste
porre dei collegamenti ad altre parti all'interno della pagina o del sito stesso o a risorse esterne
ecc...
Un documento html è un file di testo che contiene il testo e gli altri elementi che vogliamo visualizzare sulla pagina web insieme alle indicazioni sul come vogliamo che tali elementi siano presentati.
Le pagine web vengono visualizzate sul nostro pc grazie al Browser.
Torna su

Il Browser
Il browser è il programma che permette di navigate nel Web. Esso svolge principalmente i seguenti compiti:

scarica i vari files che si trovano su un computer remoto (il server) e che fanno riferimento a un certo indirizzo
legge i documenti scritti in html
codifica ciò che trova scritto nei documenti html letti e, a seconda delle indicazioni inserite...
visualizza la pagina in un modo, piuttosto che in un altro e dispone i vari files associati a quel documento (ad esempio le immagini, o i filmati ecc) secondo le indicazioni del codice html
Mentalità multi-browser
È importante, quando si ha intenzione di creare delle pagine web, acquisire sin dall'inizio una mentalità multi-browser, perché il mestiere del webmaster consiste, oltre che nella piena conoscenza del codice HTML, anche e soprattutto nel sapere come lo stesso codice verrà visualizzato sul computer dell'utente attraverso i diversi browser.

Lo standard HTML
Il W3C: Word Wide Web Consortium è l'organizzazione che si occupa di standardizzare la sintassi del linguaggio HTML.
Questa ha rilasciato diverse versioni di questo linguaggio: HTML 2.0, HTML 3.2, HTML 4.01
In questo corso esamineremo inizialmente la versione 3.2 che, anche se ormai superata, permetterà di acquisire manualità con questo nuovo linguaggio e, successivamente, come approfondimento e completamento del percorso, ci concentreremo sull'ultima versione rilasciata cioè l'HTML 4.01 (24 dicembre 1999).

LINGUAGGI DI PROGRAMMAZIONE

HTML

C

Il C è tecnicamente un linguaggio di programmazione ad alto livello. Tuttavia, poiché esso mantiene evidenti relazioni semantiche con il linguaggio macchina e l'assembly, risulta molto meno astratto di linguaggi anche affini (appartenenti allo stesso paradigma di programmazione), come per esempio il Pascal. Per questo motivo, talvolta viene anche identificato con la locuzione (più ambigua) linguaggio di medio livello, se non addirittura (in modo certamente improprio) come macro-assembly, o assembly portabile.
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 di competitor significativi, primo fra tutti il C++; tuttavia, il tempo in cui il C si potrà considerare obsoleto appare ancora molto lontano.
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'elettronica dei 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#).

C++

C++ è un linguaggio compilato completo. Quindi teoricamente ci puoi fare esattamente tutto. Qualsiasi cosa possa girare su un pc, la puoi fare in C++.
Questa non è una risposta vaga, ci puoi fare proprio tutto (tranne, ovviamente, siti web, perché quelli non sono programmi): sistemi operativi, programmi di calcolo, librerie di funzioni, librerie di classi, applicazioni grafiche, giochi 2D o 3D ad alte prestazioni, applicazioni web, ...

L'unico limite è che l'infrastruttura offerta da c++ è praticamente inconsistente: se non usi delle librerie preesistenti devi iniziare quasi da zero: le API del sistema operativo.
Se stai scrivendo un tuo sistema operativo, invece, per ovvie ragioni, non hai nemmeno quelle, poiché il sistema lo stai facendo tu, e quindi è lo zero assoluto.

Un esempio pratico in che senso?? Come ti ho detto, fare qualcosa di elaborato in C++ senza usare librerie esterne è assurdamente lungo e difficile. Se vuoi solo un esempio del linguaggio, ti posso far vedere questo: http://pastebin.com/5sPCfLQ7
Compila ovunque e ordina una lista di numeri.
Ovviamente è un esempio idiota, ma non sapevo che altro fare. Uso anche molto poco del c++, si possono anche creare nuove classi, fare overload di operatori, polimorfismo. Tutto, come già vi ho detto

C#

C#, si legge «c sharp », pua² essere considerato il linguaggio di programmazione per eccellenza del Framework .NET: diversamente dagli altri linguaggi, come Visual Basic o C++, esso e nato espressamente per la nuova piattaforma. In questo senso, e significativo il fatto che Microsoft stessa si sia servita di C# per scrivere gran parte delle librerie di .NET .
Uno degli slogan che hanno accompagnato C# fin dalla sua nascita lo presenta come «un linguaggio facile come Java, potente come il C++ ». In effetti, come vedremo, le somiglianze con i due linguaggi sono molte, e non solo dal punto di vista della sintassi.
Le differenze comunque ci sono ma la loro trattazione esula dagli obiettivi di questo corso, che si propone, invece, di analizzare nello specifico il linguaggio C#.
Chi fosse interessato a differenze e somilgianze, pua² trovare maggiori informazioni usando i collegamenti a fine lezione (in lingua inglese) oppure, avendo a disposizione Visual Studio 2005, si possono trovare maggiori dettagli sull argomento cercando «Comparison Between Java and C# » e «Comparison Between C++ and C# » nella guida in linea.
Questa guida, in una prima fase, introdurra ai concetti chiave di questo linguaggio, nella seconda parte del corso invece, ci si concentrera sull ambiente di sviluppo Visual Studio 2005 e sulle nuove funzionalita introdotte dalla versione 2.0 del Framework. Infine fornira una panoramica degli strumenti messi a disposizione per la realizzazione di applicazioni web con ASP .NET.
Il corso si rivolge a chi ha gia dimestichezza con la programmazione ad oggetti e con linguaggi simili a Java o C++.
Sono volutamente tralasciate le spiegazioni sulla sintassi di base: per esempio i costrutti if, switch, for, while, etc. Chi gia conosce linguaggi come c++, Java, php o Javascript non vedra grosse novita . Chi invece non avesse familiarita con i linguaggi cosiddetti "c-like" pua² trovare in fondo alla lezione un link per approfondire.
In ogni caso, dove necessario per la comprensione del corso, saranno indicati esplicitamente i collegamenti con i concetti trattati su altre fonti.
In queste prime pagine ci occuperemo delle caratteristiche proprie di C# e delle innovazioni che introduce nel modo di programmare.
Al momento della stesura di questa guida, il Framework .NET 2.0 e Visual Studio 2005 sono ancora in fase di beta test (in particolare, e stato usato Visual Studio 2005 Beta 2), quindi e possibile, anche se in linea di massima non dovrebbe accadere, che alcune delle caratteristiche mostrate saranno diverse dalla versione finale.
Poicha© la versione italiana verra rilasciata solo dopo il rilascio ufficiale del prodotto, si e fatto riferimento alle voci dei mena¹ e delle finestre della versione inglese; ove possibile, e stata fornita una traduzione, che pera² in alcuni casi potrebbe non corrispondere con l effettiva localizzazione in italiano.
Questa guida si propone di suscitare curiosita sul mondo di C#, fornendo pera² gli strumenti minimi necessari ad approfondire individualmente gli argomenti affrontati.
C# e Visual Basic .NET sono due tra i molti linguaggi di programmazione disponibili per la piattaforma .NET. Il Common Language Runtime (CLR) del Framework .NET costituisce, infatti, una piattaforma di esecuzione comune per un gran numero di linguaggi, tra cui C++, J#, Cobol.NET .
Pia¹ che stabilire quale sia il "migliore", e interessante capire le peculiarita di ciascun linguaggio. Ci soffermeremo sulla valutazione delle differenze pia¹ importanti.
Ad una prima analisi e evidente che VB.NET risulta la scelta preferita per chi proviene dalle versioni precedenti di VB e ASP-VBScript, mentre C# e pia¹ accattivante per chi proviene da esperienze con C++ e Java. La sintassi di C# assomiglia moltissimo a quella di Java, mentre quella di VB.NET e evoluzione del Visual Basic.
La differenza pia¹ importante nel passaggio dal vecchio al nuovo non riguarda tanto la sintassi quanto la sensazione di novita in termini di approccio alla programmazione ad oggetti.
Chi e abituato a lavorare in C++ o Java trova un ambiente in cui i concetti sono analoghi quando non del tutto sovrapposti. Per esempio in .NET come in Java tutto e un oggetto: e abbandonato ogni tipo di approccio ibrido con la programmazione strutturata in stile C++.
Quindi chi proviene dai "vecchi" ASP e VB si trova davanti ad un linguaggio simile in alcuni aspetti della sintassi di base ma con un approccio alla programmazione a oggetti che e comune a tutto il Framework ed e pia¹ proprio di Java e compagnia.
C# e un linguaggio nuovo, mentre VB .NET porta con sa© l eredita di tutte le versioni precedenti di Visual Basic (la sintassi di VB .NET, seppur aggiornata con il supporto agli oggetti, e praticamente la stessa di quella di Visual Basic 4.0, rilasciato nell ormai lontano 1996).
Un primo aspetto evidente e che il codice scritto in VB .NET risulta pia¹ lungo rispetto all equivalente in C#. Consideriamo, per esempio, una funzione che prende in ingresso due numeri e ne calcola la media:


//C#
public double CalcolaMedia(double N1, double N2)
{
return (N1 + N2) / 2;
}

Visual Basic .NET
Public Function CalcolaMedia(ByVal N1 As Double, ByVal N2 As Double) As Double

Return (N1 + N2) / 2
End Function

Un altra grande differenza, forse la pia¹ evidente, e che C# e case sensitive, ovvero fa distinzione tra maiuscole e minuscole, mentre VB case insensitive: per C# le variabili nomePersona e NomePersona sono diverse, mentre per Visual Basic .NET sono la stessa.
Al di la delle differenze che riguardano la sintassi, C# permette di realizzare cose che in VB .NET non si possono fare, e viceversa. Ad esempio, C#, mostrando la sua derivazione dal C++, consente di utilizzare i puntatori, cosa che VB .NET non permette.
Alcune differenze architetturali sono state colmate con la versione 2.0 del Framework, che introduce anche per Visual Basic .NET l overloading degli operatori (altra caratteristica che C# ha preso da C++) e la possibilita di documentare il codice scritto utilizzando il linguaggio XML. Infatti C# permette la documentazione delle classi usando dei tag nel codice in modo molto somigliante ai commenti per JavaDocs.
VB .NET, in particolare con la nuova versione del Framework, rende ancora pia¹ semplice e veloce la scrittura di applicazioni: tra i tanti esempi che si potrebbero fare a riguardo, citiamo il namespace My , che fornisce un rapido accesso a tutta una serie di proprieta e metodi di uso comune, consentendo uno sviluppo pia¹ efficiente.
Le informazioni contenute nel namespace My sono comunque disponibili anche da C#, ma la sua presenza in VB .NET rende molto pia¹ agevole lo svolgimento di alcuni compiti. Ad esempio, per scaricare un file da Internet, usando Visual Basic .NET con il Framework 2.0 e sufficiente un istruzione:


My.Computer.Network.DownloadFile("http://www.html.it/file.zip", "C:/Test")


In C# non esiste un oggetto My e dovremmo istanziare noi un oggetto della classe Network per ottenere lo stesso effetto.


Inoltre, l elenco dei membri che appare grazie all IntelliSense in VB .NET e diviso in due schede in cui vengono messi in evidenza gli elementi di uso comune, facilitando la selezione della voce desiderata. In C# l elenco dei membri viene sempre visualizzato nella sua interezza.

Primo programma

Il .NET framework SDK, ovvero l insieme di tutti gli strumenti necessari alla creazione di software per la piattaforma .NET, e liberamente scaricabile dal sito Microsoft.
Dunque e sufficiente usare un editor di testi per sviluppare applicazioni .NET, anche se quando ci si orientasse verso programmi pia¹ complessi e dotati di interfaccia grafica, l adozione di un ambiente di sviluppo visuale diventa quasi indispensabile.
Realizziamo subito il nostro primo programma. Costruiremo un applicazione "console", ovvero eseguibile dal prompt dei comandi.
Per scrivere un programma di questo tipo non e strettamente necessario un ambiente di sviluppo come Visual Studio (che analizzeremo in dettaglio nelle prossime Lezioni), data l assenza di elementi grafici o di connessioni complesse tra classi.
Pensiamo di voler realizzare la classica applicazione che stampa a video la stringa "Ciao Mondo!", aspetta che l utente prema il tasto INVIO e, quindi, termina. Il codice e il seguente:


public class HelloWorld {

public static void Main()
{
System.Console.WriteLine("Ciao Mondo!");
System.Console.ReadLine();
}
}


Chi ha gia una conoscenza di Java potra notare una certa somiglianza, dal punto di vista della sintassi, tra i due linguaggi. Per eseguire il programma, salviamolo in un file di testo con nome, ad esempio, HelloWorld.cs. Lìestensione «.cs » contraddistingue i file sorgenti di C#.
Con la versione 2.0 di .NET, nel mena¹ Start di Windows comparira il gruppo Microsoft .NET Framework SDK v2.0, al cui interno si trova il comando SDK Command Prompt che permette di aprire un prompt dei comandi con le variabili di sistema per l uso degli strumenti a riga di comando del Framework gia impostate.
Quindi possiamo spostarci nella cartella in cui e stato salvato il file «Hello.cs » e digitare il comando:


>csc Hello.cs


csc.exe e il compilatore C#, il risultato di questa operazione e un file eseguibile di nome «Hello.exe ». Per avviare il frutto delle nostre fatiche e sufficiente digitare:


>Hello

Iniziamo a prendere dimestichezza con la struttura di un programma C# esaminando le poche righe di questo esempio.
L espressione «public class HelloWorld » serve per definire una classe di nome «HelloWorld ». Quello di classe e un concetto fondamentale, che approfondiremo nel corso delle prossime lezioni, al momento basti sapere che tutto il codice di un programma C# definisce classi e scambi di informazioni tra classi.
main e un metodo particolare. Il cosiddetto punto di ingresso dell applicazione, ovvero il primo metodo che viene richiamato quando si avvia il programma.
Tutti i programmi eseguibili realizzati con C#, compresi quelli per Windows, devono avere una (e solo una) classe con all interno un metodo main, altrimenti in fase di esecuzione si otterra un messaggio di errore.
L istruzione System.Console.WriteLine() stampa a video il messaggio, mentre System.Console.ReadLine() fa sa¬ che l applicazione aspetti che l utente prema il tasto INVIO prima di terminare.

JAVA

Java è un linguaggio di programmazione sviluppato appositamente per l'uso in Internet. Creato per essere simile al C++, puo' essere utilizzato per creare applicazioni complete che possono venire eseguite su un singolo computer o possono essere distribuite su server e client di una rete. Può anche essere utilizzato per creare delle applet, ovvero dei piccoli moduli applicativi che, inseriti all'interno di una pagina Web, possono permettere all'utente di interagire con la pagina.
Le principali caratteristiche di Java sono:
- Portabilità. Il codice sorgente e' compilato in bytecode e puo' essere eseguito su ogni PC che ha JVM (Java Virtual Machine)
- Robustezza. Gli oggetti creati in Java non possono contenere riferimenti a dati esterni. Questo previene che l'istruzione contenga l'indirizzo di memoria di un dato in uso da un altra applicazione
- E' un linguaggio ad Oggetti.
Java e' stato introdotto da Sun Microsistem nel 1995 ed ha creato istantaneamente un nuovo standard di interattivita' del Web.

bottom of page