Capitolo 5: Algol 60, Pascal e C

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo 5: Algol 60, Pascal e C"

Transcript

1 Capitolo 5: Algol 60, Pascal e C

2 Algol 60 (58-63) -Backus, McCarthy -fino al Pascal (70) è stato lo standard accademico punti positivi -BNF!! -block structure (begin-end), recursion, higher order functions, stack storage, meno restrizioni punti negativi -all related with parameter passing: procedure as parameters, arrays without bounds, pass-by-name (beta-riduzione)

3 esempio di funzione Algol real procedure average(a,n); real array A; integer n; begin real sum; sum:=0; for i=1 step 1 until n do sum:=sum + A[i]; average:=sum/n end;

4 esercizio 5.1: passaggio di funzioni è unsafe il tipo di Q è semplicemente proc e questo non basta per evitare errori di tipo a run-time proc P(proc Q) begin Q(true) end; P(H); proc H(i) integer i; begin H:=i+3 end;

5 pass-by-name => in-lining della funzione con le espressioni dei parametri attuali sostituiti ai corrispondenti formali Algol 60 copy rule strani side effects tra i parametri formali c è anche pass-by-value, ma ineffiiciente con array

6 esempio di pass-by-name in Algol 60: begin integer i; integer procedure sum(i,j); integer i, j; begin integer sm; sm:=0; for i:= 1 step 1 until 100 do sm:= sm+j; sum:=sm end; print(sum(i,i*10)) end vedere es. 5.2

7 copy rule: begin integer sm; sm:=0; for i:= 1 step 1 until 100 do sm:= sm+i*10; sum:=sm end; sm = 1*10+ 2*10+ 3* *10

8 Algol 68 basato su un formalismo di specifica chiamato grammatiche a 2 livelli deriva dal successo del BNF per specificare la sintassi si voleva grammatica estesa per specificare anche la semantica del LP

9 Pascal definito negli anni 70 da Nyklaus Wirth Algorithms+Data Structures = Programs (75) uno dei linguaggi più diffusi fino negli anni 90 (anche per SO Mac) concetti per definire strutture dati: array, record, record con varianti, tipi subrange [1..10] al più funzioni di ordine 2

10 problema con gli array che hanno tipo: A: array <tipo indice> of <tipo degli elementi> A: array [ ] of integer; quando lo passo ad una funzione: procedure P(a:array[ ] of integer) P funziona solo per array di questo tipo!! non esiste array [n..m] of int con variabili

11 C (69-73) Dennis Ritchie Unix deriva da linguaggio senza tipi (B e prima BCLP) modello della memoria come sequenza di parole aritmetica dei puntatori array e puntatori sono la stessa cosa: tipi si confondono cast la debolezza dei tipi nei 70 era un pregio, ma successivamente come un fatto negativo (C++)

12 Capitolo (4.4.2) imperativo dichiarativo

13 linguaggi imperativi e linguaggi dichiarativi: imperativo: l assegnazione x=x-1; è un ordine al computer di modificare l r-valore di x dichiarativo: invece int f(int y){return y-1;} dichiara che f è una funzione con un certo grafo: {(n,n-1) n Z}

14 Lisp ed ML NON sono linguaggi dichiarativi, permettono di fare assegnazioni solo escludendo queste parti si ottengono Linguaggi funzionali puri = dichiarativi

15 Linguaggi dichiarativi l essenza del calcolo consiste nel valutare espressioni che contengono invocazioni a funzioni l assenza di variabili modificabili => le funzioni non hanno side-effects

16 test di purezza: all interno di un dato blocco in cui sono visibili le variabili x1 xn, se invocassimo f(x1,,xn)+f(x1,,xn)+f(x1,,xn) il risultato di ogni invocazione di f è sempre lo stesso f has no side effects

17 referential transparency: in linguistica si usa per indicare il fenomeno in cui un termine può essere sostituito con un altro mantenendo inalterato il significato della frase i linguaggi funzionali puri supportano la referential transparency, mentre quelli imperativi no (o meno) il punto è che è più facile trovare cose equivalenti nei linguaggi funzionali puri che in quelli imperativi 2 esempi di cose

18 referential tranparency and variables i linguaggi funzionali puri la supportano se x ha lo stesso valore di y, allora E( x ) è equivalente a E( y ) i linguaggi imperativi la supportano solo se x e y sono alias nei linguaggi funzionali puri una variabile è solo un nome associato ad un valore costante

19 referential transparency and functions: linguaggi funzionali puri : 2 funzioni sono equivalenti se hanno lo stesso grafo per i linguaggi imperativi: se hanno lo stesso grafo e gli stessi side effects risultato F funzionale pura risultato F imperativa side effect

20 declarative is better than imperative? Nel 1977 John Backus (inventore di Fortran e Algol 60) sostenne che i linguaggi funzionali puri sono: più facili da capire degli imperativi sono più astratti, cioè più indipendenti dalla realizzazione delle strutture dati più efficienti la referential transparency l esecuzione concorrente di parti del programma

21 Backus capì che era essenziale produrre SW il più corretto e facile da mantenere e modificare possibile pensò che la soluzione fossero i linguaggi funzionali appunto più semplici e astratti e ne propose e sviluppò uno: FP

22 imperativo: int prod=0; for(int i=0;i<n;i++) prod=prod+a[i]*b[i]; funzionale: In_prod=(Fold +). (ApplyToAll *).Transpose

23 non è andata così -soluzioni funzionali sono + astratte, ma le cose astratte non sono + facili -parallelismo non è (ancora) facile da usare -inerzia del mercato -paradigma ad oggetti vincente -ma recentemente linguaggi che mescolano parti funzionali e parti ad oggetti: Python, Ruby

E una notazione per descrivere gli algoritmi.

E una notazione per descrivere gli algoritmi. Linguaggio di Programmazione E una notazione per descrivere gli algoritmi. Programma:: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni linguaggio

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA DAL PROBLEMA AL PROGRAMMA Scopo del modulo Conoscere alcuni concetti fondamentali dell informatica:algoritmo, l automa, linguaggio formale Essere in grado di cogliere l intreccio tra alcuni risultati della

Dettagli

Linguaggi di programmazione

Linguaggi 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

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 19 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 18 Maggio 2010 idea: sfruttare i

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come 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 Problema Strategia

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

Introduzione alla Programmazione

Introduzione alla Programmazione Programmazione 1: Introduzione alla Programmazione Michele Nappi, Ph.D Dipartimento di Matematica e Informatica Università degli Studi di Salerno mnappi@unisa.it www.dmi.unisa.it/people/nappi it/people/nappi

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Linguaggi per COMUNICARE Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Sintassi e semantica dei linguaggi Un informazione può : Essere

Dettagli

PROGRAMMAZIONE II Corso B Introduzione al corso

PROGRAMMAZIONE II Corso B Introduzione al corso AA 2014-2015 PROGRAMMAZIONE II Corso B Introduzione al corso Andrea Corradini o Email: andrea@di.unipi.it o Web: www.di.unipi.it/~andrea 1 INFORMAZIONI GENERALI Pagina web del corso: http://www.di.unipi.it/~andrea/didattica/pr2-b-14/

Dettagli

Il software e la programmazione

Il software e la programmazione Il software e la programmazione Concetti base sul software Elementi di programmazione Cenni sul linguaggio Pascal Che cosa è il software Determina ciò che un computer può fare Include istruzioni memorizzate

Dettagli

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione. Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione. Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione Ugo Montanari Dipartimento di Informatica, Università di Pisa 0 Roadmap Perchè i linguaggi? Che cosa sono i linguaggi? Esempio: i numeri

Dettagli

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI IL LINGUAGGIO JAVA Dispense per il corso di laboratorio di sistemi I.T.I.S. ABACUS A.S. 2008/2009 Autore: Roberto Amadini Testo di riferimento: La programmazione ad oggetti C++ Java (Lorenzi, Moriggia,

Dettagli

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Le operazioni di allocazione e deallocazione sono a carico del sistema. Allocazione della memoria In C++ è possibile creare (allocare) variabili in maniera statica o dinamica. Nell allocazione statica una variabile esiste ed è utilizzabile dal momento della sua dichiarazione

Dettagli

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Stored Procedures Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Progetto di Applicazioni Software Stored Procedure e User Defined

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Introduzione ai linguaggi di programmazione

Introduzione ai linguaggi di programmazione Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Introduzione ai linguaggi di programmazione Giorgio

Dettagli

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione Elementi generali Un parser generico di tipo procede operando una sequenza di riduzioni a

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Metodologie di programmazione in Fortran 90

Metodologie di programmazione in Fortran 90 Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 3 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 5 Marzo 2013 Storicamemente Introduzione al paradigma funzionale 1977: ACM Turing

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Università degli Studi di Napoli Federico II. Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica

Università degli Studi di Napoli Federico II. Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica Università degli Studi di Napoli Federico II Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica Anno Accademico 2009/2010 Appunti di Calcolabilità e Complessità Lezione 9: Introduzione alle logiche

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

Dettagli

Fondamenti di Informatica 7. Linguaggi di programmazione

Fondamenti di Informatica 7. Linguaggi di programmazione I linguaggi di alto livello Fondamenti di Informatica 7. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto

Dettagli

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Parli del diavolo... e spuntano i Puntatori!

Parli del diavolo... e spuntano i Puntatori! Parli del diavolo... e spuntano i Puntatori! Ivano Salvo Sapienza Università di Roma Anno Accademico 2012-13 Presentazione In questa dispensa verranno introdotti due concetti fondamentali della programmazione

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Introduzione all Informatica - corso E Docente: Ing. Irina Trubitsyna Obiettivi del corso Concetti di base sull informatica e sulla gestione delle informazioni Struttura e funzionamento

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 3 Alberto Ceselli (thanks C. Braghin) ceselli@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 09 Marzo 2009 Storicamemente

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Sintassi e semantica Compilatori, interpreti e il linker Introduzione al C La funzione main del C 2 Definizione 1 Un linguaggio è un insieme di parole

Dettagli

Laboratorio di Programmazione Strutturata

Laboratorio di Programmazione Strutturata Laboratorio di Programmazione Strutturata Facoltà di Scienze e Tecnologie per i Media Anno 2008/2009 Dati Generali Docente del corso : Dott. Tulimiero Davide Materiale del corso : Corso completo di programmazione

Dettagli

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

Dettagli

----------------------------------------------------------------

---------------------------------------------------------------- ---------------------------------------------------------------- utilizzo frequente di chiamate a.. A differenza del Pascal, il C permette di operare con assegnamenti e confronti su dati di tipo diverso,

Dettagli

Homework HWC1 di Programmazione Concorrente 13 novembre 2014 anno accademico 2014/2015

Homework HWC1 di Programmazione Concorrente 13 novembre 2014 anno accademico 2014/2015 Homework HWC1 di Programmazione Concorrente 13 novembre 2014 anno accademico 2014/2015 Modalità di consegna L homework va consegnato entro le ore 20:00 di domenica, trenta di novembre, inviando al docente

Dettagli

strutturare dati e codice

strutturare dati e codice Puntatori e passaggio parametri strutturare dati e codice Tipo di dati int * Pi ; Op. dereferenziazione j = *Pi ; Op. indirizzo Pi = &i ; By value int f(int i) ; a = f(b) ; By address int f(int * Pi) ;

Dettagli

Il laboratorio di Fisica Computazionale: strumentazione

Il laboratorio di Fisica Computazionale: strumentazione http://www.laureescientifiche.units.it/ Il laboratorio di Fisica Computazionale: strumentazione G. Pastore, M. Peressi Dip. Fisica - Università di Trieste (aggiornamento e formazione insegnanti; corso

Dettagli

Elementi del calcolatore: CPU

Elementi del calcolatore: CPU Elementi del calcolatore: CPU Elementi del calcolatore: Memoria Elementi del calcolatore: Memoria Elementi del calcolatore: Hard Disk Antefatto Sistema Operativo Come il computer appare Il calcolatore

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria Introduzione all Informatica 1 Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria Programma del corso Programma di

Dettagli

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni

Dettagli

RDBMS: panorama attuale. RDBMS: panorama attuale

RDBMS: panorama attuale. RDBMS: panorama attuale RDBMS: panorama attuale Gestiscono e manipolano dati semplici (tabellari) Hanno un linguaggio di interrogazione (SQL) semplice, dichiarativo e standard Tool consolidati per lo sviluppo di applicazioni

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

LINGUAGGI - COMPILATORI - INTERPRETI

LINGUAGGI - COMPILATORI - INTERPRETI LINGUAGGI - COMPILATORI - INTERPRETI Per poter risolvere un dato problema utilizzando un computer è necessario che questo venga guidato da una serie di istruzioni che specificano, passo dopo passo, la

Dettagli

Colloquio di informatica (5 crediti)

Colloquio di informatica (5 crediti) Università degli studi della Tuscia Dipartimento di Scienze Ecologiche e Biologiche Corso di laurea in Scienze Ambientali A.A. 2013-2014 - II semestre Colloquio di informatica (5 crediti) Prof. Pier Giorgio

Dettagli

1. Linguaggi di Programmazione Introduzione

1. Linguaggi di Programmazione Introduzione 1. Linguaggi di Programmazione Introduzione 1.1 La programmazione Il motivo fondamentale che da sempre spinge l uomo alla progettazione e alla creazione di macchine di qualsiasi tipo è quello di facilitare

Dettagli

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione

Dettagli

Il Software... A.A. 2013-14 Informatica 96

Il Software... A.A. 2013-14 Informatica 96 Il Software... A.A. 2013-14 Informatica 96 Il software L hardware non è direttamente utilizzabile Sono necessari dei programmi per far svolgere delle funzioni all insieme di circuiti Informatica 97 Il

Dettagli

Algoritmi, dati e programmi

Algoritmi, dati e programmi 1 Algoritmi, dati e programmi 2 Informatica Informatica: Scienza che studia l informazione e la sua elaborazione. informazione rappresentazione dell informazione (dati) dati elaborazione dei dati tramite

Dettagli

Problemi, Algoritmi e Programmi

Problemi, Algoritmi e Programmi MASTER Information Technology Excellence Road (I.T.E.R.) Problemi, Algoritmi e Programmi Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Introduzione

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

PL/SQL Uso di un linguaggio procedurale per un database

PL/SQL Uso di un linguaggio procedurale per un database PL/SQL Uso di un linguaggio procedurale per un database Roberto Basili Corso di Basi Di Dati 1 a.a. 2000-2001 Abstract Questa breve dispensa descrive piu etesamente i contenuti della esercitazione del

Dettagli

Cinc. Linguaggio ed Implementazione. Claudia Strazzari. Fabio G. Strozzi. Matteo Benevelli. http://www.cs.unibo.it/ fstrozzi/cinc.

Cinc. Linguaggio ed Implementazione. Claudia Strazzari. Fabio G. Strozzi. Matteo Benevelli. http://www.cs.unibo.it/ fstrozzi/cinc. Cinc Linguaggio ed Implementazione Claudia Strazzari Fabio G. Strozzi Matteo Benevelli http://www.cs.unibo.it/ fstrozzi/cinc.html 1 Prefazione Cinc è un linguaggio di programmazione imperativo, fortemente

Dettagli

Programmi e programmazione

Programmi e programmazione Programmi e programmazione Lezione n. 4 Dall algoritmo al programma L algoritmo è l idea risolutiva con caratteristiche di rigore (non brevettabile, non tutelabile dal diritto d autore) Si rappresenta

Dettagli

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO Linguaggio macchina Uno per ogni processore o famiglia di processori Linguaggio assembler Versione simbolica di quello macchina. LINGUAGGI DI ALTO

Dettagli

Il programma. Breve storia della programmazione

Il programma. Breve storia della programmazione Il programma Si definisce "programma" qualsiasi sequenza di istruzioni scritte in linguaggio macchina (l'unico linguaggio comprensibile ad un calcolatore, le famose sequenze di 0 e 1) atta ad essere elaborata

Dettagli

OSSIF WEB. Manuale query builder

OSSIF WEB. Manuale query builder OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI

Dettagli

Operazioni di input e output in Fortran 90

Operazioni di input e output in Fortran 90 Operazioni di input e output in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: file e formattazione DIS - Dipartimento di informatica

Dettagli

PARTE II PROGRAMMAZIONE PARALLELA

PARTE II PROGRAMMAZIONE PARALLELA PARTE II PROGRAMMAZIONE PARALLELA Metodologie di Esplicitazione del Metodologie di Esplicitazione del Implicito Funzionale (Control Parallelism ) Basato sui dati (Data Parallelism ) Ogni metodologia di

Dettagli

1. FINALITA DELLA DISCIPLINA

1. FINALITA DELLA DISCIPLINA Ministero dell Istruzione dell Università e della Ricerca LICEO SCIENTIFICO STATALE Donato Bramante Via Trieste, 70-20013 MAGENTA (MI) - MIUR: MIPS25000Q Tel.: +39 02 97290563/4/5 Fax: 02 97220275 Sito:

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Programma di Paradigmi e possibili domande. Capitolo 1

Programma di Paradigmi e possibili domande. Capitolo 1 Definizione di macchina astratta Programma di Paradigmi e possibili domande Capitolo 1 Una macchina astratta per il linguaggio L detta ML, è un qualsiasi insieme di algoritmi e strutture dati che permettono

Dettagli

Appunti per il corso di Programmazione I A.A. 2005 06

Appunti per il corso di Programmazione I A.A. 2005 06 Appunti per il corso di Programmazione I A.A. 2005 06 Marco Baioletti Dipartimento di Matematica ed Informatica Facoltà di Scienze MM.FF.NN. Università degli Studi di Perugia 28 gennaio 2006 Capitolo 1

Dettagli

Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della

Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della verifica di sistemi (safety-critical, commercially critical,

Dettagli

LA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI

LA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI 1 LA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI ( I.D. Falconi ~ 24.01.09) INTRODUZIONE La programmazione orientata agli oggetti (OOP) rappresenta una modalità di programmazione strutturata attraverso la quale

Dettagli

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

ALGORITMI 2 FINALITÁ

ALGORITMI 2 FINALITÁ INFORMATICA MODULO 8 Algoritmi e programmi A cura di Mimmo Corrado Aprile 2011 ALGORITMI 2 FINALITÁ Il Modulo Algoritmi e programmi introduce lo studente nel mondo della programmazione. ALGORITMI 3 1.

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

- W. Kernighan) AWK (Aho. Introduzione. Programmi awk. Un linguaggio di programmazione per manipolare file di dati

- W. Kernighan) AWK (Aho. Introduzione. Programmi awk. Un linguaggio di programmazione per manipolare file di dati AWK (Aho - W. Kernighan) Un linguaggio di programmazione per manipolare file di dati Introduzione Di base awk serve per trovare unità di testo che rispondono a pattern specifici all interno di file. Trovata

Dettagli

Programmazione AA 2012 2013

Programmazione AA 2012 2013 Programmazione ad Oggetti AA 2012 2013 Contenuti del corso Modulo A Tecniche di programmazione Docente: Prof. Michele Bugliesi Modulo B Tecniche di progetto Docente: Prof. Alessandro Roncato Contenuti

Dettagli

Puntatori Passaggio di parametri per indirizzo

Puntatori Passaggio di parametri per indirizzo Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Puntatori Passaggio di parametri per indirizzo Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica

Dettagli

Programmi. Algoritmi scritti in un linguaggio di programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione Programmi Algoritmi scritti in un linguaggio di programmazione Sistema operativo:programma supervisore che coordina tutte le operazioni del calcolatore Programmi applicativi esistenti Sistemi di videoscrittura

Dettagli

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università della Calabria ricca@mat.unical.it Presentiamoci

Dettagli

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti di FORTRAN 77. Maria Grazia Gasparo Aprile 2011

Appunti di FORTRAN 77. Maria Grazia Gasparo Aprile 2011 Appunti di FORTRAN 77 Maria Grazia Gasparo Aprile 2011 i ii Indice 1 Linguaggio macchina e assembly 1 2 Linguaggi interpretati e compilati 3 3 Storia del FORTRAN 5 4 Perché insegnare il FORTRAN 77? 7 5

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Il descrittore di processo (PCB)

Il descrittore di processo (PCB) Il descrittore di processo (PC) Il S.O. gestisce i processi associando a ciascuno di essi un struttura dati di tipo record detta descrittore di processo o Process Control lock (PC) Il PC contiene tutte

Dettagli

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati Tipologie di pianificatori Pianificazione Intelligenza Artificiale e Agenti II modulo Pianificazione a ordinamento parziale (POP) (HTN) pianificazione logica (SatPlan) Pianificazione come ricerca su grafi

Dettagli

progam ponteasensounicoalaternato ; type dir = ( nord, sud );

progam ponteasensounicoalaternato ; type dir = ( nord, sud ); Esercizio di Sincronizzazione Tra Processi: Ponte a Senso Unico Alternato Un ponte contiene una sola csia di traffico consentendo così l'accesso a macchine provenienti da una sola direzione per volta,

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue

Dettagli

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive Assembler di Spim Assembler di SPIM Il programma è organizzato in linee Ogni linea può contenere un commento che parte dal carattere # e si estende fino alla fine della linea Ogni linea che non sia bianca

Dettagli

APPENDICE. Procedure in SQL (1)

APPENDICE. Procedure in SQL (1) APPENDICE Procedure in SQL Transazioni in SQL Embedded SQL Remote Procedure Call Appendice 1 Procedure in SQL (1) Standard SQL2 permette di definire procedure, associate a singoli comandi SQL, memorizzate

Dettagli

Linguaggi dinamici. Giacomo Cabri giacomo.cabri@unimore.it Mauro Andreolini mauro.andreolini@unimore.it

Linguaggi dinamici. Giacomo Cabri giacomo.cabri@unimore.it Mauro Andreolini mauro.andreolini@unimore.it Giacomo Cabri giacomo.cabri@unimore.it Mauro Andreolini mauro.andreolini@unimore.it Home page del corso https://www.agentgroup.unimore.it/didattica/ld/ 1 LINGUAGGI DINAMICI PARTE 1 INTRODUZIONE 2 Parte

Dettagli

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni Capitolo 13 Gestione delle transazioni Transazioni L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché gli accessi al disco sono frequenti e relativamente

Dettagli

Parte 13. Documentazione. [Frida Kahlo Nucleus Of Creation, 1945] 13.1 - AA. 2012/13

Parte 13. Documentazione. [Frida Kahlo Nucleus Of Creation, 1945] 13.1 - AA. 2012/13 Parte 13 Documentazione - AA. 2012/13 [Frida Kahlo Nucleus Of Creation, 1945] 13.1 13.2 Documentazione La documentazione in campo informatico, comprende il materiale utile alla comprensione delle caratteristiche

Dettagli