Integrazione di un linguaggio accademico in un ambiente CAD industriale Laureando: Giorgio Scorzelli Relatore: Prof. Paoluzzi.

Slides:



Advertisements
Presentazioni simili
© 2010 Colt Telecom Group Limited. All rights reserved. Cloud Computing Lapproccio Colt Dionigi Faccedna.
Advertisements

Teoria e Tecniche del Riconoscimento
Midrange Modernization Conference 1 Scenari evolutivi per le soluzioni basate su AS/400 Walter Poloni Direttore Developer & Platform Evangelism Microsoft.
1 Teaching Cloud Computing and Windows Azure in Academia Domenico Talia UNIVERSITA DELLA CALABRIA & ICAR-CNR Italy Faculty Days 2010.
Vincenzo Campanale PM Security & Management System Center, DSI e la Roadmap.
Modalità di ricerca semantica nelle Biblioteche digitali Maria Teresa Biagetti DIPARTIMENTO DI SCIENZE DOCUMENTARIE LINGUISTICO-FILOLOGICHE E GEOGRAFICHE.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
E.Mumolo, DEEI Player Stage E.Mumolo, DEEI
Copyright Consorzio Co.Impresa - Co.Impresa Internet Wireless - All right reserved La tecnologia internet broadband Il supporto e le competenze.
Seam.
Web 2.0 and Libraries mj crowley 6/3/09 Un modello di auto-apprendimento collaborativo, ma anche divertente e gratificante !
Microsoft Robotics Studio Marco Petrucco Microsoft Student Partner - Udine.
Valutazione del Globus Toolkit Massimo Sgaravatto INFN Padova.
Distributed Object Computing
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Pierluigi Plebani - Politecnico di Milano MAIS Registry URBE (Uddi Registry By Example) WP2 Roma - 25 Novembre 2005.
Model – View - Controller
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
prompt> java SumAverage
Chiara Carlucci - Isfol 15 giugno 2007 CDS Isfols specialised documentation centre.
Directory services Directory offline –Elenchi telefonici –Guide TV –Cataloghi acquisti Directory online –Application specific (lotus notes, MS Exchange.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
INFORMATICA GRAFICA – SSD ING-INF/05 Sistemi di elaborazione delle informazioni a.a. 2007/2008 LEZIONE DI TEORIA Introduzione al PLaSM.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions.
Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 2: Microsoft.NET.
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
ATE / 31 Lezione 3 i sistemi automatici di misurazione - gli ATE.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Componenti dell’architettura Oracle
1 Attivita di ricerca Carlo Batini. 2 Aree Come costruire ed esprimere il contenuto informativo integrato di sistemi informativi complessi basati.
realizzazione app per Google Android OS
UNIVERSITA DEGLI STUDI DI ROMA La Sapienza F ACOLTÀ DI S CIENZE M ATEMATICHE, F ISICHE E N ATURALI C ORSO DI L AUREA S PECIALISTICA IN I NFORMATICA F ORMAL.
MIC 2008, Roma Antonio Pistoia Università Politecnica delle Marche MOODLELab Uno strumento per MOODLE per la gestione dei telelaboratori durante i corsi.
Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Analisi e valutazione.
Presentazione Finale Team 2 1. Decomposizione in sottosistemi 2.
Antonio Torraca
Introduzione alla Radioastronomia Parte I Nichi DAmico Dipartimento di Fisica, Universita degli Studi di Cagliari INAF – Osservatorio Astronomico di Cagliari.
Sito IntergruppoParma.it Nuovo Intergruppo Parma.
Struttura Aziendale Arianna Montervino 4° A T.G.A A.S 2009/2010 Stage.
Il software al servizio dei centri sportivi e polifunzionali.
Architettura delle GPU e
Il controllo della tecnologia come strumento abilitante per i servizi innovativi.
Innovazioni versione 4 Bari, 17 ottobre Innovazioni versione 4 Il menù dinamico secondo logica operativa Il ruolo dei Ruoli Facilitare la scelta.
OR4 (MODELLI) NOV- FEB.
Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web: modelli per la qualità dei siti (Ingegneria del Web)
Andrea Petricca Problematiche di rete nella sperimentazione di file-system distribuiti su WAN per applicazioni di GRID-Computing Rapporto trimestrale attività
Maria Milano Medico di Medicina Generale Pianezza (TO) CSeRMEG
PROGETTO DI STRUMENTI PER LA CONFIGURAZIONE DI APPLICAZIONI JAVA ENTERPRISE Anno Accademico 2006 / 2007 Sessione III FACOLTÀ DI INGEGNERIA CORSO DI LAUREA.
Attività Formativa Sviluppo di un WORKFLOW ENGINE di Dott. Riccardo Gasperoni Alessandro Caricato Gabriele Trabucco in collaborazione con Progesi S.p.A.
Dependability and security modeling for CIP CISSilvia BonomiAntonella Del Pozzo CNRFelicita Di Giandomenico POLIMI POLITO UNIFILeonardo MontecchiPaolo.
Programma Cloud Partner Cloud Essentials Pack: Attivazione passo per passo Cloud Accelerate: Attivazione passo per passo Cloud Partner: Modello di Business.
Robotica e Futuro Competenze per la Vita Personale, Professionale e Imprenditoriale Alfonso Molina Professor of Technology Strategy, University of Edinburgh.
Scoprirete che su Office non si può solo contare ma anche sviluppare.
Micro-Robot di dispensazione a 3 assi EzROBO 3
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
/ Elementi di C++ Introduzione a ROOT , Laboratorio Informatico ROOT warm up , Laboratorio Informatico Introduzione a.
VB.NET Sviluppo Applicazioni Desktop
Corso di Web Services A A Domenico Rosaci Patterns di E-Business D. RosaciPatterns per l'e-Business.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
Analysis and Development of Functions in REST Logic: Application to the «DataView» Web App UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA DIPARTIMENTO.
© 2013 KNC All right reserved Kangaroo Net Company Group 1.
Competitività 2.0 – La leva della «Modellazione e Prototipazione Virtuale dei Prodotti e Processi» 1 Modellazione e Prototipazione Virtuale dei Prodotti.
Collection & Generics in Java
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
WPC034 - Visual Studio Code: sviluppare su Linux, Mac OS e Windows
Transcript della presentazione:

Integrazione di un linguaggio accademico in un ambiente CAD industriale Laureando: Giorgio Scorzelli Relatore: Prof. Paoluzzi

Indice Scheme e Open Cascade. Soluzioni per lintegrazione dei linguaggi. La Foreign Function Interface come soluzione per lintegrazione. Il linguaggio C++. Logica statica e logica dinamica di invocazione. Generazione di alcuni modelli geometrici. Conclusioni.

Un ambiente funzionale: Scheme Storia : 1975 Scheme come dialetto Lisp 1978 Revised Report on SCHEME. A Dialect of LISP (Guy Lewis Steele Jr. and Gerald Jay Sussman) 1982 Corsi universitari (MIT, Yale, Indiana University) 1998 The revised (5) report on the algorithmic language Scheme Semplicità Implementazione MzScheme (PLT, Rice University) Integrated Development Environment (IDE): DrScheme Multipiattaforma (wxWindows come libreria GUI)

Un ambiente di progettazione assistita: Open Cascade Storia 1980 Matra Datavision: Euclid 1990 Cas.CADE (CASE + CAD) dal progetto Eureka 1999 società servizi software: open source Servizi geometrici: Foundation Classes Modeling Data Modeling Algorithms Visualization Data Exchange Processor Servizi non geometrici Component Definition Language (CDL) Workshop Organization Kit (WOK)

Cooperazione tra linguaggi. Linguaggi imperativi e linguaggi funzionali. Piattaforme distribuite: CORBA e DCOM Integrazione locale: Foreign Function Interfaces Infrastruttura per la comunicazione. Oggetti software indipendenti: client e server. Interface Repository (IR) per laccesso ai servizi. Condivisione della memoria, stesso processo. Stesse strutture dati: problema della traduzione. Componente di interfaccia tra linguaggi.

Foreign Function Interface (FFI) Storia Prima apparizione in Lisp: funzioni C come call out functions o foreign functions Definizione: collaborazione tra codice che viene eseguito in uno spazio degli indirizzi condiviso. Problemi: Tecniche gestione memoria (reference counting, gc etc) Conversione tra inside ed outside types Fenomeno del Side effect Differenti Error Handler Funzioni come first class objects Le azioni di una FFI: 1.Library Loading. Accesso alle librerie secondo due approcci: statico e dinamico. 2.Address Binding. Recupero dellindirizzo della funzione (risoluzione dei cross references). 3.Input Parameters. Caricamento e conversione nello stack. Modalità di passaggio dei valori. 4.Output Parameters. Restituzione del valore di uscita packed per la shell.

Ciclo di produzione software C/C++. Logica statica. 1.Scrittura codice sorgente: header files e files dellimplementazione. Compiti del compilatore: Allocazione regioni di memoria Controllo correttezza argomenti. Risoluzione collisioni. 2.Generazione degli object files. 3.Link degli object files.

Funzioni C++ in ambiente interpretato. Logica dinamica. Compilatore dinamico: Conversioni implicite dinamiche Overloading solver dinamico Files di interfaccia come strumenti per la conoscenza: Header files C++ Sintassi semplificata: CORBA Interface Definition Language IDL Component Definition Language CDL di Open Cascade

Soluzioni per lintegrazione Sorgenti CDL Strutture dinamiche del package MS Sorgenti Cpp: file hxx e cxx CDL Front CPP Extractor CPP Extractor Sviluppo dell' implementazione CPP Extractor Scheme Extractor CPP Extractor Interprete Scheme Generatore del codice della FFI Modalità di invocazione delle funzioni C++

Meccanismi duso Prototipo CDL Create(dx,dy,dz:Real) returns MakeBox from BRepPrimApi Prototipo C++ generato dal programma Cpp Extractor BRepPrimAPI_MakeBox( const Standard_Real dx, const Standard_Real dy, const Standard_Real dz); Wrapper Scheme (define (make-box x y z) (make-object BRepPrimApi_MakeBox% x y z)) Uso interattivo della make-box (make-box 1 2 3)

Esempi: Modello toroidale Oggetti toroidali appoggiati su sfera. (define (radius z) (sqrt (- 1 (* z z)))) (define (torus-on-sphere the-list) (composite (map (lambda (z) (translate (torus (radius z) 0.05) z)) the-list))) (torus-on-sphere (list )

Esempi: animazione

Esempi: funzione sombrero Funzione da visualizzare: (define domain (mult (make-list ) (make-list ))) (define codomain (apply-f myfun domain)) (define spheres (make-list-of-sphere (length codomain))) (define spheres-in-space (map translate spheres codomain))

Esempi: generazione automatica di labirinti (define (maze-builder dim filename) (let* ((v (make-list 0 (- dim 1))) (array (make-multiply v v)) (maze (make-object SchemeTest_Maze% dim dim)) (make-iter-cell (lambda (coord) (let ((x (car coord)) (y (car (cdr coord)))) (move-cell (make-single-cell (send maze Left x y) (send maze Up x y) (send maze Right x y) (send maze Down x y)) x y)))) (lis (map make-iter-cell array)) (ret (composite lis))) (print-brep ret filename)))

Risultati e conclusioni Integrazione su base locale del linguaggio funzionale Scheme con il linguaggio imperativo C++ Automaticamente disponibili da Scheme circa classi di Open Cascade Possibilità di sviluppo interattivo di applicazioni CAD Sito Web

Ocas Core Team