Implementazione di algoritmi per l inferenza di tipi ricorsivi Implementation of algorithms for the inference of recursive types

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Implementazione di algoritmi per l inferenza di tipi ricorsivi Implementation of algorithms for the inference of recursive types"

Transcript

1 Implementazione di algoritmi per l inferenza di tipi ricorsivi Implementation of algorithms for the inference of recursive types Andrea Crotti Contents 1 Italiano Introduzione Inferenza dei tipi Inferenza di tipi ricorsivi Struttura degli algoritmi Appiattimento Equivalenza di tipi Haskell Classi Monadi English Introduction Type Inference Recursive type inference Algorithms structure Flattening Type equivalence Haskell Classes Monads Italiano 1.1 Introduzione In questo lavoro faremo alcune considerazione riguardo all inferenza di tipi ricorsivi per un generico linguaggio funzionale. Inoltre mostreremo l implementazione di un semplice algoritmo essenziale a questo scopo, scritto in haskell, e daremo una breve introduzione a questo linguaggio. 1.2 Inferenza dei tipi Ogni linguaggio di programmazione adotta una specifica strategia per la gestione dei tipi, ci sono numerose soluzioni possibili, ma possono essere divise in due grandi categorie: 1

2 Typing statico (come ad esempio haskell) In un sistema di typing statico il compilatore esamina il codice sorgente e assegna delle etichette a pezzi di codice, poi le utilizza per inferire qualcosa sul comportamento del programma. Typing dinamico (come ad esempio scheme o python) In un sistema di typing dinamico il compilatore genera codice per tenere traccia della categoria dei dati (che incidentalmente è sempre chiamato tipo) usati dal programma. La prima soluzione può sembrare più restrittiva ma con il typing polimorfico e l inferenza dei tipi può risultare molto vantaggiosa. Per i nostri esempi useremo haskell come meta linguaggio, ha un motore di inferenza di tipi basato sull algoritmo di Hindley-Milner e è il linguaggio utilizzato anche nel resto del lavoro. Ogni espressione in haskell deve avere un tipo, può essere esplicitamente scritto (cosa utile anche ai fini della documentazione) oppure può essere implicito. In quel caso il compilatore haskell cerca di inferire il tipo più generico possibile che sia al contempo compatibile con il contesto. Se non è in grado di trovare nessuno tipo compatibile ritornerà errore e il programma non sarà compilato. Ad esempio questo: id : : a > a è il tipo della funzione id (identità), prende qualcosa di tipo a and ritorna qualcosa (incidentalmente uguale) dello stesso tipo. Un esempio più interessante potrebbe essere il tipo della funzione f, definita come: f = \x > x 5 Qual è il tipo di f? f è una lambda astrazione, e prende come input una funzione che lavora su Ints e la applica al numero 5. Quindi il tipo di f è: f : : ( Integer > t ) > t Dove il tipo t potrebbe essere qualsiasi cosa, ma naturalmente lo stesso nelle sue due occorrenze. 1.3 Inferenza di tipi ricorsivi Un tipo è ricorsivo quando è definito in funzione di se stesso. Un esempio di tipi ricorsivo potrebbe essere il tipo della funzione f = λx x x Questo non può essere tipato con un algoritmo standard Hindley-Milner, il type checker di haskell ritorna infatti questo errore: Main> : t (\ x > x x ) <i n t e r a c t i v e > : 1 : 7 : Occurs check : cannot c o n s t r u c t the i n f i n i t e type : t = t > t1 Probable cause : x i s a p p l i e d to too many arguments In the e x p r e s s i o n : x x 2

3 L errore viene generato dal type checker, che non permette la costruzione di tipi ricorsivi. L algoritmo implementato in potrebbe essere parte di un estensione che permetta l inferenza dei tipi ricorsivi. 1.4 Struttura degli algoritmi I due algoritmi principali usati in questo lavoro sono l algoritmo di appiattimento e l algoritmo che verifica se due tipi ricorsivi (presentati da ricorsioni simultanee, cioè sistemi finiti di equazioni tra tipi) sono uguali in senso forte, cioè hanno lo stesso sviluppo infinito Appiattimento Definition (Sistema piatto) Un sistema S è piatto quando il lato destro di ogni equazione consiste di una costante oppure di un costruttore di tipi applicato a variabili. La funzione flatten prende come input un sistema S (in forma di sostituzione) e ritorna un sistema equivalente che è piatto, introducendo nuove variabili. La parte principale del processo di appiattimento è la funzione typeflat, che prende una espressione di tipo, rinomina tutte le variabili e poi costruisce un sistema equivalente e piatto. Prima analizza l intera struttura ricorsivamente dividendola in due parti, e poi le combina in una nuova espressione con questa linea di codice: newexpr = makesubst ( getexp t1 ass1 : > getexp t2 ass1 ) ( Tvar ( Id n1 ) ) Il caso base della ricorrenza è una variabile singola, la funzione non fa nulla se la variabile è già stata trovata, la aggiunge e incrementa il contatore altrimenti. Per esempio applicando la funzione typeflat al tipo: ( ( var0 > var1 ) > ( var2 > var3 ) ) Restituisce come output var4 = var3 var3 = var2 var1 = var1 var0 = var0 var2 = ( var0 > var1 ) var5 = ( var3 > var4 ) var6 = ( var2 > var5 ) Equivalenza di tipi Dato un sistema di equazioni vogliamo verificare se ci sono tipi ricorsivi fortemente equivalenti tra loro. L algoritmo implementato è preso da [1], e verifica se due tipi sono uguali cercando una bisimulazione tra di essi. Il sistema dato in input deve essere piatto, altrimenti l algoritmo non è in grado di funzionare. Per esempio se abbiamo un sistema di questo tipo: 3

4 var0 = var0 var2 var1 = var1 var3 var2 = Char var3 = Char Vediamo che var0 e var1 sono uguali, ma sono entrambi tipi ricorsivi. Quindi valutiamo la funzione che verifica l equivalenza fra tipi su tutto il sistema, e otteniamo il sistema stesso con aggiunti (in coda) tutte le possibili equivalenze tra tipi ricorsivi. L output della funzione è: var1 = ( var3 > var1 ) var0 = ( var3 > var0 ) var3 = Char var0 = var1 L algoritmo tiene traccia delle variabili analizzate utilizzando due contenitori, O e C. Ad ogni passo aggiorna O e C fino a che O non diventa, oppure fino a che non troviamo due variabili che siano evidentemente differenti. 1.5 Haskell Il linguaggio scelto per questo stage è haskell 1, un linguaggio di programmazione funzionale puro e lazy. Puro: viene definito puro perché non ci sono effetti collaterali. Le computazioni che hanno bisogno di effetti collaterali sono incapsulate in strutture speciali chiamate Monadi. Lazy: è pure perché haskell calcola solamente il minimo necessario per ottenere un valore. Questa semplice istruzione: Prelude> take 10 [ 1.. ] [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 1 0 ] prende il primi 10 elementi dalla lista infinita [1..] terminando normalmente. In un linguaggio strict questo non può essere fatto altrettanto agevolemente Classi Un altro importante concetto di haskell è il concetto di classe. Una classe in haskell è una collezione di tipi che supporta certe operazioni chiamate metodi. Qualsiasi tipi t instanza della classe C deve implementare questi metodi, rispettando le stesse signature dei tipi. Per esempio potremo creare un nuovo tipo MyType con tre costruttori unari: data MyType = One Two Three instance Show MyType where show One = uno show Two = due show Three = t r e 1 4

5 E istanziare la classe Show, che permette di dare la rappresentazione di MyType come stringa Monadi Le monadi sono il sistema utilizzato da haskell per gestire gli effetti collaterali (per esempio operazioni di IO). La classe Monad è definita nel prelude di haskell ( 2 ) come: class Monad m where (>>=) : : m a > ( a > m b ) > m b return : : a > m a Per fare in modo che il nostro tipo di dati diventi una monade dobbiamo istanziare la classe Monad e implementare i due operatori >>= e return. Dato che il concetto di monade viene da una branca della teoria delle categorie, per creare una monade non è sufficiente semplicemente dichiararla come istanza della classe monade. Per essere corretta, le funzioni return e >>= devono obbedire alle tre leggi delle monadi: 1. Identità sinistra del return rispetto a >>=: ( return x ) >>= f == f x 2. Identità destra di return rispetto a >>=: m >>= return == m 3. Associatività di >>=: (m >>= f ) >>= g == m >>= (\ x > f x >>= g ) 2 English 2.1 Introduction In this work we make some considerations about type inference with recursive types for a functional programming language. Then we show the implementation of a small algorithm, essential for this purpose, written in haskell and we give a brief introduction to this language. 2.2 Type Inference Every programming language has to choose a strategy for typing, there are several different solutions adopted, but they can be divided in two main families: static typing (for example haskell) A static type system is a mechanism by which a compiler examines source code and assigns labels to pieces of the syntax, and then uses them to infer something about the program s behavior. 2 modulo che viene automaticamente caricato 5

6 dynamic typing (for example scheme or python) A dynamic type system is a mechanism by which a compiler generates code to keep track of the sort of data (incidentally still called type ) used by the program. The first solution may look excessively constrained but with polymorphic typing and type inference can be very advantageous. For our example we will use haskell as a meta language, it has a Hindley-Milner type inference engine and it s the language used for this work. Every expression in haskell must have a type, it can be explicitly written (also useful for documentation) or implicit. In that case the haskell compiler tries to infer the most possible general type which is compatible with the context. If it s unable to find any compatible type then it will return error and the program won t compile at all. For example this: id : : a > a is the type of the function id (identity), takes something of type a and returns something else (incidentally the same thing) of type a. A more interesting type could be the type of the function f, where f is: f = \x > x 5 What s the type of f? f is bound to a lambda abstraction, and takes as input a function that works on Ints and applies it to the number 5. Then the type of f is: f : : ( Integer > t ) > t where the type t could be anything, but of course has to be the same in both occurrences. 2.3 Recursive type inference A type is recursive whenever is defined in term of itself. An example of recursive type could be the type of the function f = λx x x This can t be typed with a standard Hindley-Milner algorithm, the haskell type checker returns this error: Main> : t (\ x > x x ) <i n t e r a c t i v e > : 1 : 7 : Occurs check : cannot c o n s t r u c t the i n f i n i t e type : t = t > t1 Probable cause : x i s a p p l i e d to too many arguments In the e x p r e s s i o n : x x The error is raised from the type checker, that doesn t allow construction of recursive types. The algorithm implemented in could be a part of an extension that allows type inference for recursive types. 6

7 2.4 Algorithms structure The two main algorithms used in this work are the flattening algorithm and the algorithm that checks if two recursive types (presented by simultaneous recursions, i.e. finite systems of type equations) are equal Flattening Definition (Flat system) A system S is flat when the right hand side of each equation consists either of a constant or of a type constructor applied to type variables. The function flatten takes as input a system S (in form of substitution) and returns an equivalent system which is also flat, introducing new variables. The core of the flattening process is the function typeflat, which takes a type expression, relabels every variable and then builds an equivalent equation system. We first analyze the whole structure recursively dividing it in two parts, then merge them together in a composed expression with this line. newexpr = makesubst ( getexp t1 ass1 : > getexp t2 ass1 ) ( Tvar ( Id n1 ) ) The base case of the recurrence is a singleton variable, I do nothing if the variable has been found, otherwise I add to the binding and increment the counter. For example applying the function typeflat on the type: ( ( var0 > var1 ) > ( var2 > var3 ) ) Gives as output: var4 = var3 var3 = var2 var1 = var1 var0 = var0 var2 = ( var0 > var1 ) var5 = ( var3 > var4 ) var6 = ( var2 > var5 ) Type equivalence Given a system of equations we want to check if there are recursive types which are strongly equivalent modulo this system. The implemented algorithm is taken from [1], and checks if two types are equal looking for a bisimulation between them. The system given in input must be already flat, otherwise this algorithm won t work. For example we have a system like this: var0 = var0 var2 var1 = var1 var3 var2 = Char 7

8 var3 = Char We see that var0 and var1 are equal, but they are both recursive types. Then we evaluate the function that checks the equivalence of variables on the whole system, and get the same system plus (at the end) bindings between recursive types. The output of the function is: var1 = ( var3 > var1 ) var0 = ( var3 > var0 ) var3 = Char var0 = var1 The algorithm keeps track of analyzed variables using two containers O and C. It updates them every step until O becomes or we find two variables that can be easily checked for equality. If O becomes then we will have in C(n) the bisimulations between strongly equal variables. 2.5 Haskell The language chosen for this stage is haskell 3, a pure and lazy functional programming language. Pure: it s pure because it doesn t have side effects. Computations that do need side effects are encapsulated in special structures called Monads. Lazy: it s lazy because Haskell only computes what it needs to compute in order to get a value. This very simple computation: Prelude> take 10 [ 1.. ] [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 1 0 ] takes the first 10 elements from the infinite list [1..] without any problem. In strict languages this can t be done so simply Classes Another important concept in haskell is the concept of class. A class in haskell is a collection of types that supports certain overloaded operations called methods. Any type t instance of the class C must implement those methods, respecting their type signatures. For example we could create a new data type MyType with three unary constructors: data MyType = One Two Three instance Show MyType where show One = uno show Two = due show Three = t r e And instantiate the class Show, which gives the representation of MyType as a string

9 2.5.2 Monads Monads are the way that haskell uses to handle with side effects (needed for example for IO computations). The monad class is defined in the haskell prelude ( 4 ) as: class Monad m where (>>=) : : m a > ( a > m b ) > m b return : : a > m a To make our data type a Monad we need to make it instance of the Monad class, and implement the two operators >>= and return. As long as the concept of monad comes from a branch of category theory, to create a monad is not just enough to declare a monad instance with the correct type signatures. To be a proper monad, the return and >>= functions must obey to the three laws of monads: 1. Left identity of return with respect to >>=: ( return x ) >>= f == f x 2. Right identity of return with respect to >>=: m >>= return == m 3. Associativity of >>=: (m >>= f ) >>= g == m >>= (\ x > f x >>= g ) References [1] F. Cardone and M. Coppo. Decidability properties of recursive types. In C. Blundo and C. Laneve, editors, Theoretical Computer Science, Proceedings of the 8th Italian Conference, volume 2841 of Lecture Notes in Computer Science, pages Springer-Verlag, the module automatically loaded 9

Finite Model Theory / Descriptive Complexity: bin

Finite Model Theory / Descriptive Complexity: bin , CMPSCI 601: Recall From Last Time Lecture 19 Finite Model Theory / Descriptive Compleity: Th: FO L DSPACE Fagin s Th: NP SO. bin is quantifier-free.!#"$&% ('*), 1 Space 0 1 ) % Time $ "$ $ $ "$ $.....

Dettagli

U Corso di italiano, Lezione Quindici

U Corso di italiano, Lezione Quindici 1 U Corso di italiano, Lezione Quindici U Buongiorno, anche in questa lezione iniziamo con qualche dialogo formale M Good morning, in this lesson as well, let s start with some formal dialogues U Buongiorno,

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

Question 1: introduction to computer programming

Question 1: introduction to computer programming Question 1: introduction to computer programming Question 1: introduction to computer programming What is a compiler? (4 points). Cos è un compilatore? (4 punti). c 2006 Marco Bernardo 1/14 Question 1:

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Constant Propagation. A More Complex Semilattice A Nondistributive Framework

Constant Propagation. A More Complex Semilattice A Nondistributive Framework Constant Propagation A More Complex Semilattice A Nondistributive Framework 1 The Point Instead of doing constant folding by RD s, we can maintain information about what constant, if any, a variable has

Dettagli

Compatibilità del Portale Piaggio con Internet Explorer 10 e 11. Internet Explorer 10

Compatibilità del Portale Piaggio con Internet Explorer 10 e 11. Internet Explorer 10 Italiano: Explorer 10 pagina 1, Explorer 11 pagina 2 English: Explorer 10 page 3 and 4, Explorer 11 page 5. Compatibilità del Portale Piaggio con Internet Explorer 10 e 11 Internet Explorer 10 Con l introduzione

Dettagli

ECOLE POLYTECHNIQlE FEDERALE DE LAUSANNE

ECOLE POLYTECHNIQlE FEDERALE DE LAUSANNE ).> ECOLE POLYTECHNIQlE.>.> FEDERALE DE LAUSANNE case class : Int : Int : Boolean : String : String : Boolean : Boolean val = case class : Int : Boolean : Boolean : Boolean : Int val = val = val = =>

Dettagli

API e socket per lo sviluppo di applicazioni Web Based

API e socket per lo sviluppo di applicazioni Web Based API e socket per lo sviluppo di applicazioni Web Based Cosa sono le API? Consideriamo il problema di un programmatore che voglia sviluppare un applicativo che faccia uso dei servizi messi a disposizione

Dettagli

Algoritmi e strutture di dati 2

Algoritmi e strutture di dati 2 Algoritmi e strutture di dati 2 Paola Vocca Lezione 2: Tecniche golose (greedy) Lezione1- Divide et impera 1 Progettazione di algoritmi greedy Tecniche di dimostrazione (progettazione) o Greedy algorithms

Dettagli

Portale Materiali Grafiche Tamburini. Grafiche Tamburini Materials Portal

Portale Materiali Grafiche Tamburini. Grafiche Tamburini Materials Portal Portale Materiali Grafiche Tamburini Documentazione utente italiano pag. 2 Grafiche Tamburini Materials Portal English user guide page 6 pag. 1 Introduzione Il Portale Materiali è il Sistema Web di Grafiche

Dettagli

MATLAB:Condizionamento Sistemi Lineari.

MATLAB:Condizionamento Sistemi Lineari. 1 Francesca Mazzia Dipartimento Interuniversitario di Matematica Università di Bari MATLAB:Condizionamento Sistemi Lineari. Innanzitutto vediamo qual è la funzione Matlab che ci permette di calcolare il

Dettagli

Copyright 2012 Binary System srl 29122 Piacenza ITALIA Via Coppalati, 6 P.IVA 01614510335 - info@binarysystem.eu http://www.binarysystem.

Copyright 2012 Binary System srl 29122 Piacenza ITALIA Via Coppalati, 6 P.IVA 01614510335 - info@binarysystem.eu http://www.binarysystem. CRWM CRWM (Web Content Relationship Management) has the main features for managing customer relationships from the first contact to after sales. The main functions of the application include: managing

Dettagli

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione

Dettagli

College Algebra. Logarithms: Denitions and Domains. Dr. Nguyen November 9, Department of Mathematics UK

College Algebra. Logarithms: Denitions and Domains. Dr. Nguyen November 9, Department of Mathematics UK College Algebra Logarithms: Denitions and Domains Dr. Nguyen nicholas.nguyen@uky.edu Department of Mathematics UK November 9, 2018 Agenda Logarithms and exponents Domains of logarithm functions Operations

Dettagli

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio A.A. 2006/2007 Laurea di Ingegneria Informatica Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio Obbiettivi Acquisire familiarità con la nozione di oggetto Apprendere le proprietà

Dettagli

dall argomento argomento della malloc()

dall argomento argomento della malloc() Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Capitolo 2 Variabili, Espressioni e Comandi Prof. Mauro Gaspari: gaspari@cs.unibo.it Valori e Tipi Un valore (= value) è una delle entità fondamentali che i programmi sono

Dettagli

Graphs: Cycles. Tecniche di Programmazione A.A. 2012/2013

Graphs: Cycles. Tecniche di Programmazione A.A. 2012/2013 Graphs: Cycles Tecniche di Programmazione Summary Definitions Algorithms 2 Definitions Graphs: Cycles Cycle A cycle of a graph, sometimes also called a circuit, is a subset of the edge set of that forms

Dettagli

REGISTRATION GUIDE TO RESHELL SOFTWARE

REGISTRATION GUIDE TO RESHELL SOFTWARE REGISTRATION GUIDE TO RESHELL SOFTWARE INDEX: 1. GENERAL INFORMATION 2. REGISTRATION GUIDE 1. GENERAL INFORMATION This guide contains the correct procedure for entering the software page http://software.roenest.com/

Dettagli

Le cellule staminali dell embrione: cosa possono fare Embryonic stem cells are exciting because they can make all the different types of cell in the

Le cellule staminali dell embrione: cosa possono fare Embryonic stem cells are exciting because they can make all the different types of cell in the 1 2 3 Le cellule staminali dell embrione: cosa possono fare Embryonic stem cells are exciting because they can make all the different types of cell in the body scientists say these cells are pluripotent.

Dettagli

Functional programming in F#: Data Structures

Functional programming in F#: Data Structures Programmazione Avanzata Corso di Laurea in Informatica (L31) Scuola di Scienze e Tecnologie 31 / 51 Summary of previous lectures In the previous lecture we have... : introduced basic principles of programming

Dettagli

Solutions in motion.

Solutions in motion. Solutions in motion. Solutions in motion. SIPRO SIPRO presente sul mercato da quasi trent anni si colloca quale leader italiano nella progettazione e produzione di soluzioni per il motion control. Porsi

Dettagli

Prova finale di Ingegneria del software

Prova finale di Ingegneria del software Prova finale di Ingegneria del software Scaglione: Prof. San Pietro Andrea Romanoni: Francesco Visin: andrea.romanoni@polimi.it francesco.visin@polimi.it Italiano 2 Scaglioni di voto Scaglioni di voto

Dettagli

Estendere Lean e Operational Excellence a tutta la Supply Chain

Estendere Lean e Operational Excellence a tutta la Supply Chain Estendere Lean e Operational Excellence a tutta la Supply Chain Prof. Alberto Portioli Staudacher www.lean-excellence.it Dipartimento Ing. Gestionale Politecnico di Milano alberto.portioli@polimi.it Lean

Dettagli

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO READ ONLINE AND DOWNLOAD EBOOK : I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO

Dettagli

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a) ESERCIZIO1 PREMESSA Per risolvere problemi spesso esistono delle regole che, dai dati del problema, permettono di calcolare o dedurre la soluzione. Questa situazione si può descrivere col termine regola(,

Dettagli

WEB OF SCIENCE. COVERAGE: multidisciplinary TIME RANGE: DOCUMENT TYPES: articles, proceedings papers, books

WEB OF SCIENCE. COVERAGE: multidisciplinary TIME RANGE: DOCUMENT TYPES: articles, proceedings papers, books WEB OF SCIENCE COVERAGE: multidisciplinary TIME RANGE: 1985- DOCUMENT TYPES: articles, proceedings papers, books WEB OF SCIENCE: SEARCH you can add one or more search field you can limit results to a specific

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E08 Soluzione Esercizi F. Gasparetti, C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Soluzione Esercizi

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

U Corso di italiano, Lezione Dodici

U Corso di italiano, Lezione Dodici 1 U Corso di italiano, Lezione Dodici U Al telefono M On the phone U Al telefono D Pronto, Hotel Roma, buongiorno. F Hello, Hotel Roma, Good morning D Pronto, Hotel Roma, buongiorno. U Pronto, buongiorno,

Dettagli

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Object Oriented Programming: Inheritance

Object Oriented Programming: Inheritance Object Oriented Programming: Inheritance Shahram Rahatlou University of Rome La Sapienza Corso di Programmazione++ http://www.roma1.infn.it/cms/rahatlou/programmazione++/ Roma, 11 June 2007 Today s Lecture

Dettagli

CONFIGURATION MANUAL

CONFIGURATION MANUAL RELAY PROTOCOL CONFIGURATION TYPE CONFIGURATION MANUAL Copyright 2010 Data 18.06.2013 Rev. 1 Pag. 1 of 15 1. ENG General connection information for the IEC 61850 board 3 2. ENG Steps to retrieve and connect

Dettagli

TNCguide OEM Informativa sull introduzione di documentazione aggiuntiva nella TNCguide

TNCguide OEM Informativa sull introduzione di documentazione aggiuntiva nella TNCguide Newsletter Application 4/2007 OEM Informativa sull introduzione di documentazione aggiuntiva nella APPLICABILITÀ: CONTROLLO NUMERICO itnc 530 DA VERSIONE SOFTWARE 340 49x-03 REQUISITI HARDWARE: MC 420

Dettagli

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2.

ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. Sono date le seguenti regole: regola(1,[p,q],a) regola(2,[b,x,a],w) regola(3,[h],c) regola(4,[a,n,q],v)

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema

Dettagli

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

Dettagli

Quadrature. Emma Perracchione. Corso di Calcolo Numerico per Ingegneria Meccanica - Matr. PARI (Univ. PD)

Quadrature. Emma Perracchione. Corso di Calcolo Numerico per Ingegneria Meccanica - Matr. PARI (Univ. PD) Emma Perracchione Corso di Calcolo Numerico per Ingegneria Meccanica - Matr. PARI (Univ. PD) Gli esercizi sono presi dal libro: S. De Marchi, D. Poggiali, Exercices of numerical calculus with solutions

Dettagli

Permutazione degli elementi di una lista

Permutazione degli elementi di una lista Permutazione degli elementi di una lista Luca Padovani padovani@sti.uniurb.it Sommario Prendiamo spunto da un esercizio non banale per fare alcune riflessioni su un approccio strutturato alla risoluzione

Dettagli

Esercizi Programming Contest

Esercizi Programming Contest Esercizi Programming Contest Alberto Montresor 22 maggio 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

JavaScript. crash course. by Stefano Burigat

JavaScript. crash course. by Stefano Burigat JavaScript crash course by Stefano Burigat Introduzione ECMAScript (no DOM e BOM, no ) Sintassi simile a Java Variabili definite tramite var, loosely typed, operatore comma (,) per separare definizioni

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico

Dettagli

Pezzi da ritagliare, modellare e incollare nell ordine numerico indicato.

Pezzi da ritagliare, modellare e incollare nell ordine numerico indicato. La nuova Treddì Paper è un prodotto assolutamente innovativo rispetto ai classici Kit per il découpage 3D. Mentre i classici prodotti in commercio sono realizzati in cartoncino, la Treddì è in carta di

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Prof. Aniello Murano Implementazioni di Liste Doppiamente Puntate e Circolari Corso di Laurea Codice insegnamento Email docente Anno accademico Informatica 13917

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Aggiornamento dispositivo di firma digitale

Aggiornamento dispositivo di firma digitale Aggiornamento dispositivo di firma digitale Updating digital signature device Questo documento ha il compito di descrivere, passo per passo, il processo di aggiornamento manuale del dispositivo di firma

Dettagli

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Corsi di Laurea Magistrale/ Master Degree Programs

Corsi di Laurea Magistrale/ Master Degree Programs Corsi di Laurea Magistrale/ Master Degree Programs Studenti iscritti al I anno (immatricolati nell a.a. 2014-2015 / Students enrolled A. Y. 2014-2015) Piano di studi 17-27 Novembre 2014 (tramite web self-service)

Dettagli

Scritto da DEApress Lunedì 14 Aprile 2014 12:03 - Ultimo aggiornamento Martedì 26 Maggio 2015 09:34

Scritto da DEApress Lunedì 14 Aprile 2014 12:03 - Ultimo aggiornamento Martedì 26 Maggio 2015 09:34 This week I have been walking round San Marco and surrounding areas to find things that catch my eye to take pictures of. These pictures were of various things but majority included people. The reason

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Introduction. The Structure of a Compiler

Introduction. The Structure of a Compiler Introduction The Structure of a Compiler ISBN 978-88-386-6573-8 Text Books Maurizio Gabbrielli e Simone Martini sono professori ordinari di Informatica presso l'alma Mater Studiorum - Università di Bologna.

Dettagli

Cos è un Calcolatore?

Cos è un Calcolatore? Cos è un Calcolatore? Definizione A computer is a machine that manipulates data according to a (well-ordered) collection of instructions. 24/105 Riassumendo... Un problema è una qualsiasi situazione per

Dettagli

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch drag & drop visual programming appinventor realizzazione app per Google Android OS appinventor è un applicazione drag & drop visual programming Contrariamente ai linguaggi tradizionali (text-based programming

Dettagli

Definizione di nuovi tipi

Definizione di nuovi tipi Definizione di nuovi tipi Un tipo è un insieme di valori. Per definire un nuovo tipo occorre specificare: 1 un nome per il tipo 2 come costruire i valori del tipo, cioè quali sono i costruttori del tipo.

Dettagli

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Dettagli

Il concetto di varietà e la nascita della teoria degli insiemi RIEMANN ( )

Il concetto di varietà e la nascita della teoria degli insiemi RIEMANN ( ) Il concetto di varietà e la nascita della teoria degli insiemi RIEMANN (1826-66) Funzioni multivalori http://science.larouchepac.com/riemann/page/22 CONCETTI: intensione ed estensione Natural science is

Dettagli

CS 11 Ocaml track: lecture 5. Today: functors

CS 11 Ocaml track: lecture 5. Today: functors CS 11 Ocaml track: lecture 5 Today: functors The idea of functors (1) Often have a situation like this: You want a module type It should be parameterized around some other type or types But not every type

Dettagli

User Guide Guglielmo SmartClient

User Guide Guglielmo SmartClient User Guide Guglielmo SmartClient User Guide - Guglielmo SmartClient Version: 1.0 Guglielmo All rights reserved. All trademarks and logos referenced herein belong to their respective companies. -2- 1. Introduction

Dettagli

Accesso Mul*plo - modelli

Accesso Mul*plo - modelli Accesso Mul*plo - modelli Conceptual Model of Mul/ple Access A B C D Station A Station B Station C Station D Master Channel The Master does not know if and how many packets are present in each queue (i.e.,

Dettagli

Guida all installazione del prodotto 4600 in configurazione plip

Guida all installazione del prodotto 4600 in configurazione plip Guida all installazione del prodotto 4600 in configurazione plip Premessa Questo prodotto è stato pensato e progettato, per poter essere installato, sia sulle vetture provviste di piattaforma CAN che su

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com WWW.TINYLOC.COM CUSTOMER SERVICE T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com GPS/ RADIOTRACKING DOG COLLAR MANUALE DI ISTRUZIONI ACCENSIONE / SPEGNERE DEL TAG HOUND Finder GPS Il TAG HOUND

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 2 - Funzioni Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2.

Dettagli

Ricorsione. Rosario Culmone. - p. 1/13

Ricorsione. Rosario Culmone. - p. 1/13 Ricorsione Rosario Culmone - p. 1/13 Induzione e Ricorsione Spesso utilizzeremo le definizioni induttive. Sono forme di definizione compatte che descrivono un numero infinito di elementi. I contesti di

Dettagli

Testi del Syllabus. Docente CAGNONI STEFANO Matricola: Insegnamento: LABORATORIO DI PROGRAMMAZIONE. Anno regolamento: 2013 CFU:

Testi del Syllabus. Docente CAGNONI STEFANO Matricola: Insegnamento: LABORATORIO DI PROGRAMMAZIONE. Anno regolamento: 2013 CFU: Testi del Syllabus Docente CAGNONI STEFANO Matricola: 005079 Anno offerta: 2013/2014 Insegnamento: 13917 - LABORATORIO DI PROGRAMMAZIONE Corso di studio: 3007 - INGEGNERIA CIVILE E AMBIENTALE Anno regolamento:

Dettagli

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

Dettagli

Guida ai Promessi Sposi - Riassunto e analisi dei personaggi: Analisi e interpretazione del romanzo di A. Manzoni (Italian Edition)

Guida ai Promessi Sposi - Riassunto e analisi dei personaggi: Analisi e interpretazione del romanzo di A. Manzoni (Italian Edition) Guida ai Promessi Sposi - Riassunto e analisi dei personaggi: Analisi e interpretazione del romanzo di A. Manzoni (Italian Edition) Studia Rapido Click here if your download doesn"t start automatically

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Interpretazione astratta

Interpretazione astratta Interpretazione astratta By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents Interpretazione astratta... 2 Idea generale... 2 Esempio di semantica... 2 Semantica concreta... 2 Semantica

Dettagli

We take care of your buildings

We take care of your buildings We take care of your buildings Che cos è il Building Management Il Building Management è una disciplina di derivazione anglosassone, che individua un edificio come un entità che necessita di un insieme

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.

Dettagli

U Corso di italiano, Lezione Ventinove

U Corso di italiano, Lezione Ventinove 1 U Corso di italiano, Lezione Ventinove U Oggi, facciamo un altro esercizio M Today we do another exercise U Oggi, facciamo un altro esercizio D Noi diciamo una frase in inglese e tu cerca di pensare

Dettagli

Keep calm, observe and assess

Keep calm, observe and assess Keep calm, observe and assess Using the video sitcoms in Just Right to assess competences Data: 2 febbraio, 2017 Relatore: Roy Bennett 1 Just Right! & competences 2 Support Pearson Academy 3 SESSION AIMS

Dettagli

Introduzione a Matlab

Introduzione a Matlab Introduzione a Matlab Ruggero Donida Labati Dipartimento di Tecnologie dell Informazione via Bramante 65, 26013 Crema (CR), Italy ruggero.donida@unimi.it Perché? MATLAB is a high-level technical computing

Dettagli

Plate Locator Riconoscimento Automatico di Targhe

Plate Locator Riconoscimento Automatico di Targhe Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa

Dettagli

Tecniche di Simulazione: Introduzione. N. Del Buono:

Tecniche di Simulazione: Introduzione. N. Del Buono: Tecniche di Simulazione: Introduzione N. Del Buono: 2 Che cosa è la simulazione La SIMULAZIONE dovrebbe essere considerata una forma di COGNIZIONE (COGNIZIONE qualunque azione o processo per acquisire

Dettagli

CONCETTO DI ANNIDAMENTO

CONCETTO DI ANNIDAMENTO LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di

Dettagli

Clicca sulle immagini di preview qui sotto per aprire e visualizzare alcuni esempi di presentazioni dinamiche create con Focusky:

Clicca sulle immagini di preview qui sotto per aprire e visualizzare alcuni esempi di presentazioni dinamiche create con Focusky: Focusky Focusky è l innovativo e professionale software progettato per creare resentazioni interattive ad alto impatto visivo e ricco di effetti speciali (zoom, transizioni, flash, ecc..). A differenza

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

Self-Calibration Hands-on CASA introduction

Self-Calibration Hands-on CASA introduction Self-Calibration Hands-on CASA introduction Adam North American ALMA Science Center Atacama Large Millimeter/submillimeter Array Expanded Very Large Array Robert C. Byrd Green Bank Telescope Very Long

Dettagli

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Dettagli

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Dettagli

Examples of chemical equivalence

Examples of chemical equivalence hemical equivalence Two spins are chemically equivalent if: There is a symmetry operation that exchange their positions, or There is a dynamic process between two or more energetically equivalent conformations

Dettagli

Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2.

Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. Scuola Sec. SECONDO Grado Gara 2 IND - 15/16 ESERCIZIO 1 Si faccia riferimento all Allegato A - OPS 2016, problema ricorrente REGOLE E DEDUZIONI, pagina 2. Sono date le seguenti regole: regola(1,[a],b)

Dettagli

Esercizi della lezione 5 di Java

Esercizi della lezione 5 di Java Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore

Dettagli