I am a Senior Scientist at GrammaTech, Inc. I research automated software engineering, software evolution, binary analysis, and binary optimization. My research interests also include the way developers read, understand, and interact with programs.
Conference | |
PG (21%) |
Jonathan Dorn, Connelly Barnes, Jason Lawrence, Westley Weimer. Towards Automatic Band-Limited Procedural Shaders, Pacific Graphics. 2015. [PDF] [video (160 MB)] [supplemental material] [slides (17 MB)] |
ESEC/FSE (25%) |
Ermira Daka, Jose Campos, Gordon Fraser, Jonathan Dorn, Westley Weimer.
Modeling Readability to Improve Unit Tests,
Foundations of Software Engineering (ESEC/FSE). 2015.
[PDF]
ACM SIGSOFT Distinguished Paper Award |
SSBSE | Ermira Daka, Jose Campos, Jonathan Dorn, Gordon Fraser, Westley Weimer. Generating Readable Unit Tests for Guava, Symposium on Search Based Software Engineering (SSBSE). 2015. [PDF] |
ASPLOS (23%) |
Eric Schulte, Jonathan Dorn, Stephen Harding, Stephanie Forrest, Westley Weimer. Post-compiler Software Optimization for Reducing Energy, Architectural Support for Programming Languages and Operating Systems (ASPLOS). 2014. [PDF] |
Journal | |
TSE | Jonathan Dorn, Jeremy Lacomis, Westley Weimer, Stephanie Forrest. Automatically Exploring Tradeoffs Between Software Output Fidelity and Energy Costs Transactions on Software Engineering. 45(3): 219-236. 2019. [PDF] |
Workshop | |
HotPar | Chris Gregg, Jonathan Dorn, Kim Hazelwood, Kevin Skadron. Fine-Grained Resource Sharing for Concurrent GPGPU Kernels, 4th USENIX Workshop on Hot Topics in Parallelism (HotPar'12). 2012. [PDF] |
Book Chapter | |
Jeremy Lacomis, Jonathan Dorn, Westley Weimer, Stephanie Forrest. Automatically Reducing Energy Consumption of Software. The Energetics of Computing in Life and Machines, 2019. [PDF] |
I taught a compilers practicum to 9 students in the spring semester of 2014. [lecture slides]
This course was an optional companion to CS 4610 Programming Languages, for advanced students to apply PL concepts to implement an optimizing compiler for a small object-oriented language. The assignments were designed by the CS 4610 instructor to reduce redundancy between assignments in both classes, while I was responsible for the content and presentation of the lectures, answering questions, and providing guidance to the student teams. The lectures covered basic code generation for a byte code virtual machine and x86_64, object layout, calling conventions, boxing and unboxing of primitives, peephole optimizations, register allocation, and dataflow analysis.