Seminari

The skeleton of Modern C++

by Nicola Gigante (Università di Udine), Matteo Cicuttin (École des Ponts ParisTech)

Friday, July 7, 2017 from to (Europe/Rome)
at Sala Asinelli
Description
Il C++ è uno dei linguaggi più usati da ormai quasi 30 anni. Spesso erroneamente considerato come "C con le classi", è in realtà un linguaggio multiparadigma che fornisce un enorme controllo sulle performance del codice e allo stesso tempo permette di utilizzare astrazioni di alto livello senza introdurre overhead. Negli ultimi anni il linguaggio gode di un rinnovato interesse grazie alla pubblicazione dei recenti standard ISO C++11 e C++14, che hanno dato vita al cosiddetto Modern C++. La versione 2017 è stata appena finalizzata ed è in attesa di approvazione. Questo talk mostrerà le caratteristiche di C++ che lo distinguono da altri linguaggi e che possono dare grandi benefici nello sviluppo di qualsiasi tipo di software complesso.

Come esempio d'applicazione presenteremo DiSk++, una template library che mette a disposizione una serie di tool per l'implementazione di metodi numerici Discontinuous Skeletal. Tali metodi sono utilizzati per la risoluzione di equazioni differenziali alle derivate parziali e sono formulati in modo indipendente dalla tipologia della mesh di calcolo e dalla dimensionalità (1D, 2D, 3D) del problema. Tale generalità, naturale dal punto di vista matematico, non è facilmente replicabile in software, soprattutto utilizzando i linguaggi comunemente impiegati nel mondo del calcolo scientifico. Grazie agli strumenti di C++ la libreria DiSk++ riesce a fornire in software una generalità simile a quella della trattazione teorica del metodo, fornendo un approccio "write once, run on any kind of mesh" alla programmazione.
Material: