-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathacks.tex
More file actions
39 lines (32 loc) · 4.03 KB
/
acks.tex
File metadata and controls
39 lines (32 loc) · 4.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
A dissertation is a long journey, but it is one not treaded alone (contrary to what the front page of this document says).
I am greatly indebted to every person that has helped me along the way.
Every professor, student, software developer, and colleague that I have interacted with has taught, guided, and challenged me in some way to become a better computer scientist.
Without their assistance, this dissertation would have never seen the light of day.
However, several people deserve special mention.
First, my deepest thanks go out to my advisor, Steve Zdancewic, for his guidance and insight over the last seven years.
In addition to giving me the freedom to pursue whatever research I found interesting, he has been an excellent mentor and friend throughout this whole process.
Whether it was a paper deadline, the academic job market, scheming new ways to improve the undergraduate curriculum, or identifying the best TV shows for our young daughters to watch, he has always been there to help me out whenever I needed it.
I also thank the remaining professors that make up the PLClub research group---Stephanie Weirich and Benjamin Pierce.
In addition to the advice and encouragement that they have given me, they are responsible for maintaining the excellent quality of life within the group.
Starting graduate school with a newborn in tow was an absolutely terrifying prospect, one that I would not have managed if the programming languages research group at Penn was not as warm, inviting, and caring (on top of being rigorous and hard-working) as it has been during my stay.
Related, I thank all the graduate students, post-docs, and undergraduates that have been a part of PLClub while I was at Penn, including: Nate Foster, Jeff Vaughan, Aaron Bohannon, Karl Mazurak, Jianzhou Zhao, Michael Greenberg, Chris Casinghino, Richard Eisenberg, Hongbo (Bob) Zhang, Arthur Azevedo de Amorim, Justin Hsu, Leonidas Lambropoulos, Jennifer Paykin, Robert Rand, Antal Spector-Zabusky, and Dmitri Garbuzov.\footnote{%
Apologies if I missed your name, and we crossed paths at Penn.
A lot of people have come and gone during my tenure!
}
You have all been a constant source of information, inspiration, and motivation.
I also especially thank the members of my research cohort---Daniel Wagner, Brent Yorgey, and Vilhelm Sj\"{o}berg---for being amazing human beings and friends.
We made it, guys!
I have been honored to collaborate with some amazing people whose feedback and input were instrumental in making this particular line of work on program synthesis as high quality as it could be.
Thank you David Walker, Jonathan Frankle, and Rohan Shah for all the hours of brainstorming, idea-batting, and work you have put into this project.
Even though this dissertation is about program synthesis with types, I consider myself a computer science educator as much as I consider myself a programming languages theorist.
Thank you Chris Murphy, Swapneel Sheth, Arvind Bhusnurmath, Benedict Brown, Katie Gibson, and Lili Dworkin, among others, for being my CS education outlet at Penn.
I thank my family for their love and support throughout this process.
The road to a dissertation is every bit emotional as it is intellectual, and I could not have kept it together without them.
Thank you to my wife and dearest friend, Victoria, for moving out with me to the East coast---away from all the friends and family we have ever known---to pursue this dream.
And thank you to my kids---Talia and Felicity, and soon-to-be, Eliana and Selena---for your love, patience, and understanding while daddy was away at work for so long to finish writing his book.
This dissertation, as well as everything else I do, is dedicated to you all---always.
Finally, my work at Penn has been supported by a pair of grants that I would like to acknowledge:
\begin{itemize}
\item NSF Award CCF-1138996---Expeditions in Computer Augmented Program Engineering: ExCAPE: Harnessing Synthesis for Software Design.
\item ONR award N000141110596---IRONCLAD C/C++: Enforcing Memory Safety to Prevent Low-level Security Vulnerabilities.
\end{itemize}