Selected PublicationsBooksCohoon, J. P. and Davidson, J. W., Java Program Design, McGraw-Hill, Boston, MA, 2004. Cohoon, J. P. and Davidson, J. W., C++ Program Design: An Introduction to Programming and Object-Oriented Design, 3rd Edition, McGraw-Hill, Boston, MA, 2002. Cohoon, J. P. and Davidson, J. W., Lab Manual for use with C++ Program Design: An Introduction to Programming and Object-Oriented Design, 3rd Edition, McGraw-Hill, Boston, MA, 2002. Cohoon, J. P. and Davidson, J. W., C++ Program Design: An Introduction to Programming and Object-Oriented Design, Irwin, Burr Ridge, IL, 1997. (In 1998, the text was the best selling introductory programming textbook. It had been adopted by over 130 schools). Davidson, J. W. and Vaughan, R. A., ‘The Effect of Instruction Set Complexity on Program Size and Memory Performance’, in Reduced Instruction Set Computers, William Stallings (editor), IEEE Computer Society Press, 1990. Davidson, J. W. ‘Fast Interpretation of Instruction Sets: Implementation and Applications’, in Computer Hardware Description Languages and Their Applications, C. J. Koomen and T. Moto-oka (ed.), North Holland, Amsterdam, 1985, pp. 179–191. Journal ArticlesJ. D. Hiser, D. W. Williams, W. Hu, J. W. Davidson, J. Mars and B. R. Childers. Evaluating Indirect Branch Handling Mechanisms in Software Dynamic Translation Systems. ACM Transactions on Architecture and Code Optimization, 8(2), July 2011, Article No. 9. P. A. Kulkarni, D. B. Whalley, G. S. Tyson, and J. W. Davidson. Practical Exhaustive Optimization Phase Order Exploration and Evaluation. ACM Transactions on Architecture and Code Optimization, 6(1), March 2009, pp. 1–36. D. Williams, W. Hu, J. W. Davidson, J. D. Hiser, J. C. Knight, A. Nguyen-Tuong. Security through Diversity: Leveraging Virtual Machine Technology. IEEE Security & Privacy, 7(1), January/February 2009, pp. 26–33. P. A. Kulkarni, W. Zhao, D. B. Whalley, X. Yuan, R. van Engelen, K. Gallivan, J. D. Hiser, J. W. Davidson, B. Cai, M. W. Bailey, H. Moon, K. Cho, Y. Paek, and D. L. Jones. VISTA: VPO Interactive System for Tuning Applications. ACM Transactions on Embedded Computing Systems, 5(4), November 2006, pp. 819–863. P. A. Kulkarni, S. R. Hines, D. B. Whalley, J. D. Hiser, J. W. Davidson, and D. L. Jones. Fast and Efficient Searches for Effective Optimization Phase Sequences. ACM Transactions on Architecture and Code Optimization, 2(2), June 2005, pp. 165–198. N. Kumar, B. R. Childers, D. Williams, J. W. Davidson, and M. L. Soffa. Compile-Time Planning for Overhead Reduction in Software Dynamic Translators. International Journal of Parallel Programming, 33(2-3), June 2005, pp. 103–114. B. R. Childers and J. W. Davidson. An Infrastructure for Designing Custom Embedded Wide Counterflow Pipelines. Microprocessors and Microsystems, 29(1), February 2005, pp. 27–40. B. R. Childers and J. W. Davidson. Custom Wide Counterflow Pipelines for High-performance Embedded Applications. IEEE Transactions on Computers, 53(2), February 2004, pp. 141–158. M. Bailey and J. W. Davidson. Automatic Detection and Diagnosis of Faults in Generated Code for Procedure Calls. IEEE Transactions on Software Engineering, 29(11), November 2003, pp. 1031–1042. B. B. Whalley and J. W. Davidson. A Design Environment for Addressing Architecture and Compiler Interactions. Information and Software Technology, 34(11), November 1992, pp. 707–720. J. W. Davidson, J. R. Rabung and D. B. Whalley. Relating Static and Dynamic Machine Code Measurements. IEEE Transactions on Computers, 41(4), April 1992, pp. 444–454. J. W. Davidson and A. M. Holler. Subprogram Inlining: A Study of its Effects on Program Execution Time. IEEE Transactions on Software Engineering, 18(2), February 1992, pp. 89–102. J. W. Davidson and D. B. Whalley. A Design Environment for Addressing Architecture and Compiler Interactions. Microprocessors and Microsystems, 15(9), November 1991, pp. 459–472. J. W. Davidson and D. B. Whalley. Methods for Saving and Restoring Register Values across Function Calls. Software—Practice & Experience, 21(2), February 1991, pp. 149–165. J. W. Davidson and D. B. Whalley. Quick Compilers Using Peephole Optimization. Software—Practice & Experience, 19(1), January 1989, pp. 79–97. J. W. Davidson and A. M. Holler. A Study of a C Function Inliner. Software—Practice & Experience, 18(8), August 1988, pp. 775–790. J. W. Davidson and C. W. Fraser. Automatic Inference and Fast Interpretation of Peephole Optimization Rules. Software—Practice & Experience, 17(9), November 1987, pp. 801–812. J. W. Davidson and C. W. Fraser. Code Selection through Object Code Optimization. ACM Transactions on Programming Languages and Systems, 6(4), October 1984, pp. 7–32. J. W. Davidson and C. W. Fraser. Register Allocation and Exhaustive Peephole Optimization. Software—Practice & Experience, 14(9), September 1984, pp. 857–865. J. W. Davidson and C. W. Fraser. The Design and Application of a Retargetable Peephole Optimizer. ACM Transactions on Programming Languages and Systems, 2(2), April 1980, pp. 191–202. Conference PublicationsS. Ghosh, J. D. Hiser, and J. W. Davidson, A Secure and Robust Approach to Software Tamper Resistance, to appear Proceedings of the 12th Information Hiding Conference, Calgary, Canada, June 2010. A. Nguyen-Tuong, A. Wang, J. D. Hiser, J. C. Knight and J. W. Davidson. On the Effectiveness of the Metamorphic Shield. Proceedings of the Workshop on Survivability in Cyberspace, Stockholm, Sweden, April 2010. M. Co, C. L. Coleman, J. W. Davidson, S. Ghosh, J. D. Hiser, J. C. Knight, and A. Nguyen-Tuong. A Lightweight Software Control System for Cyber Awareness and Security. Proceedings of the 2nd International Symposium on Resilient Control Systems, Idaho Falls, IA, August 2009. R. W. Moore, J. A. Baiocchi, B. R. Childers, J. W. Davidson, and J. D. Hiser. Addressing the Challenges of DBT for the ARM Architecture. Proceedings of the 2009 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, Dublin, Ireland, June 2009, pp. 147–156. J. D. Hiser, C. L. Coleman, M. Co, and J. W. Davidson. MEDS: The Memory Error Detection System. Proceedings of the First International Symposium on Engineering Secure Software Systems, Lueven, Belgium, February, 2009, pp. 164–179. J. Baiochhi, B. R. Childers, J. W. Davidson, and J. D. Hiser. Reducing Pressure in Bounded DBT Code Caches. Proceedings of the 2008 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, Atlanta, GA, October 2008, pp. 109–118. A. Nguyen-Tuong, D. Evans, J. C. Knight, B. Cox, and J. W. Davidson. Security through Redundant Data Diversity. Proceedings of the 38th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, Anchorage, AK, June 2008, pp. 187–196. M. W. Bailey, C. L. Coleman, and J. W. Davidson. Defense Against The Dark Arts. SIGCSE Bulletin, 40(1), March 2008, pp. 315–319. J. Baiocchi, B. R. Childers, J. W. Davidson, J. D. Hiser and J. Misurda. Fragment Cache Management for Dynamic Binary Translators in Embedded Systems with Scratchpad. Proceedings of the 2007 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems, Salzburg, Austria, October 2007, pp. 74-84. J. D. Hiser, J. W. Davidson, and D. B. Whalley. Fast, Accurate Design Space Exploration of Embedded Systems Memory Configurations. Proceedings of the 22nd ACM Symposium on Applied Computing, Seoul, Korea, March, 2007, pp. 699–706. Prasad A. Kulkarni, David B. Whalley, Gary S. Tyson, and Jack W. Davidson. Evaluating Heuristic Optimization Phase Order Search Algorithms. Proceedings of the 2007 International Conference on Code Generation and Optimization, San Jose, CA, March 2007, pp. 157–169. J. D. Hiser, D. Williams, W. Hu, J. W. Davidson, J. Mars, and B. R. Childers. Evaluating Indirect Branch Handling Mechanisms in Software Dynamic Translation Systems. Proceedings of the 2007 International Conference on Code Generation and Optimization, San Jose, CA, March 2007, pp. 61–73. B. Cox, D. Evans, A. Filipi, J. Rowanhill, W. Hu, J. Davidson, and J. Knight, A. Nguyen-Tuong, J. D. Hiser. N-Variant Systems: A Secretless Framework for Security through Diversity. Proceedings of the 15th USENIX Security Symposium, Vancouver, B. C., Canada, August, 2006, pp. 105–120. W. Hu, J. Hiser, D. Williams, A. Filipi, J. W. Davidson, D. Evans, J. C. Knight, A. Nguyen-Tuong and J. Hill. Secure and Practical Defense Against Code-injection Attacks Using Software Dynamic Translation. Proceedings of the 2006 International Conference on Virtual Execution Environments, Ottawa, CA, June 2006, pp. 2–12. J. Hiser, D. Williams, A. Filipi, J. W. Davidson and B. R. Childers. Evaluating Fragment Construction Policies for Software Dynamic Translation Systems. Proceedings of the 2006 International Conference on Virtual Execution Environments, Ottawa, CA, June 2006, pp. 122–132. P. A. Kulkarni, D. B. Whalley, G. S. Tyson, and J. W. Davidson. In Search of Near-Optimal Optimization Phase Orderings. Proceedings of the ACM Conference on Languages, Compilers, and Tools for Embedded Systems, Ottawa, Canada, June 2006, pages 83–92. M. D. Kleffner, D. L. Jones, J. D. Hiser, P. Kulkarni, J. Parent, S. Hines, D. Whalley, J. W. Davidson, K. Gallivan,. On the Use of Compilers in DSP Laboratory Instruction. Proceedings of the 2006 IEEE International Conference on Acoustics, Speech, and Signal Processing, Volume 2, Toulouse, France, May 2006, pp. 977–980. P. A. Kulkarni, D. B. Whalley, G. S. Tyson and J. W. Davidson. Exhaustive Optimization Phase Order Space Exploration. Proceedings of the 2006 International Symposium on Code Generation and Optimization, New York, NY, March 2006, pp. 306–318. S. Hines, P. Kulkarni, D. Whalley and J. Davidson. Using De-optimization to Re-optimize Code. Proceedings of the 5th ACM International Conference on Embedded Software, Jersey City, NJ, September 2005, pp. 114–123. P. A. Kulkarni, S. Hines, J. Hiser, D. B. Whalley, J. W. Davidson and D. Jones. Fast Searches for Effective Optimization Phase Sequences. Proceedings of the 2004 SIGPLAN Conference on Programming Language Design and Implementation, Washington, DC, June 2004, pp. 171–182. J. Hiser and J. W. Davidson. EMBARC: An Efficient Memory Bank Assignment Algorithm for Retargetable Compilers. Proceedings of the 2004 SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems, Washington, DC, June, 2004, pp. 182–191. S. Lee, J. Lee, S. L. Min, J. Hiser and J. W. Davidson. Code Generation for a Dual Instruction Set Processor Based on Selective Code Transformation. Proceedings of the 7th International Workshop on Software and Compilers for Embedded Systems, Vienna, Austria, September 2003, pp. 33–48. P. A. Kulkarni, W. Zhao, H. Moon, K. Cho, D. B. Whalley, J. W. Davidson, M. Bailey, Y. Paek, and K. Gallivan. Finding Effective Optimization Phase Sequences. Proceedings of the 2003 SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems, San Diego, CA, June 2003, pp. 12–23. B. R. Childers, J. W. Davidson and M. L. Soffa. Continuous Compilation: A New Approach to Aggressive and Adaptive Code Transformation. Proceedings of the 17th International Parallel and Distributed Processing Symposium, Nice, France April 2003, pp. 205–214. K. Scott, N. Kumar, S. Velusamy, B. Childers, J. W. Davidson and M. L. Soffa. Retargetable and Reconfigurable Software Dynamic Translation. Proceedings of the 2003 International Symposium on Code Generation and Optimization, San Francisco, CA, March 2003, pp. 36–47. J. K. Scott and J. W. Davidson. Safe Virtual Execution Using Software Dynamic Translation. Proceedings of the 18th Annual Computer Security Applications Conference, Las Vegas, NV, December 2002, pp. 209–218. C. W. Milner and J. W. Davidson. QUICK PIPING: A Fast, High-Level Model for Describing Processor Pipelines. Proceedings of the 2002 Joint Conference on Languages, Compilers, and Tools for Embedded Systems and Software and Compilers for Embedded Systems, Berlin, Germany, June 2002, pp. 175–184. W. Zhao, B. Cai, D. Whalley, M. Bailey, R. van Englen, X. Yuan, J. Hiser, J. W. Davidson, K. Gallivan and D. L. Jones. VISTA: A System for Interactive Code Improvement. Proceedings of the 2002 Joint Conference on Languages, Compilers, and Tools for Embedded Systems and Software and Compilers for Embedded Systems, Berlin, Germany, June 2002, pp. 155–164. C. L. Coleman and J. W. Davidson. Automatic Memory Hierarchy Characterization. Proceedings of the 2001 IEEE International Symposium on Performance Analysis of Systems and Software, Tucson, AZ, November 2001, pp. 103–110. C. Wang, J. W. Davidson, J. C. Knight and J. Hill. Protection of Software-based Survivability Mechanisms. Proceedings of the 2001 International Conference on Dependable Systems and Networks, Göteburg, Sweden, June 2001, pp. 193–202. J. K. Scott, and J. W. Davidson. Exploring the Limits of Sub-word Level Parallelism. Proceedings of the 2000 International Conference on Parallel Architectures and Compilation Techniques, Philadelphia, PA, October 2000, pp. 81–91. B. R. Childers and J. W. Davidson. Custom Wide Counterflow Pipelines for High-Performance Embedded Applications. Proceedings of the 2000 International Conference on Parallel Architecture and Compilation Techniques, Philadelphia, PA, October 2000, pp. 57–68. B. R. Childers and J. W. Davidson. An Infrastructure for Designing Custom Embedded Counterflow Pipelines. Proceedings of the 33rd Annual Hawaii International Conference on System Sciences, Maui, HI, January 2000, pp. 340–352. B. R. Childers and J. W. Davidson. Architectural Considerations for Application-Specific Counterflow Pipelines. Proceedings of the 20th Anniversary Conference on Advanced Research in VLSI, Atlanta, Georgia, March 1999, pp. 3–22. M. W. Bailey and J. W. Davidson. Target-Sensitive Construction of Diagnostic Programs for Procedure Calling Sequence Generators. Proceedings of the SIGPLAN '96 Symposium on Programming Language Design and Implementation, Philadelphia, PA, May 1996, pp. 249–257. S. Jinturkar and J. W. Davidson. Aggressive Loop Unrolling in a Retargetable, Optimizing Compiler. Proceedings of the 1996 Compiler Construction Conference, Linköping, Sweden, April 1996, pp. 59–73. S. Jinturkar and J. W. Davidson. Improving Instruction-level Parallelism by Loop Unrolling and Dynamic Memory Disambiguation. Proceedings of the 28th Annual IEEE/ACM International Symposium on Microarchitecture, Ann Arbor, MI, November 1995, pp. 125–132. M. W. Bailey and J. W. Davidson. A Formal Specification for Procedure Calling Conventions. Proceedings of the 22nd Annual SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, CA, January 1995, pp. 298–310. S. Jinturkar and J. W. Davidson. Memory Access Coalescing: A Technique for Eliminating Redundant Memory Accesses. Proceedings of the SIGPLAN '94 Symposium on Programming Language Design and Implementation, Orlando, FL, June 1994, pp. 186–195. M. E. Benitez and J. W. Davidson. Register Deprivation Measurements. Proceedings of the 1994 Compiler Construction Conference. M. E. Benitez and J. W. Davidson. The Advantages of Machine-Dependent Global Optimization. Proceedings of the 1994 Conference on Programming Languages and Systems Architectures, Zurich, Switzerland, March 1994, pp. 105–124. M. J. Alexander, M. W. Bailey, B. R. Childers, J. W. Davidson, and S. Jinturkar. Memory Bandwidth Optimizations for Wide-Bus Machines. Proceedings of the 26th Annual Hawaii International Conference on System Sciences, January 1993, pp. 401–423. M. E. Benitez and J. W. Davidson. Code Generation for Streaming: an Access/Execute Mechanism. Proceedings of the Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, April 1991, pp. 132–141. D. B. Whalley and J. W. Davidson. Reducing the Cost of Branches by Using Registers. Proceedings of the 17th International Symposium on Computer Architecture, May 1990, pp. 182–191. D .B. Whalley and J. W. Davidson. Ease: An Environment for Architecture Study and Experimentation. Proceedings of the 1990 ACM Sigmetrics Conference on Measurement and Modeling of Computer Systems, May 1990, pp. 259–260. M. E. Benitez and J. W. Davidson. A Portable Global Optimizer and Linker. Proceedings of the SIGPLAN '88 Symposium on Programming Language Design and Implementation, June 1988, pp. 329–338. J. W. Davidson and R. A. Vaughn. The Effect of Instruction Set Complexity on Program Size and Memory Performance. Proceedings of the Second International Conference on Architectural Support for Programming Languages and Operating Systems, October 1987, pp. 60–64. J. W. Davidson and J. V. Gresh. Cint: A RISC Interpreter for the C Programming Language. Proceedings of the SIGPLAN ‘87 Symposium on Interpreters and Interpretive Techniques, 22(7), June 1987, pp. 189–198. J. W. Davidson. A Retargetable Instruction Reorganizer. Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, 21(7), June 1986, pp. 23–241. J. W. Davidson and C. W. Fraser. Automatic Generation of Peephole Optimizations. Proceedings of the SIGPLAN '84 Symposium on Compiler Construction, 19(6), June 1984, pp. 111–116. J. W. Davidson and C. W. Fraser. Eliminating Redundant Object Code. Proceedings of the Ninth Annual ACM Symposium on Principles of Programming Languages, January 1982, pp. 128–132.
|