Corso di Programmazione Linguaggi di Programmazione. Linguaggio. Messaggio
|
|
- Jacopo Simoni
- 6 anni fa
- Visualizzazioni
Transcript
1 Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Linguaggi di Programmazione Dott. Pasquale Lops Università degli Studi di Bari Dipartimento di Informatica Corso di Programmazione - DIB 1/47 Linguaggio Insieme di sequenze di simboli appartenenti ad un definito lessico, posti in sequenza secondo una opportuna grammatica o sintassi) Per descriverlo è necessario un meta-linguaggio Linguaggio che parla di un linguaggio Corso di Programmazione - DIB 2/47 Messaggio Sequenza di frasi espresse in un linguaggio Analizzabile dal punto di vista Sintattico Si verifica la forma linguistica in cui è codificato (sintassi) Semantico Si individua il significato associato alla forma linguistica (semantica) Corso di Programmazione - DIB 3/47
2 Comunicazione Diretta Requisiti per i due interlocutori: l estensore del messaggio al momento della sua formulazione e il ricevitore al momento della ricezione diano al messaggio eguale significato Corso di Programmazione - DIB 4/47 Comunicazione Indiretta Cause: Il ricevitore non conosce il linguaggio usato per la stesura del messaggio Estensore e ricevitore hanno un diverso grado di conoscenza del linguaggio Tra i due mancano adeguate convenzioni per un interpretazione unica del messaggio Occorre un traduttore Corso di Programmazione - DIB 5/47 Programma Messaggio di comunicazione fra l uomo e la macchina Insieme di frasi costruite secondo regole molto rigide Eliminazione di ambiguità nell interpretazione dei comandi da parte della macchina Necessità di linguaggi molto precisi Le istruzioni obbediscono a rigorose regole grammaticali Corso di Programmazione - DIB 6/47
3 Sistema di Calcolo Gerarchia di componenti software e hardware Software applicativo (es. pacchetti ad usi speciali) Insieme di programmi da utilizzare per applicazioni particolari Generalmente scritti in un linguaggio ad alto livello Forniti direttamente da costruttori di computer o ditte specializzate nella produzione di programmi Software di sistema (sistemi operativi, traduttori, ecc.) Insieme dei programmi che forniscono servizi e svolgono funzioni vitali per il software applicativo Hardware (CPU, memorie, dispositivi di I/O, ecc.) Corso di Programmazione - DIB 7/47 Comunicazione Uomo-Macchina Processore nudo La macchina comprende il linguaggio macchina Costituito da un insieme di istruzioni elementari Ogni istruzione è una stringa di cifre binarie che specifica un operazione e la cella di memoria implicata nell operazione Processore vestito Macchina in grado di comprendere un linguaggio di livello superiore Usato per facilitare il compito di programmare la soluzione di un problema Corso di Programmazione - DIB 8/47 Linguaggio Naturale Usato per la comunicazione verbale fra esseri umani Fonti di ambiguità: Evoluzione Neologismi, Arcaismi Polisemia Parole con significati differenti a seconda del contesto Intrinseca una vecchia porta la sbarra Inadatto alla comunicazione con la macchina Corso di Programmazione - DIB 9/47
4 Linguaggi di Programmazione A basso livello Più vicini alla struttura reale della macchina ed al suo linguaggio Ad alto livello Più vicini al linguaggio dei problemi Più facili da comprendere per l uomo Portabili Utilizzabili, senza modifiche, su diversi tipi di macchine Corso di Programmazione - DIB 10/47 Linguaggi di Programmazione ad alto livello Procedurali Descrivono i passi necessari per ottenere i risultati desiderati come Basati sui concetti di Variabile Assegnamento Non procedurali Esprimono le proprietà dei risultati che si vogliono ottenere cosa Esempio Radice quadrata di y Quel valore x tale che x*x = y Corso di Programmazione - DIB 11/47 Linguaggi di Programmazione Sintassi L insieme delle regole che indicano quali sono le istruzioni formali permesse Poche, semplici, rigide Il programma va accuratamente controllato dal punto di vista formale per garantire la correttezza sintattica Codifica ambigua o non interpretabile Controllo delegato al traduttore Corso di Programmazione - DIB 12/47
5 Linguaggi di Programmazione Semantica Riguarda il contenuto informativo ed il significato di una frase Il lavoro più grosso è verificare e controllare il programma sul fronte logico per garantire la correttezza a livello semantico Informazione trasmessa non corrispondente allo scopo desiderato Connessa all analisi del problema e l algoritmo Corso di Programmazione - DIB 13/47 Sintassi e Semantica Esempio Io ho andato Errata sintatticamente La penna sta mangiando Corretta sintatticamente Forma Errata semanticamente Significato Corso di Programmazione - DIB 14/47 Traduttore Programma che traduce in linguaggio macchina programmi in un linguaggio di livello superiore Analizza i messaggi (comandi) e verifica che siano scritti (codificati) in un linguaggio a lui noto Correttezza sintattica Attribuisce alle sequenze di simboli l opportuno significato in modo da eseguire le giuste azioni Interpretazione unica di ogni istruzione Fa parte del software di sistema Livello intermedio della gerarchia software-hardware Corso di Programmazione - DIB 15/47
6 Traduttori Nei programmi ad alto livello operano su due tipi di entità: Istruzioni Molto più potenti che nel linguaggio macchina Strutture di dati (liste, sequenze, alberi, ecc.) Non direttamente disponibili al livello di linguaggio macchina Devono essere rappresentate in termini di bit, indirizzi e legami tra locazioni Corso di Programmazione - DIB 16/47 Traduttori Processore vestito Linguaggio di Traduzione Programmazione Processore nudo Linguaggio Macchina Interpreti Compilatori Specifici per ogni linguaggio Forniti entrambi dai sistemi di sviluppo del software per i linguaggi supportati Corso di Programmazione - DIB 17/47 Interpretazione Dopo l analisi sintattica, la traduzione procede passo passo con l esecuzione Traduzione ed esecuzione istruzione per istruzione Ogni istruzione tradotta tante volte quante viene eseguita Programma Dati Interprete Risultati Corso di Programmazione - DIB 18/47
7 Compilazione Il programma originale (Sorgente) è analizzato sintatticamente e tradotto in codice oggetto, quindi eseguito Traduzione completamente effettuata prima che cominci l esecuzione Ogni istruzione è tradotta una sola volta Programma Dati Compilatore Codice Oggetto Macchina Fisica Risultati Corso di Programmazione - DIB 19/47 Interpreti vs. Compilatori Programma sorgente residente in memoria + Semplici Efficienti Tempo e Spazio + Interattivi + Errori comprensibili Riferiti al sorgente Programma sorgente non residente in memoria + Ottimizzabili + Efficienti Tempo e Spazio Interattivi + Errori scoperti prima Riferiti al codice oggetto Corso di Programmazione - DIB 20/47 Processo di Compilazione Fasi Analisi Lessicale Divisione della stringa di caratteri del programma in token Segni di interpunzione, nomi di dati, operatori, parole riservate Analisi Sintattica Definizione della struttura sintattica del programma usando le regole grammaticali del linguaggio Generazione del Codice Generazione di appropriate istruzioni in linguaggio macchina per ogni elemento sintattico del programma L insieme finale di queste istruzioni è il programma oggetto Corso di Programmazione - DIB 21/47
8 Processo di Compilazione Le fasi sono tra loro interrelate I moduli di programma responsabili dell analisi sintattica possono utilizzare I moduli dell analisi lessicale per ottenere un token I moduli di generazione del codice per produrre il codice oggetto dell istruzione analizzata Per capire come vengono effettuate le analisi è necessaria la teoria dei linguaggi Corso di Programmazione - DIB 22/47 Alfabeto Insieme finito e non vuoto di simboli primitivi (caratteri) tramite i quali è possibile costruire gli elementi base del linguaggio Esempio: Alfabeto dei numeri reali A = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, +,,.} Corso di Programmazione - DIB 23/47 Concatenazione di Simboli di un alfabeto L oggetto ottenuto prendendo nell ordine i simboli da concatenare Esempio: Dato l alfabeto per i numeri reali La concatenazione di 3 e 4 è 34 La concatenazione di +, 4, 7,. e 5 è La concatenazione di 4,., 7,. e 5 è 4.7.5!!!! Non tutte le sequenze di simboli che si possono costruire sono frasi significative del linguaggio Corso di Programmazione - DIB 24/47
9 Stringa o Parola su un alfabeto Sequenza di simboli ottenuta come concatenazione di un numero finito di elementi dell alfabeto Λ denota la stringa non contenente alcun simbolo (parola vuota) La concatenazione di due parole Parola formata dai simboli della prima seguiti da quelli della seconda Esempi: Λp = pλ = p per ogni parola p la concatenazione di +3 con 4.5 è Corso di Programmazione - DIB 25/47 Prodotto di Insiemi di Parole su un alfabeto Insieme ottenuto concatenando ogni parola di un insieme con ogni parola dell altro Esempio: concatenando {1, 21, 1.4} con {2, 398} si ottiene {12, 1398, 212, 21398, 1.42, } Corso di Programmazione - DIB 26/47 Potenza di un Alfabeto A A è un particolare insieme di parole su A Si possono considerare i prodotti AA AAA Esempio: per l alfabeto dei numeri reali fanno parte di A Le ultime due stringhe non fanno parte dei numeri reali Corso di Programmazione - DIB 27/47
10 A n Potenza di un Alfabeto A Parole costituite da n simboli dell alfabeto A A 0 = {Λ} A 1 = A A 2 = AA A 3 = AAA n è detta lunghezza della parola Corso di Programmazione - DIB 28/47 Chiusura di un Alfabeto A Bisogna delimitare l universo linguistico esprimibile Tutte le possibili parole di lunghezza finita costituite da simboli dell alfabeto A + = A 1 A 2 A n Insieme di tutte le parole su A di lunghezza finita Unione di tutti gli insiemi di parole di varia lunghezza A * = {Λ} A + Chiusura di A Corso di Programmazione - DIB 29/47 Linguaggio su un alfabeto A Un sottoinsieme di A * Tra le parole di A * ci sono parole ammesse nel linguaggio e parole non ammesse Linguaggio Generato da una Grammatica Insieme delle frasi costruite, a partire dall alfabeto, secondo le regole specificate da una grammatica Corso di Programmazione - DIB 30/47
11 Simboli Non Terminali Non fanno parte dell alfabeto Sono variabili Rappresentano opportune sequenze di simboli Nomi che specificano le categorie sintattiche Componenti delle frasi del linguaggio generato dalla grammatica Il loro insieme è detto alfabeto dei simboli non terminali Su di esso è costruito il metalinguaggio Corso di Programmazione - DIB 31/47 Simboli Non Terminali Esempio Linguaggio naturale Parole classificate in frase, soggetto, predicato, articolo, nome, verbo, ecc. <soggetto > <articolo> <nome> il cane Linguaggio algebrico <formula> <variabile> = <espressione aritmetica> x = y + z * 12 Corso di Programmazione - DIB 32/47 Regola o Produzione Coppia ordinata di parole (p, q) tale che, se A è l alfabeto dei simboli terminali N è l alfabeto dei simboli non terminali p e q possono appartenere tanto ad A* N* Scriviamo p q la stringa p produce la stringa q la stringa p può essere riscritta come q p ( Λ) è detta parte sinistra q è detta parte destra Corso di Programmazione - DIB 33/47
12 Regola o Produzione Convenzione Le parti destre di produzioni con la stessa parte sinistra si possono riunire come alternative in un unica parte destra, separate col simbolo ( oppure ) Esempio p q p r p s p t si può compattare in p q r s t Corso di Programmazione - DIB 34/47 Grammatica Insieme delle regole che consentono di definire, tra tutte le possibili sequenze di simboli di lunghezza finita che si possono costruire, quelle lecite (frasi) Le regole di formazione delle frasi del linguaggio si dicono regole di produzione Coinvolgono simboli dell alfabeto ed altri simboli che rappresentano categorie sintattiche Corso di Programmazione - DIB 35/47 Grammatica Quadrupla [Chomsky] G = < A, N, α, P > A alfabeto terminale N alfabeto non terminale α scopo della grammatica (simbolo di partenza) P insieme delle regole di produzione Corso di Programmazione - DIB 36/47
13 Grammatica Esempio Grammatica che genera il linguaggio dei numeri pari A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} N = {α, β} α indica il numero pari Scopo per cui costruiamo la grammatica β indica un numero qualunque P = { α βα , β β0 β1 β2 β8 β9 } Corso di Programmazione - DIB 37/47 Grammatica Esempio A = {il, la, cane, donna, mangia, dorme} N = { <frase>, <soggetto>, <articolo>, <nome>, <verbo>} α = <frase> P = { <frase> <soggetto> <verbo> <soggetto> il <nome> la <nome> il <nome> il cane la <nome> la donna <verbo> dorme mangia } Corso di Programmazione - DIB 38/47 Generazione di Stringhe Una stringa di terminali e non, S 1, genera un altra stringa S 2 Direttamente (S 1 S 2 ) Indirettamente (S 1 * S 2 ) se quest ultima si ottiene dalla prima applicando Una produzione Una sequenza di produzioni della grammatica Corso di Programmazione - DIB 39/47
14 Forma (Normale) di Backus-Naur BNF Notazione per scrivere la grammatica Usata per specificare la sintassi di un linguaggio di programmazione Simboli non terminali scritti fra parentesi angolari < > Simbolo sostituito da ::= Corso di Programmazione - DIB 40/47 Forma di Backus-Naur Esempio Grammatica per i numeri pari (infiniti) <numero pari>::= <numero><numero pari> <numero> ::= <numero> 0 <numero> è ottenibile? <numero pari>::= <numero><numero pari> ::= <numero>2 ::= <numero>32 ::= <numero>932 ::= <numero>4932 ::= Corso di Programmazione - DIB 41/47 Forma di Backus-Naur Esempio Grammatica per le stringhe palindrome Simmetria speculare <frase> ::= Λ <frase> ::= a<frase>a <frase> ::= b<frase>b È possibile derivare infinite stringhe Corso di Programmazione - DIB 42/47
15 Carte Sintattiche Grafi costituiti da blocchi uniti da frecce Blocchi arrotondati Simboli terminali del linguaggio Blocchi rettangolari Simboli non terminali Rimandi alla corrispondente carta sintattica Frecce Indicano le vie percorribili per costrutti validi I bivi rappresentano possibilità alternative Corso di Programmazione - DIB 43/47 Carte Sintattiche Iniziando dalla carta principale, seguire le frecce Quando si dipartono scegliere una strada Attraversando un blocco arrotondato Trascriverne il contenuto Attraversando un blocco rettangolare, passare alla carta corrispondente e seguirla Ogni carta ha esattamente un inizio e una fine, come il blocco Corso di Programmazione - DIB 44/47 Carte Sintattiche Ogni traiettoria percorsa nel verso delle frecce definisce un costrutto sintattico valido del linguaggio Tutti i simboli terminali incontrati nel percorso ed in quella data sequenza costituiscono una frase legale del linguaggio Corso di Programmazione - DIB 45/47
16 Carte Sintattiche Esempio Corso di Programmazione - DIB 46/47 Carte Sintattiche Esempio Identificatore: Lettera seguita (eventualmente) da lettere o cifre <identificatore> ::= <lettera> <lettera><stringa alfanumerica> <stringa alfanumerica> ::= <lettera> <cifra> <lettera><stringa alfanumerica> <cifra><stringa alfanumerica> <lettera> ::= a b c d e f g h z <cifra> ::= lettera lettera cifra Corso di Programmazione - DIB 47/47
Corso di Programmazione Linguaggi di Programmazione
Corso di Programmazione Linguaggi di Programmazione Dott. Stefano Ferilli ferilli@di.uniba.it Università degli Studi di Bari Dipartimento di Informatica Linguaggio Insieme di sequenze di simboli appartenenti
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliUnità Didattica 2 I Linguaggi di Programmazione
Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliDall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione
Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa
DettagliI Linguaggi di Programmazione
I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliC++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI
Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2
DettagliLinguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN
Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI Fortran Cobol
DettagliFondamenti d Informatica: linguaggi formali. Barbara Re, Phd
Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di
DettagliLinguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
DettagliLINGUAGGI DI ALTO LIVELLO
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliGrammatiche Parse trees Lezione del 17/10/2012
Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
DettagliGrammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione
Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio
Dettagli3. Programmi e algoritmi
3. Programmi e algoritmi Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Contiene slides del corso «Fondamenti di Informatica» del Prof. Montessoro (Università degli Studi di Udine) Recall:
DettagliDescrizione delle operazioni di calcolo. Espressioni costanti semplici
Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette
DettagliSommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione
DettagliTeoria dell Informazione
Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 09 Linguaggi Sintassi e Semantica Alfonso Miola Ottobre 2009 http://www.dia.uniroma3.it/~java/fondinf/ Linguaggi - Sintassi e Semantica
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
DettagliAnalizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.
Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,
DettagliCorso di Linguaggi di Programmazione + Laboratorio
Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un
DettagliInformatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive
DettagliUnità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere
DettagliEspressività e limitazioni delle grammatiche regolari
Espressività e limitazioni delle grammatiche regolari Vantaggi: Le grammatiche regolari consentono di esprimere una significativa classe di linguaggi: linguaggi con un numero di sequenze infinito grazie
DettagliCorso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a
Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma
DettagliEsempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina
Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
di Cassino e del Lazio Meridionale Corso di Informatica Linguaggi di Programmazione Anno Accademico 2014/2015 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann
DettagliRappresentazione dei numeri interi in un calcolatore
Corso di Calcolatori Elettronici I A.A. 2012-2013 Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica
DettagliProblema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
DettagliDAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione
DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di
DettagliIntroduzione al funzionamento di un calcolatore elettronico
1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore
DettagliConcetti di base dell ICT
Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:
DettagliCorso di Programmazione Record e Insiemi. Record. Record. Dott. Pasquale Lops.
Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione e Insiemi Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/14 Registra in una n-pla di dati le principali
DettagliLA CODIFICA DELLE INFORMAZIONI
LA CODIFICA DELLE INFORMAZIONI Linguaggio Elaborazione delle informazioni: operazioni che possono essere effettuate sulle informazioni: inserimento, archiviazione, modifica, ordinamento, calcolo, ecc.
DettagliProprietà dei linguaggi non contestuali
Proprietà dei linguaggi non contestuali Argomenti della lezione Pumping lemma per i linguaggi non contestuali Proprietà di chiusura Argomenti della lezione Grammatiche non contestuali in forma ridotta
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
DettagliLa codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
DettagliIl Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
DettagliCos è la programmazione?
La programmazione Cos è la programmazione? Termine usato per indicare le attività che trasformano l esigenza di risolvere un Problema in un Programma, inteso come sistema informatico capace di risolvere
DettagliIntroduzione alla programmazione. Walter Didimo
Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata
DettagliConcetti Introduttivi. Il Computer
Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta
DettagliParole note, nuovi significati: linguaggio, determinismo e infinito
Parole note, nuovi significati: linguaggio, determinismo e infinito Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico
DettagliCorso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis
Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Capitolo 2 Grammatiche e Linguaggi Si ringraziano il Prof. Giovanni Semeraro e il Dott. Pasquale Lops per la concessione del
DettagliLe grammatiche formali
Le grammatiche formali Il carattere generativo dei sistemi linguisticii i Consideriamo i la seguente frase: Un gatto rincorre il topo Non facciamo difficoltà a riconoscere che si tratta di una frase sintatticamente
DettagliI.4 Rappresentazione dell informazione
I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione
DettagliLINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 Un po di storia sui linguaggi 1957 John Backus e colleghi della IBM rilasciano la prima
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliCONCETTI FONDAMENTALI
CONCETTI FONDAMENTALI Algoritmo Procedura di trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante una sequenza di istruzioni. Linguaggio di programmazione Programma
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliGRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve
GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE Cosimo Laneve 1 argomenti 1. linguaggi di programmazione 2. definizione formale di insiemi infiniti 3. la grammatica e la notazione BNF 4. notazioni alternative
DettagliIl linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliProgrammazione. Marco Anisetti. Università degli Studi di Milano, Dipartimento di Informatica
Programmazione Marco Anisetti Università degli Studi di Milano, Dipartimento di Informatica marco.anisetti@unimi.it http://homes.di.unimi.it/anisetti/ Marco Anisetti - 1 / 40 Riepilogo lezione 1 Ruolo
DettagliCome ragiona il computer. Problemi e algoritmi
Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema
DettagliUnità di apprendimento 6. Il software: dal linguaggio alla applicazione
Unità di apprendimento 6 Il software: dal linguaggio alla applicazione Unità di apprendimento 6 Lezione 2 Conosciamo i linguaggi di programmazione In questa lezione impareremo: che cos è un linguaggio
DettagliModulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1
Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliEspressioni e Comandi
Espressioni e Comandi March 24, 2017 Elementi di Base dei Programmi Ricordate? Macchina Astratta: Insieme di algoritmi e strutture dati che permettono di memorizzare ed eseguire programmi Abbiamo parlato
DettagliUniversità degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java
Università degli studi Roma Tre Linguaggi: Sintassi e Semantica Il A cura di A. Orlandini 1 Obiettivi Distinguere la sintassi dalla semantica di un linguaggio Conoscere le convenzioni del meta-linguaggio
DettagliLinguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto
rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora una classe piu ampia di linguaggi, i Linguaggi Liberi da Contesto (CFL) i CFL sono stati
DettagliTEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE
TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso
Dettagliacuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1
acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 richiami teorici sulle grammatiche di Chomsky esercizivari esercizi su grammatiche ed espressioni regolari
DettagliPROBLEMI ALGORITMI E PROGRAMMAZIONE
PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL
DettagliMODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio
ECDL MODULO 1 Prof. Onofrio Greco Modulo 1 Concetti di base dell ICT Modulo 2 Uso del Computer e Gestione dei File Modulo 3 - Elaborazione testi Modulo 4 Foglio Elettronico Modulo 5 Uso delle Basi di Dati
DettagliLinguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl
Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliInformatica Generale Andrea Corradini I linguaggi di programmazione
Informatica Generale Andrea Corradini 17 - I linguaggi di programmazione Sommario Cos'è un linguaggio di programmazione? Una prospettiva storica: linguaggi di prima, seconda e terza generazione I paradigmi
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli
DettagliEspressioni Regolari
Espressioni Regolari Le espressioni regolari sono costituite dalle stringhe sull alfabeto Σ = Σ {+,,*,(,),φ} ottenute secondo le seguenti regole: 1. φ e ciascun membro di Σ sono Epressioni Regolari 2.
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliAlgoritmi. Pagina 1 di 5
Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni
DettagliLezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi
Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione
DettagliCorso di Informatica Modulo T2 1 - Linguaggi e macchine
Corso di Informatica Modulo T2 1 - Linguaggi e macchine 1 Prerequisiti Principi della comunicazione Rappresentazione simbolica Calcolo delle combinazioni di n oggetti a gruppi di k Dati e istruzioni Utilizzo
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Fondamenti di Informatica Linguaggi di Programmazione Anno Accademico Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliAlgoritmi e Linguaggi
Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e
DettagliCorso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
DettagliCodifica dell informazione
Codifica dell informazione Gli algoritmi sono costituiti da istruzioni (blocchi sequenziali, condizionali, iterativi) che operano su dati. Per trasformare un programma in una descrizione eseguibile da
DettagliLe basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Rappresentazione dei numeri naturali (N) Rappresentazione dei numeri interi (Z) Modulo e segno In complemento a 2 Operazioni aritmetiche
DettagliLezione 16. Il Software di base
Lezione 16 Software di base Il Software di base Con il termine software di base si intende l insieme dei programmai che consentono ad un utente di eseguire operazioni base come costruire e mandare in esecuzione
DettagliCostanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi
DettagliFondamenti VBA. Che cos è VBA
Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione
DettagliLinguaggi di programmazione
Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input
DettagliFondamenti di Informatica
Fondamenti di Informatica Linguag gi, Codifica e Rappresentazione dell Informazione P r o f. R a f fa e l e P i z zo l a n t e A. A. 2 0 1 6 / 1 7 Cosa abbiamo visto la volta scorsa Gli elaboratori sono
DettagliRappresentazione dei numeri interi in un calcolatore
Corso di Calcolatori Elettronici I Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
DettagliLezione 1. Problemi Algoritmi Programmi
Lezione 1 Problemi Algoritmi Programmi Programmazione I Paolo Valente - 2016/2017 Il problema... della tigella emiliana Avete invitato a cena degli amici stranieri e volete fare provare loro le tigelle
Dettagli