Corso di Programmazione Linguaggi di Programmazione
|
|
- Fortunato Fiore
- 7 anni fa
- Visualizzazioni
Transcript
1 Corso di Programmazione Linguaggi di Programmazione Dott. Stefano Ferilli Università degli Studi di Bari Dipartimento di Informatica
2 Linguaggio Insieme di sequenze di simboli appartenenti ad un definito lessico, giustapposti in sequenza secondo una opportuna grammatica (o sintassi) Per descriverlo è necessario un meta-linguaggio Linguaggio che parla di un linguaggio
3 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)
4 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
5 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
6 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
7 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.)
8 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
9 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
10 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
11 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
12 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
13 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
14 Io ho andato Sintassi e Semantica Esempio Errata sintatticamente La penna sta mangiando Corretta sintatticamente Forma Errata semanticamente Significato
15 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
16 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
17 Traduttori Processore vestito Linguaggio di Programmazione Traduzione Processore nudo Linguaggio Macchina Interpreti Compilatori Specifici per ogni linguaggio Forniti entrambi dai sistemi di sviluppo del software per i linguaggi supportati
18 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
19 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
20 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
21 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
22 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
23 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, +,,.}
24 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 significanti del linguaggio
25 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 è +34.5
26 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, }
27 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
28 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
29 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
30 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
31 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
32 Simboli Non Terminali Linguaggio naturale Esempio 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
33 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
34 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
35 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
36 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
37 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 }
38 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 }
39 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
40 Derivabilità Una sequenza di simboli S 2 è derivabile da un altra S 1 se Entrambe sono stringhe di terminali e non S 1 ha almeno un non terminale γ C è una regola che, sostituendo γ con S 3 in S 1, porta a S 2 La frase w costruita sui simboli terminali di G, con simbolo iniziale α, è derivabile se n, s 1,,s n (A N) * α s 1 s n w
41 Derivabilità Una frase w è generata da G se si ottiene applicando ripetutamente le regole di P, partendo da α La struttura del linguaggio dipende dalle regole di produzione che determinano le modalità di formazione delle frasi del linguaggio generato dalla grammatica Una grammatica è libera da contesto se le sue regole sono del tipo b w b simbolo non terminale w sequenza di simboli terminali e/o non terminali
42 Tipi di Grammatiche Dipendenti dalle restrizioni imposte alle produzioni 0 (Nessuna restrizione) p q p, q (A N) * 1 (Dipendenti dal contesto) xay xby a N; x,y,b (A N) * ; b Λ 2 (Non contestuali) p q p N; Λ q (A N) * 3 (Regolari) p ax p N; a A * ; x N
43 Albero Sintattico Rappresentazione grafica del processo di derivazione Radice = scopo della grammatica Relazione padre-figlio = applicazione di regole di produzione Foglie = simboli terminali La sequenza di foglie, lette da sinistra verso destra, è detta frontiera Grafo orientato e ordinato aciclico
44 Albero Sintattico di un Programma Albero che si ricava dalle regole di produzione della grammatica di un linguaggio di programmazione Radice: <programma> Foglie caratteri alfanumerici simboli speciali parole chiave operatori
45 Analisi Sintattica Procedimento di costruzione della derivazione di una frase rispetto ad una grammatica G Effettuato da un analizzatore sintattico (parser) Programma che opera su una stringa, e se questa appartiene al linguaggio generato dalla grammatica, ne produce una derivazione altrimenti si ferma segnalando il punto dove si è verificato l errore A seconda dell ordine seguito nel costruire le derivazioni, è detta ascendente o discendente
46 Analisi Sintattica Esempio Produzioni: 1. S asab 2. S b 3. A ba 4. A a 5. B cb 6. B a Una frase è a 2 b 3 a 4 = aabbbaaaa S 1 a S 1 A 4 B 6 a S 2 A 3 B 6 a a b b A 3 a b A 4 a
47 Analisi Sintattica Ascendente Esempio 9 S 1 a 6 S 1 7 A 4 8 B a S 2 A 3 B 6 a a b b A 3 a 3 2 b A 4 a
48 Analisi Sintattica Discendente Esempio 1 S 1 a 2 S 1 8 A 4 9 B a S 2 A 3 B 6 a a b b A 3 a 5 6 b A 4 a
49 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 uncinate < > Simbolo sostituito da ::=
50 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 ::= 64932
51 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
52 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
53 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
54 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
55 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 Linguaggi di Programmazione. Linguaggio. Messaggio
Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Linguaggi di Programmazione Dott. Pasquale Lops lops@di.uniba.it Università degli Studi di Bari Dipartimento di Informatica
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
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
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
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
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
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,
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
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
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
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
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
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
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
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à
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
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
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
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,
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
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
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
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
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
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
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à
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
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:
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)
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:
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
DettagliUn po di storia sui linguaggi
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
DettagliPROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t
PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli
DettagliLinguaggi e Grammatiche Liberi da Contesto
N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica
DettagliLogica proposizionale
Definire un linguaggio formale Logica proposizionale Sandro Zucchi 2013-14 Definiamo un linguaggio formale LP (che appartiene a una classe di linguaggi detti linguaggi della logica proposizionale) Per
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
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
DettagliParte n.4 Linguaggi: Gerarchia ed Operazioni
Linguaggi di Programmazione Corso C Parte n.4 Linguaggi: Gerarchia ed Operazioni Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Gerarchia di Chomsky Sia
DettagliCorso di Linguaggi e Traduttori 1 AA GRAMMATICHE
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla V, V, P S ( ) N T, dove: V N e l insieme dei simboli non
DettagliALGORITMI: PROPRIETÀ FONDAMENTALI
ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse
DettagliDefinizione di Grammatica
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla ( VN, VT, P, S ) dove: V N e l insieme dei simboli non
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
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
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
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
DettagliUniversità degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie
Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni
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
DettagliLinguaggi Sintassi e Semantica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 4 Linguaggi Sintassi e Semantica Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Linguaggi - Sintassi
DettagliGRAMMATICA FORMALE. Albero sintattico
GRAMMATICA FORMALE Una quadrupla VT,VN,P,S dove: VT è un insieme finito di simboli terminali VN è un insieme finito di simboli non terminali Pè uninsieme finito di produzioni, ossiadi regole di riscrittura
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
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
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
DettagliLa suddivisione lezione/esercitazione è orientativa Martedì Lezione Aula A4 Martedi Esercitazione Aula A2 Mercoledì Laboratorio
La suddivisione lezione/esercitazione è orientativa Martedì 11 13 Lezione Aula A4 Martedi 14 16 Esercitazione Aula A2 Mercoledì 11 13 Laboratorio Lab. 1 Mercoledì 14 16 Lezione Aula A3 Giovedì 14 16 Lezione
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
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
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
Dettagli