LA
PROGRAMMAZIONE
IL
SOFTWARE
LINGUAGGI
FORMALI
LINGUAGGI DI
BASSO
LIVELLO
INTERPRETICOMPILATORI
LINGUAGGI DI
ALTO LIVELLO
LINGUAGGI
NATURALI
 Simone Minolfi
Rocky Kumar
Luca Cretti
Il software è l’insieme dei programmi che consentono di gestire e utilizzare il computer. Esso permette l’interazione tra
computer e l’utente ed è composto da:
 I sistemi operativi;
 Le utility;
 I programmi per svilupparne degli altri;
 I programmi applicativi;
 I tool o pacchetti OTP.
Il software è suddiviso in due grandi categorie:
 Il software di base : costituito dall’insieme dei programmi che permettono di gestire il computer (debugger, compilatori,
sistemi operativi…).
 Il software applicativo: costituito dall’insieme dei programmi orientati alla soluzione di problemi specifici .
Il software applicativo a sua volta si distingue in due sottogruppi:
 Il software verticale raggruppa programmi utilizzabili in un solo settore.
 Il software orizzontale raggruppa programmi che sono utilizzabili in più settori.
Il linguaggio un codice, cioè un insieme di segni e di regole che consentono la comunicazione tra tutti coloro che lo usano.
Ci sono vari tipi di linguaggio nella vita comune dell’uomo:
 Il linguaggio verbale;
 Il linguaggio manuale;
 Il linguaggio ideografico.
Il vari linguaggi si distinguono in:
 Linguaggi naturali;
 Linguaggi formali.
I linguaggi naturali sono formati dai linguaggi scritti, orali e verbali, fanno parte di questa categoria tutte le lingue che
esistono nel mondo e che sono dotate di un proprio alfabeto.
I fondamenti di ogni lingua sono:
 La grammatica: comprende l’alfabeto e l’insieme di regole per formare le parole e raggrupparle in frasi corrette;
 La sintassi: l’insieme di regole che definisce la struttura di frasi formalmente corrette;
 La semantica: definisce il significato delle parole e delle frasi.
I linguaggi formali sono quelli che l’uomo utilizza per la comunicazione simbolica, la particolare comunicazione che
adopera simboli astratti applicati a situazioni concrete.
I fondamenti di questi linguaggi sono che:
 A ogni simbolo corrisponde un solo significato;
 Un simbolo racchiude lo stesso significato in qualsiasi contesto;
 Una volta definito, il codice non può essere modificato dagli elementi che lo usano.
Fa parte di questi linguaggi il linguaggio di programmazione
I linguaggi di programmazione nascono negli anni ‘50 e procedono di pari passo con l’evoluzione dei computer , esistono
varie generazioni di linguaggi:
Il primo di queste generazioni linguaggi è il linguaggio nativo ossia il sistema binario (0;1).
Il linguaggio successivo, quello di seconda generazione, viene chiamato «assembly», esso è caratterizzato da semplici sigle
mnemoniche. Questo linguaggio però non consentiva ancora al programmatore di compiere azioni al di fuori di quelle
previste dalla macchina per questo viene relegato nella classificazione dei linguaggi a basso livello. È, comunque grazie ai
difetti di questo linguaggio che si riuscirà a creare dei linguaggi più vicini alle esigenze del programmatore ossia i linguaggi ad
alto livello.
Questo linguaggio nasce a causa dell’esigenza di trovare una soluzione ai linguaggi che dipendono dalla macchina.
Il computer però, non comprende questo linguaggio che deve quindi essere tradotto da interpreti e compilatori.
Questa innovazione portò notevoli benefici:
 I progettisti di hardware non dovettero più progettare in base alle esigenze del programmatore, l’efficienza divenne
l’unico scopo dei progettisti;
 I linguaggi ad alto livello si evolsero differenziatamente dagli hardware;
 Si introdusse il concetto per il quale i linguaggi di programmazione e i programmi potevano essere eseguiti su diversi
computer.
Sono stati sviluppati anche dei linguaggi di quarta generazione o linguaggi di altissimo livello che consentono a qualsiasi
persona, anche non conoscente della materia, di programmare. L’ultimo obiettivo posto da questi linguaggi è «l’intelligenza
artificiale» ossia i linguaggi di quinta generazione che tentano di risolvere problemi di competenza dell’intelletto umano.
I linguaggi a basso livello sono più utili quando una macchina che indirizza il lavoro può essere sfruttata a proprio favore.
Vengono soprattutto usati per creare sistemi operativi, driver di periferiche, traduttori e in generale ciò che richiede una
notevole efficienza.
Quelli ad alto livello invece sono utilizzati per risolvere problemi applicativi.
Tra le caratteristiche principali ricordiamo:
 Facilità di apprendimento e uso;
 Indipendenza dalla macchina;
 Elevata comprensibilità e modificabilità.
Il computer, considerato come macchina in generale, non è in grado di tradurre il linguaggio di programmazione, quindi,
per eseguire i comandi del programmatore, deve fare capo a dei programmi, che sono scritti con un linguaggio di
programmazione in un linguaggio macchina, che sono suddivisi, in base a come operano la traduzione, in compilatori e
interpreti.
Essi traducono i vari linguaggi nell’unico comprensibile al computer , il sistema binario.
I compilatori sono programmi che accettano in ingresso un programma scritto in linguaggio ad alto livello, detto codice
sorgente, e lo traducono interamente in un programma scritto in un altro linguaggio, detto codice oggetto.
Prima di tutto il compilatore durante la traduzione comunica al programmatore eventuali errori, dopo aver completato la
traduzione prima di poter eseguire il programma deve fare altri passaggi:
 Collegamento con altri moduli oggetto a opera di «linker»;
 Caricamento in memoria centrale del «loader».
Gli interpreti accettano in ingresso le singole istruzioni di un programma sorgente e le traducono una alla volta. Gli
interpreti sono programmi capaci di eseguire direttamente un programma in un generico linguaggio «L» istruzione per
istruzione.
Esso opera schematicamente in questo modo:
 Legge la prima istruzione;
 Segnala eventuali errori;
 Traduce la prima istruzione e la esegue;
 Continua così fino al termine del programma.
https://www.youtube.com/watch?v=PhldIlx2u0s
I linguaggi di programmazione 3BS

I linguaggi di programmazione 3BS

  • 1.
  • 2.
    Il software èl’insieme dei programmi che consentono di gestire e utilizzare il computer. Esso permette l’interazione tra computer e l’utente ed è composto da:  I sistemi operativi;  Le utility;  I programmi per svilupparne degli altri;  I programmi applicativi;  I tool o pacchetti OTP.
  • 3.
    Il software èsuddiviso in due grandi categorie:  Il software di base : costituito dall’insieme dei programmi che permettono di gestire il computer (debugger, compilatori, sistemi operativi…).  Il software applicativo: costituito dall’insieme dei programmi orientati alla soluzione di problemi specifici . Il software applicativo a sua volta si distingue in due sottogruppi:  Il software verticale raggruppa programmi utilizzabili in un solo settore.  Il software orizzontale raggruppa programmi che sono utilizzabili in più settori.
  • 4.
    Il linguaggio uncodice, cioè un insieme di segni e di regole che consentono la comunicazione tra tutti coloro che lo usano. Ci sono vari tipi di linguaggio nella vita comune dell’uomo:  Il linguaggio verbale;  Il linguaggio manuale;  Il linguaggio ideografico. Il vari linguaggi si distinguono in:  Linguaggi naturali;  Linguaggi formali.
  • 5.
    I linguaggi naturalisono formati dai linguaggi scritti, orali e verbali, fanno parte di questa categoria tutte le lingue che esistono nel mondo e che sono dotate di un proprio alfabeto. I fondamenti di ogni lingua sono:  La grammatica: comprende l’alfabeto e l’insieme di regole per formare le parole e raggrupparle in frasi corrette;  La sintassi: l’insieme di regole che definisce la struttura di frasi formalmente corrette;  La semantica: definisce il significato delle parole e delle frasi.
  • 6.
    I linguaggi formalisono quelli che l’uomo utilizza per la comunicazione simbolica, la particolare comunicazione che adopera simboli astratti applicati a situazioni concrete. I fondamenti di questi linguaggi sono che:  A ogni simbolo corrisponde un solo significato;  Un simbolo racchiude lo stesso significato in qualsiasi contesto;  Una volta definito, il codice non può essere modificato dagli elementi che lo usano. Fa parte di questi linguaggi il linguaggio di programmazione
  • 7.
    I linguaggi diprogrammazione nascono negli anni ‘50 e procedono di pari passo con l’evoluzione dei computer , esistono varie generazioni di linguaggi: Il primo di queste generazioni linguaggi è il linguaggio nativo ossia il sistema binario (0;1). Il linguaggio successivo, quello di seconda generazione, viene chiamato «assembly», esso è caratterizzato da semplici sigle mnemoniche. Questo linguaggio però non consentiva ancora al programmatore di compiere azioni al di fuori di quelle previste dalla macchina per questo viene relegato nella classificazione dei linguaggi a basso livello. È, comunque grazie ai difetti di questo linguaggio che si riuscirà a creare dei linguaggi più vicini alle esigenze del programmatore ossia i linguaggi ad alto livello.
  • 8.
    Questo linguaggio nascea causa dell’esigenza di trovare una soluzione ai linguaggi che dipendono dalla macchina. Il computer però, non comprende questo linguaggio che deve quindi essere tradotto da interpreti e compilatori. Questa innovazione portò notevoli benefici:  I progettisti di hardware non dovettero più progettare in base alle esigenze del programmatore, l’efficienza divenne l’unico scopo dei progettisti;  I linguaggi ad alto livello si evolsero differenziatamente dagli hardware;  Si introdusse il concetto per il quale i linguaggi di programmazione e i programmi potevano essere eseguiti su diversi computer. Sono stati sviluppati anche dei linguaggi di quarta generazione o linguaggi di altissimo livello che consentono a qualsiasi persona, anche non conoscente della materia, di programmare. L’ultimo obiettivo posto da questi linguaggi è «l’intelligenza artificiale» ossia i linguaggi di quinta generazione che tentano di risolvere problemi di competenza dell’intelletto umano.
  • 9.
    I linguaggi abasso livello sono più utili quando una macchina che indirizza il lavoro può essere sfruttata a proprio favore. Vengono soprattutto usati per creare sistemi operativi, driver di periferiche, traduttori e in generale ciò che richiede una notevole efficienza. Quelli ad alto livello invece sono utilizzati per risolvere problemi applicativi. Tra le caratteristiche principali ricordiamo:  Facilità di apprendimento e uso;  Indipendenza dalla macchina;  Elevata comprensibilità e modificabilità.
  • 10.
    Il computer, consideratocome macchina in generale, non è in grado di tradurre il linguaggio di programmazione, quindi, per eseguire i comandi del programmatore, deve fare capo a dei programmi, che sono scritti con un linguaggio di programmazione in un linguaggio macchina, che sono suddivisi, in base a come operano la traduzione, in compilatori e interpreti. Essi traducono i vari linguaggi nell’unico comprensibile al computer , il sistema binario.
  • 11.
    I compilatori sonoprogrammi che accettano in ingresso un programma scritto in linguaggio ad alto livello, detto codice sorgente, e lo traducono interamente in un programma scritto in un altro linguaggio, detto codice oggetto. Prima di tutto il compilatore durante la traduzione comunica al programmatore eventuali errori, dopo aver completato la traduzione prima di poter eseguire il programma deve fare altri passaggi:  Collegamento con altri moduli oggetto a opera di «linker»;  Caricamento in memoria centrale del «loader».
  • 12.
    Gli interpreti accettanoin ingresso le singole istruzioni di un programma sorgente e le traducono una alla volta. Gli interpreti sono programmi capaci di eseguire direttamente un programma in un generico linguaggio «L» istruzione per istruzione. Esso opera schematicamente in questo modo:  Legge la prima istruzione;  Segnala eventuali errori;  Traduce la prima istruzione e la esegue;  Continua così fino al termine del programma.
  • 13.