![William Bowman](https://s32615.pcdn.co/wp-content/uploads/2020/06/William-Bowman-hero-image.jpg)
William J. Bowman
![William Bowman](https://s32615.pcdn.co/wp-content/uploads/2020/06/William-Bowman-hero-image.jpg)
William J. Bowman is a PhD student studying computer science at Northeastern University’s Khoury College of Computer Sciences, advised by Professor Amal Ahmed. His research involves compilers, type systems, and meta-programming with a goal of eliminating compiler-introduced bugs and making code that is easier to read, write, and edit. He earned both his bachelor’s degree and master’s degree in computer science from Indiana University.
I am a PhD candidate studying programming languages. My interests include compilers, type systems, and meta-programming.
I currently study compiler correctness for typed languages. Typed languages promise strong guarantees for programmers to use while reasoning about their programs. I want to make these guarantees meaningful by ensuring compilers do not ignore them by introducing subtle bugs and security vulnerabilities in favor of small improvements in speed.
I would like to eliminate compiler bugs. Programmers should never have to worry that the compiler is introducing errors in their code. Of course, I doubt I will solve this myself, but if I can make even a small contribution to the solution, I will call my work a success.
My favorite undergraduate course was the compilers course. We wrote an optimizing Scheme to x86 compiler. Now, an interesting part of my work is discovering how every compiler pass must change a little so we can prove that it preserves high-level reasoning. Some of these changes are merely to support proofs, while others expose glaring assumptions that compiler developers have made about what matters when compiling code.
I want to make programs easier to read and write. I want to make it easy to write a program and know it will never crash. I want to make it easy to open a program’s source code and make a change without ever needing to consult the original developer. I want most programmers to never know there is a real machine with physical limitations running their code.
William J. Bowman is a PhD student studying computer science at Northeastern University’s Khoury College of Computer Sciences, advised by Professor Amal Ahmed. His research involves compilers, type systems, and meta-programming with a goal of eliminating compiler-introduced bugs and making code that is easier to read, write, and edit. He earned both his bachelor’s degree and master’s degree in computer science from Indiana University.
I am a PhD candidate studying programming languages. My interests include compilers, type systems, and meta-programming.
I currently study compiler correctness for typed languages. Typed languages promise strong guarantees for programmers to use while reasoning about their programs. I want to make these guarantees meaningful by ensuring compilers do not ignore them by introducing subtle bugs and security vulnerabilities in favor of small improvements in speed.
I would like to eliminate compiler bugs. Programmers should never have to worry that the compiler is introducing errors in their code. Of course, I doubt I will solve this myself, but if I can make even a small contribution to the solution, I will call my work a success.
My favorite undergraduate course was the compilers course. We wrote an optimizing Scheme to x86 compiler. Now, an interesting part of my work is discovering how every compiler pass must change a little so we can prove that it preserves high-level reasoning. Some of these changes are merely to support proofs, while others expose glaring assumptions that compiler developers have made about what matters when compiling code.
I want to make programs easier to read and write. I want to make it easy to write a program and know it will never crash. I want to make it easy to open a program’s source code and make a change without ever needing to consult the original developer. I want most programmers to never know there is a real machine with physical limitations running their code.