David Van Horn

Assistant Professor
3439 A.V. Williams Building
(301) 405-6722
Ph.D., Brandeis University (Computer Science)

David Van Horn is an assistant professor of computer science and a member of the Lab for Programming Languages and the University of Maryland.

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.

Van Horn received his doctorate in computer science from Brandeis University in 2009. Before joining the University of Maryland, research assistant professor of computer and information science at Northeastern University.



J. Johnson I, Labich N, Might M, Van Horn D.  2013.  Optimizing Abstract Abstract Machines. arXiv:1211.3722 [cs].


Earl C, Sergey I, Might M, Van Horn D.  2012.  Introspective Pushdown Analysis of Higher-Order Programs. arXiv:1207.1813 [cs].


Tobin-Hochstadt S, Van Horn D.  2011.  Semantic Solutions to Program Analysis Problems. arXiv:1105.0106 [cs].

Tobin-Hochstadt S, Van Horn D.  2011.  Higher-Order Symbolic Execution via Contracts. arXiv:1103.1362 [cs].


Might M, Smaragdakis Y, Van Horn D.  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.

Van Horn D, Might M.  2010.  Abstracting Abstract Machines. arXiv:1007.4446 [cs].

Chang S, Van Horn D, Felleisen M.  2010.  Evaluating Call-By-Need on the Control Stack. arXiv:1009.3174 [cs].



Van Horn D, Mairson HG.  2008.  Deciding kCFA is Complete for EXPTIME. ICFP '08 Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming.

Van Horn D, Mairson HG.  2008.  Flow Analysis, Linearity, and PTIME. Static Analysis.


Van Horn D, Mairson HG.  2007.  Relating Complexity and Precision in Control Flow Analysis. ICFP '07 Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming.


Skalka C, Smith S, Van Horn D.  2005.  A Type and Effect System for Flexible Abstract Interpretation of Java: (Extended Abstract). Electronic Notes in Theoretical Computer Science. 131:111-124.