The skeleton of Modern C++

  • Data: 07 luglio 2017 dalle 14:00 alle 15:00

  • Luogo: Sala Asinelli, c/o sede CNAF, via Ranzani 13/2, Bologna

Contatto di riferimento:

Partecipanti: Nicola Gigante (Universita' di Udine), Matteo Cicuttin (École des Ponts ParisTech)

Abstract. 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.

Il seminario avra' luogo in sala Asinelli, presso la sede del CNAF in via Ranzani, 13/2.