David Van Horn

David Van Horn is an associate professor of computer science and a member of the Maryland Cybersecurity Center (MC2) and the Lab for Programming Languages (PLUM).
Van Horn’s research centers on program analysis and how it is applied to programming languages, software engineering, verification and security. He specifically works on the design and implementation of programming languages that go towards building secure, reliable, efficient and reusable high-quality software.
His book, “Realm of Racket: Learn to Program, One Game at a Time," was selected as a 2013 Notable Book in Computing by ACM Computing Reviews. The book teaches readers to program by leading them through the creation of a series of increasingly complex games.
Before joining the University of Maryland, Van Horn was a research assistant professor of computer and information science at Northeastern University.
He received his doctorate in computer science from Brandeis University in 2009.
Go here to view Van Horn's academic publications on Google Scholar.
Publications
2013
2013. From Principles to Practice with Class in the First Year. arXiv:1306.4713 [cs].
2013. Optimizing Abstract Abstract Machines. arXiv:1211.3722 [cs].
2012
2012. Introspective Pushdown Analysis of Higher-Order Programs. arXiv:1207.1813 [cs].
2011
2011. Higher-Order Symbolic Execution via Contracts. arXiv:1103.1362 [cs].
2011. Semantic Solutions to Program Analysis Problems. arXiv:1105.0106 [cs].
2011. Systematic Abstraction of Abstract Machines. arXiv:1107.3539 [cs].
2011. A family of abstract interpretations for static analysis of concurrent higher-order programs. arXiv:1103.5167 [cs].
2011. Abstracting Abstract Machines: A Systematic Approach to Higher-Order Program Analysis. arXiv:1105.1743 [cs].
2010
2010. Evaluating Call-By-Need on the Control Stack. arXiv:1009.3174 [cs].
2010. Pushdown Control-Flow Analysis of Higher-Order Programs. arXiv:1007.4268 [cs].
2010. Resolving and Exploiting the k-CFA Paradox: Illuminating Functional vs. Object-oriented Program Analysis. PLDI '10 Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation. :305-315.
2010. Abstracting Abstract Machines. arXiv:1007.4446 [cs].
2009
2008
2008. Deciding kCFA is Complete for EXPTIME. ICFP '08 Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming. :275-282.
2008. Flow Analysis, Linearity, and PTIME. Static Analysis. :255-269.
2007
2007. Relating Complexity and Precision in Control Flow Analysis. ICFP '07 Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming. :85-96.
2005
2005. A Type and Effect System for Flexible Abstract Interpretation of Java: (Extended Abstract). Electronic Notes in Theoretical Computer Science. 131:111-124.