venerdì 7 ottobre 2016 ore 11:50 / 12:50
Speaker: Carlo Pescio
Livello: 300
Dove: Sala 2 (Teatro 4)
Scrivere una libreria è un po' come estendere il linguaggio. Tuttavia chi realizza una librerie ha meno libertà e potenza espressiva rispetto a chi progetta un linguaggio: il linguaggio sottostante impone limiti, sia in ciò che è possibile definire che nei vincoli esprimibili. Ad esempio, in C# è possibile vincolare i parametri di una classe generica ad essere a loro volta classi, ma non possiamo vincolarli ad essere interfacce.
Attraverso Roslyn (la nuova tecnologia alla base dei compilatori Microsoft), chi crea una libreria può ora includere degli analizzatori compile-time, creando una cosiddetta Code-Aware Library. L'analizzatore custom può implementare logiche complesse, di fatto estendendo i vincoli esprimibili con il normale type system.
In questo talk parleremo sia della tecnologia delle Code-Aware Libraries che di un loro utilizzo avanzato, estendendo il C# con un costrutto di cross-cast tra interfacce completamente type-safe.