SlideShare a Scribd company logo
Cos'è un linguaggio di programmazione?
In parole molto semplici, possiamo dire che un linguaggio di programmazione (come il C++) è uno
strumento per controllare il computer, facendogli eseguire determinati compiti.

Come ogni linguaggio che si rispetti, è necessario che siano definiti due elementi essenziali: un
lessico e una sintassi. In un linguaggio naturale, il lessico è l'insieme delle parole che possiamo
trovare in un vocabolario, ciascuna con il suo significato. La sintassi è il modo di mettere assieme le
parole per costruire una frase.

Ad esempio, se dovessi chiedere a Giorgio di passarmi la mela che è sul tavolo, e mi mancasse una
parte del lessico, ne uscirebbe qualcosa del genere:

quot;Giorgio, dammi la cosa che è sul cosoquot;

Se invece mi mancasse solo la sintassi, riuscirei a spaventare il povero Giorgio dicendogli:

quot;Mela la Giorgio tavolo che sul dammi èquot;

(con un risultato ancora peggiore)

In un linguaggio di programmazione esistono delle precise parole del lessico (chiamate istruzioni) e
una precisa sintassi. In C++, ad esempio, per far scrivere la frase quot;Ciao a tuttiquot; sullo schermo si usa
l'istruzione printf che deve essere usata in questo modo:

printf ( quot;Ciao a tuttiquot;);

Se scrivessi invece:

(quot;Ciao a tuttiquot;);printf

Il computer si rifiuterebbe di eseguire, mostrandoci un messaggio di errore sintattico.

Allo stesso modo, il computer si rifiuterebbe di lavorare se proviamo a istruirlo in questo modo:

scrivi( quot;Ciao a tuttiquot;);

Infatti quot;luiquot; non conosce la parola quot;scriviquot;. La sintassi andrebbe anche bene, ma qui si tratta di un
errore lessicale.

Esiste solo il C++?

Ovviamente no. Ecco i nomi di alcuni famosi linguaggi di programmazione:

       Pascal (utilizzato soprattutto nella didattica dell'informatica)
       C++ (uno dei più utilizzati dai professionisti)
       Java (linguaggio utilizzato nella rete Internet, è un dialetto semplificato del C++)
       Javascript (sottoinsieme di istruzioni simili al Java, adatto alle pagine web)
       Prolog (linguaggio di quot;programmazione logicaquot;)
       Lisp, Logo, Perl, PHP, ecc..
L'elenco sarebbe lunghissimo è comunque interessante sapere che, a parte qualche rara eccezione
come il Prolog, tutti i linguaggi di programmazione si basano su strutture molto simili. Imparare uno
dei linguaggi significa avere le chiavi per impararli tutti.
Linguaggi interpretati e linguaggi compilati

I linguaggi di programmazione tendono ad assomigliare ai linguaggi naturali (quelli usati dall'uomo)
proprio per rendere più facile la programmazione del computer. Il computer invece quot;capiscequot; un suo
linguaggio fatto esclusivamente da numeri, anzi, da sequenze di cifre binarie 1 e 0.

Questo linguaggio binario si chiama quot;linguaggio macchinaquot; e all'uomo risulterebbe difficilissimo da
imparare.

10010111011100011101110010110001001111110010111101000101

facile no?

I primi computer, si basavano esclusivamente sul linguaggio macchina e il loro schermo era un
piccolo led che mostrava dei quot;pacchettiquot; di cifre binarie. Il programmatore utilizzava una tabella che
serviva per tradurre i comandi nella serie corrispondente di cifre binarie da inserire. Un lavoraccio da
certosini. E bastava sbagliare una cifra per mettere in crisi tutto il sistema. I giochini per computer
non se li immaginavano nemmeno!

Fortunatamente, oggi esistono dei programmi che fanno da traduttori automatici, cioè che traducono
un linguaggio ad alto livello come il C++ nella sequenza di 1 e 0 del linguaggio macchina.

1) Linguaggi compilati

   Linguaggi come il Pascal o il C++ utilizzano dei programmi compilatori: tutto il listato viene
   prima controllato nel lessico e nella sintassi, tradotto e trasformato in un file eseguibile (con
   estensione .exe nei sistemi Windows) contenente il codice del linguaggio macchina. Soltanto alla
   fine di queste operazioni si può inviare il file al computer per l'esecuzione.

   I linguaggi compilati sono più efficienti di quelli interpretati. Inoltre il file eseguibile diventa
   indipendente dal listato che lo ha prodotto, e può essere eseguito anche senza il programma
   interprete.

2) Linguaggi interpretati

       Altri linguaggi (come il Qbasic) utilizzano invece dei programmi interpreti. Esso quot;leggequot; riga
       per riga il listato che noi scriviamo, ne controlla il lessico e la sintassi e traduce in linguaggio
       macchina. Infine lo fa eseguire al computer. Questa sequenza di operazioni si ripete per ogni
       riga del listato:

             a)   lettura di una riga;
             b)   controllo di lessico e sintassi;
             c)   traduzione;
             d)   esecuzione.


                            (Tratto da: http://www.vettorpisani.net/forum-scuola/qbasic/linguaggio.htm)

More Related Content

Viewers also liked

Tecnologia web
Tecnologia webTecnologia web
Tecnologia web
fanyto
 
Corso avanzato di Tecnologie WEB - Funzioni e oggetti
Corso avanzato di Tecnologie WEB - Funzioni e oggettiCorso avanzato di Tecnologie WEB - Funzioni e oggetti
Corso avanzato di Tecnologie WEB - Funzioni e oggetti
Studiabo
 
Fattore D - Sintesi dei risultati della ricerca
Fattore D - Sintesi dei risultati della ricerca Fattore D - Sintesi dei risultati della ricerca
Fattore D - Sintesi dei risultati della ricerca
G&M Network Srl - Filosofia e Tecnologia web
 
Educazione transmediale. Significati e trend di ricerca
Educazione transmediale. Significati e trend di ricercaEducazione transmediale. Significati e trend di ricerca
Educazione transmediale. Significati e trend di ricerca
eridlab
 
Presentazione del volume "ICT. Insegnare Con le Tecnologie. Idee per la scuol...
Presentazione del volume "ICT. Insegnare Con le Tecnologie. Idee per la scuol...Presentazione del volume "ICT. Insegnare Con le Tecnologie. Idee per la scuol...
Presentazione del volume "ICT. Insegnare Con le Tecnologie. Idee per la scuol...
Serena Triacca
 
Web design patterns nell'era della digital transformation
Web design patterns nell'era della digital transformationWeb design patterns nell'era della digital transformation
Web design patterns nell'era della digital transformation
extrategy
 
Comunicazione d’impresa il web e le nuove tecnologie - elis
Comunicazione d’impresa   il web e le nuove tecnologie - elisComunicazione d’impresa   il web e le nuove tecnologie - elis
Comunicazione d’impresa il web e le nuove tecnologie - elis
Maurizio Girometti
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneMajong DevJfu
 
WEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie webWEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie web
Annalisa Vignoli
 

Viewers also liked (9)

Tecnologia web
Tecnologia webTecnologia web
Tecnologia web
 
Corso avanzato di Tecnologie WEB - Funzioni e oggetti
Corso avanzato di Tecnologie WEB - Funzioni e oggettiCorso avanzato di Tecnologie WEB - Funzioni e oggetti
Corso avanzato di Tecnologie WEB - Funzioni e oggetti
 
Fattore D - Sintesi dei risultati della ricerca
Fattore D - Sintesi dei risultati della ricerca Fattore D - Sintesi dei risultati della ricerca
Fattore D - Sintesi dei risultati della ricerca
 
Educazione transmediale. Significati e trend di ricerca
Educazione transmediale. Significati e trend di ricercaEducazione transmediale. Significati e trend di ricerca
Educazione transmediale. Significati e trend di ricerca
 
Presentazione del volume "ICT. Insegnare Con le Tecnologie. Idee per la scuol...
Presentazione del volume "ICT. Insegnare Con le Tecnologie. Idee per la scuol...Presentazione del volume "ICT. Insegnare Con le Tecnologie. Idee per la scuol...
Presentazione del volume "ICT. Insegnare Con le Tecnologie. Idee per la scuol...
 
Web design patterns nell'era della digital transformation
Web design patterns nell'era della digital transformationWeb design patterns nell'era della digital transformation
Web design patterns nell'era della digital transformation
 
Comunicazione d’impresa il web e le nuove tecnologie - elis
Comunicazione d’impresa   il web e le nuove tecnologie - elisComunicazione d’impresa   il web e le nuove tecnologie - elis
Comunicazione d’impresa il web e le nuove tecnologie - elis
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazione
 
WEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie webWEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie web
 

Similar to Linguaggi di programmazione

Dsl in Lisp e Java
Dsl in Lisp e JavaDsl in Lisp e Java
Dsl in Lisp e Java
alessiostalla
 
Bash programming
Bash programmingBash programming
Bash programming
Sebastiano Merlino (eTr)
 
Corso Java - Introduzione
Corso Java - IntroduzioneCorso Java - Introduzione
Corso Java - Introduzione
Campus La Camilla - Scuola di maker
 
Capitolo 7 elementi di programmazione c-c++
Capitolo 7   elementi di programmazione  c-c++Capitolo 7   elementi di programmazione  c-c++
Capitolo 7 elementi di programmazione c-c++Giovanni Della Lunga
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio cughetta
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: AlgoritmiMajong DevJfu
 
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
Andrea Grandi
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)STELITANO
 
Seminario introduzione all'uso del terminale e della bash in Linux
Seminario introduzione all'uso del terminale e della bash in LinuxSeminario introduzione all'uso del terminale e della bash in Linux
Seminario introduzione all'uso del terminale e della bash in Linux
alberto fiaschi
 
Evoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo MicrosoftEvoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo Microsoft
Massimo Bonanni
 
Introduzione al linguaggio PHP
Introduzione al linguaggio PHPIntroduzione al linguaggio PHP
Introduzione al linguaggio PHPextrategy
 
NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)
NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)
NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)
Stefano Dall'Agata
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Università degli Studi di Trieste
 
Coding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecodingCoding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecoding
Alessandro Bogliolo
 
Ilvg.it @ Ni Day2008
Ilvg.it @ Ni Day2008Ilvg.it @ Ni Day2008
Ilvg.it @ Ni Day2008ILVG.it
 
Coding class da scratch a python
Coding class  da scratch a pythonCoding class  da scratch a python
Coding class da scratch a python
Enrico La Sala
 

Similar to Linguaggi di programmazione (20)

Dsl in Lisp e Java
Dsl in Lisp e JavaDsl in Lisp e Java
Dsl in Lisp e Java
 
Modulo 1 - Lezione 1
Modulo 1 - Lezione 1Modulo 1 - Lezione 1
Modulo 1 - Lezione 1
 
Bash programming
Bash programmingBash programming
Bash programming
 
Corso Java - Introduzione
Corso Java - IntroduzioneCorso Java - Introduzione
Corso Java - Introduzione
 
Capitolo 7 elementi di programmazione c-c++
Capitolo 7   elementi di programmazione  c-c++Capitolo 7   elementi di programmazione  c-c++
Capitolo 7 elementi di programmazione c-c++
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio c
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi
 
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
 
05 1 intro-struttura
05 1 intro-struttura05 1 intro-struttura
05 1 intro-struttura
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)
 
Seminario introduzione all'uso del terminale e della bash in Linux
Seminario introduzione all'uso del terminale e della bash in LinuxSeminario introduzione all'uso del terminale e della bash in Linux
Seminario introduzione all'uso del terminale e della bash in Linux
 
Evoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo MicrosoftEvoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo Microsoft
 
T1 introduzione
T1 introduzioneT1 introduzione
T1 introduzione
 
Introduzione al linguaggio PHP
Introduzione al linguaggio PHPIntroduzione al linguaggio PHP
Introduzione al linguaggio PHP
 
NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)
NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)
NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
 
Coding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecodingCoding: dai diagrammi di flusso al pipecoding
Coding: dai diagrammi di flusso al pipecoding
 
Ilvg.it @ Ni Day2008
Ilvg.it @ Ni Day2008Ilvg.it @ Ni Day2008
Ilvg.it @ Ni Day2008
 
T2 architettura
T2 architetturaT2 architettura
T2 architettura
 
Coding class da scratch a python
Coding class  da scratch a pythonCoding class  da scratch a python
Coding class da scratch a python
 

Linguaggi di programmazione

  • 1. Cos'è un linguaggio di programmazione? In parole molto semplici, possiamo dire che un linguaggio di programmazione (come il C++) è uno strumento per controllare il computer, facendogli eseguire determinati compiti. Come ogni linguaggio che si rispetti, è necessario che siano definiti due elementi essenziali: un lessico e una sintassi. In un linguaggio naturale, il lessico è l'insieme delle parole che possiamo trovare in un vocabolario, ciascuna con il suo significato. La sintassi è il modo di mettere assieme le parole per costruire una frase. Ad esempio, se dovessi chiedere a Giorgio di passarmi la mela che è sul tavolo, e mi mancasse una parte del lessico, ne uscirebbe qualcosa del genere: quot;Giorgio, dammi la cosa che è sul cosoquot; Se invece mi mancasse solo la sintassi, riuscirei a spaventare il povero Giorgio dicendogli: quot;Mela la Giorgio tavolo che sul dammi èquot; (con un risultato ancora peggiore) In un linguaggio di programmazione esistono delle precise parole del lessico (chiamate istruzioni) e una precisa sintassi. In C++, ad esempio, per far scrivere la frase quot;Ciao a tuttiquot; sullo schermo si usa l'istruzione printf che deve essere usata in questo modo: printf ( quot;Ciao a tuttiquot;); Se scrivessi invece: (quot;Ciao a tuttiquot;);printf Il computer si rifiuterebbe di eseguire, mostrandoci un messaggio di errore sintattico. Allo stesso modo, il computer si rifiuterebbe di lavorare se proviamo a istruirlo in questo modo: scrivi( quot;Ciao a tuttiquot;); Infatti quot;luiquot; non conosce la parola quot;scriviquot;. La sintassi andrebbe anche bene, ma qui si tratta di un errore lessicale. Esiste solo il C++? Ovviamente no. Ecco i nomi di alcuni famosi linguaggi di programmazione:  Pascal (utilizzato soprattutto nella didattica dell'informatica)  C++ (uno dei più utilizzati dai professionisti)  Java (linguaggio utilizzato nella rete Internet, è un dialetto semplificato del C++)  Javascript (sottoinsieme di istruzioni simili al Java, adatto alle pagine web)  Prolog (linguaggio di quot;programmazione logicaquot;)  Lisp, Logo, Perl, PHP, ecc..
  • 2. L'elenco sarebbe lunghissimo è comunque interessante sapere che, a parte qualche rara eccezione come il Prolog, tutti i linguaggi di programmazione si basano su strutture molto simili. Imparare uno dei linguaggi significa avere le chiavi per impararli tutti. Linguaggi interpretati e linguaggi compilati I linguaggi di programmazione tendono ad assomigliare ai linguaggi naturali (quelli usati dall'uomo) proprio per rendere più facile la programmazione del computer. Il computer invece quot;capiscequot; un suo linguaggio fatto esclusivamente da numeri, anzi, da sequenze di cifre binarie 1 e 0. Questo linguaggio binario si chiama quot;linguaggio macchinaquot; e all'uomo risulterebbe difficilissimo da imparare. 10010111011100011101110010110001001111110010111101000101 facile no? I primi computer, si basavano esclusivamente sul linguaggio macchina e il loro schermo era un piccolo led che mostrava dei quot;pacchettiquot; di cifre binarie. Il programmatore utilizzava una tabella che serviva per tradurre i comandi nella serie corrispondente di cifre binarie da inserire. Un lavoraccio da certosini. E bastava sbagliare una cifra per mettere in crisi tutto il sistema. I giochini per computer non se li immaginavano nemmeno! Fortunatamente, oggi esistono dei programmi che fanno da traduttori automatici, cioè che traducono un linguaggio ad alto livello come il C++ nella sequenza di 1 e 0 del linguaggio macchina. 1) Linguaggi compilati Linguaggi come il Pascal o il C++ utilizzano dei programmi compilatori: tutto il listato viene prima controllato nel lessico e nella sintassi, tradotto e trasformato in un file eseguibile (con estensione .exe nei sistemi Windows) contenente il codice del linguaggio macchina. Soltanto alla fine di queste operazioni si può inviare il file al computer per l'esecuzione. I linguaggi compilati sono più efficienti di quelli interpretati. Inoltre il file eseguibile diventa indipendente dal listato che lo ha prodotto, e può essere eseguito anche senza il programma interprete. 2) Linguaggi interpretati Altri linguaggi (come il Qbasic) utilizzano invece dei programmi interpreti. Esso quot;leggequot; riga per riga il listato che noi scriviamo, ne controlla il lessico e la sintassi e traduce in linguaggio macchina. Infine lo fa eseguire al computer. Questa sequenza di operazioni si ripete per ogni riga del listato: a) lettura di una riga; b) controllo di lessico e sintassi; c) traduzione; d) esecuzione. (Tratto da: http://www.vettorpisani.net/forum-scuola/qbasic/linguaggio.htm)