Undergraduate Research and Innovation Scholar
Choosing the Best Network Protocol
- Computer Systems
Saman P. Amarasinghe
Buildit is a lightweight multi-stage programming library in C++. In single-stage programming, a program is passed through a compiler which generates an executable that can be executed directly. In multi-stage programming, the output of the compiler executable is another valid program. This program can then be compiled and executed with a new set of inputs to generate another program. The program thus generated is tailored to a specific set of inputs and is typically more optimized than the general one. I aim to create an application using Buildit that can Automatically decide at compile time which network protocol is best suited for the task and inputs in hand, and then generate code that is optimized for the use of that specific protocol.
I am participating in SuperUROP because I want to apply my knowledge of compilers and templates to a longer-term research project.