Loading…
This event has ended. Visit the official site or create your own event on Sched.
Back To Schedule
Thursday, September 28 • 9:00am - 10:00am
Language Support for Metaprogramming in C++

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
For the past several years, I have been researching new languages to support safe and efficient network protocol processing, specifically for software-defined networking applications. The unfortunate outcome of that research is this conclusion: any language for that domain must also be a general purpose programming language. This is not an easy thing to do. Many of the language features I worked with simply generated expressions to compute packet and header lengths, read and write packet fields, and encode and decode entire packets. If we could do this in C++, I might not need an entirely new language. 

Over the past year, Herb Sutter and I have collaborated to work on language support for compile-time programming, static reflection, metaclasses, and code generation in the C++ programming language. These facilities completely eliminate the need for the external tools, metacompilers, and domain-specific languages on which we frequently rely to generate high-performance encoders and decoders in C++. 

In this talk, I will discuss how to use these evolving proposals to create facilities for encoding and decoding packets. In particular, I will discuss the background requirements of my work, the overall design of a network protocol library, and the reflection and generation facilities that implement the library.

Speakers
avatar for Andrew Sutton

Andrew Sutton

Owner, Lock3 Software, LLC
Andrew Sutton is an owner of Lock3 Software, LLC, a software research and development company in Kent, Ohio. His spends his days working on C++ language extensions in Clang and GCC and working on various WG21 language proposals.His past work included the design, specification, and... Read More →


Thursday September 28, 2017 9:00am - 10:00am PDT
Atanasoff Hall Meydenbauer Center