Jeff Foster

Professor
4129 A.V. Williams Building
(301) 405-2751
Research Group(s): 
Education: 
Ph.D., University of California at Berkeley (Computer Science)
Special Awards/Honors: 
National Science Foundation (NSF) CAREER Award
Biography: 

Jeffrey S. Foster is a professor in the Department of Computer Science.

Foster's research focuses on developing programming languages and software engineering approaches in order to make software easier to write and more reliable, secure, and available.

Some of his recent research efforts include improving security and privacy on Android mobile devices, developing automated techniques to check web application security, exploring the use of program synthesis to automatically construct program code from specifications, and creating new approaches to safely update software at run-time. Much of Foster's prior work focused on static analysis to find bugs and security flaws in practical software systems.

Foster was awarded the National Science Foundation (NSF) CAREER Award in 2004, given to outstanding junior faculty who exemplify the role of teacher-scholars so they can further their research in their areas of expertise. He was also a member of DARPA's Computer Science Study.

Foster received his doctorate in computer science from the University of California, Berkeley, and his M.Eng. and B.S. degrees from Cornell University, also in computer science.

Go here to view Foster's academic publications on Google Scholar.

Publications

2011


Pratikakis P, Foster JS, Hicks MW.  2011.  LOCKSMITH: Practical static race detection for C. ACM Trans. Program. Lang. Syst.. 33(1):3:1–3:55-3:1–3:55.

An J-hoon(D), Chaudhuri A, Foster JS, Hicks MW.  2011.  Dynamic inference of static types for ruby. Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages.
:459-472.

Turpie J, Reisner E, Foster JS, Hicks MW.  2011.  MultiOtter: Multiprocess Symbolic Execution. Technical Reports of the Computer Science Department.

Hayden CM, Smith EK, Hicks MW, Foster JS.  2011.  State transfer for clear and efficient runtime updates. 2011 IEEE 27th International Conference on Data Engineering Workshops (ICDEW).
:179-184.

Ma K-K, Yit Phang K, Foster JS, Hicks MW.  2011.  Directed Symbolic Execution. Static AnalysisStatic Analysis. 6887:95-111.

Hayden C, Smith E, Hardisty E, Hicks MW, Foster JS.  2011.  Evaluating Dynamic Software Update Safety Using Systematic Testing. IEEE Transactions on Software Engineering. PP(99):1-1.

2010


Srivastava S, Gulwani S, Foster JS.  2010.  From program verification to program synthesis. ACM SIGPLAN Notices. 45:313-326.

Reisner E, Song C, Ma KK, Foster JS, Porter A.  2010.  Using symbolic evaluation to understand behavior in configurable software systems. Software Engineering, 2010 ACM/IEEE 32nd International Conference on. 1:445-454.

Hicks MW, Foster JS.  2010.  Adapting Scrum to Managing a Research Group. Technical Reports of the Computer Science Department.

Chaudhuri A, Foster JS.  2010.  Symbolic security analysis of ruby-on-rails web applications. Proceedings of the 17th ACM conference on Computer and communications security.
:585-594.

Khoo YP, Chang BYE, Foster JS.  2010.  Mixing type checking and symbolic execution. ACM SIGPLAN Notices. 45:436-447.

2009


Furr M, An JD, Foster JS.  2009.  Profile-guided static typing for dynamic scripting languages. ACM SIGPLAN Notices. 44(10):283-300.

Hayden CM, Hardisty EA, Hicks MW, Foster JS.  2009.  A Testing Based Empirical Study of Dynamic Software Update Safety Restrictions. Technical Reports of the Computer Science Department.

Furr M, An J-hoon(D), Foster JS, Hicks MW.  2009.  Static type inference for Ruby. Proceedings of the 2009 ACM symposium on Applied Computing.
:1859-1866.

Furr M, An J-hoon(D), Foster JS, Hicks MW.  2009.  Tests to the left of me, types to the right: how not to get stuck in the middle of a ruby execution. Proceedings for the 1st workshop on Script to Program Evolution.
:14-16.

Khoo Y P, Hicks MW, Foster JS, Sazawal V.  2009.  Directing JavaScript with arrows. Proceedings of the 5th symposium on Dynamic languages.
:49-58.

Furr M, An J-hoon(D), Foster JS, Hicks MW.  2009.  The ruby intermediate language. SIGPLAN Not.. 44(12):89-98.

Hayden CM, Hardisty EA, Hicks MW, Foster JS.  2009.  Efficient systematic testing for dynamically updatable software. Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades.
:9:1–9:5-9:1–9:5.

Phang KY, Foster JS, Hicks MW, Sazawal V.  2009.  Triaging Checklists: a Substitute for a PhD in Static Analysis. Evaluation and Usability of Programming Languages and Tools (PLATEAU) PLATEAU 2009.

Hayden CM, Hardisty EA, Hicks MW, Foster JS.  2009.  Efficient systematic testing for dynamically updatable software. Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades.
:9-9.

2008


Furr M, Foster JS.  2008.  Checking type safety of foreign function calls. ACM Transactions on Programming Languages and Systems (TOPLAS). 30(4):18-18.

Srivastava S, Hicks MW, Foster JS, Jenkins P.  2008.  Modular Information Hiding and Type-Safe Linking for C. IEEE Transactions on Software Engineering. 34(3):357-376.

Khoo Y P, Foster JS, Hicks MW, Sazawal V.  2008.  Path projection for user-centered static analysis tools. Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering.
:57-63.

Udrea O, Lumezanu C, Foster JS.  2008.  Rule-based static analysis of network protocol implementations. Information and Computation. 206(2):130-157.

Neamtiu I, Hicks MW, Foster JS, Pratikakis P.  2008.  Contextual effects for version-consistent dynamic software updating and safe concurrent programming. Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages.
:37-49.

Pratikakis P, Foster JS, Hicks MW, Neamtiu I.  2008.  Formalizing Soundness of Contextual Effects. Theorem Proving in Higher Order LogicsTheorem Proving in Higher Order Logics. 5170:262-277.

2007


Foster JS, Hicks MW, Pugh W.  2007.  Improving software quality with static analysis. Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering.
:83-84.

Greenfieldboyce D, Foster JS.  2007.  Type qualifier inference for Java. ACM SIGPLAN Notices. 42:321-336.

Srivastava S, Hicks MW, Foster JS.  2007.  Appendix to CMod: Modular Information Hiding and Type-Safe Linking for C. Technical Reports of the Computer Science Department.

Djikeng A, Raverdy S, Foster JS, Bartholomeu D, Zhang Y, El-Sayed NM, Carlow C.  2007.  Cofactor-independent phosphoglycerate mutase is an essential gene in procyclic form Trypanosoma brucei. Parasitology research. 100(4):887-892.

2006


Foster JS, Johnson R, Kodumal J, Aiken A.  2006.  Flow-insensitive type qualifiers. ACM Transactions on Programming Languages and Systems (TOPLAS). 28(6):1035-1087.

Pratikakis P, Foster JS, Hicks MW.  2006.  Context-sensitive correlation analysis for detecting races. Proceedings of the ACM Conference on Programming Language Design and Implementation (PLDI).
:320-331.

Pratikakis P, Foster JS, Hicks MW.  2006.  Existential Label Flow Inference Via CFL Reachability. Static AnalysisStatic Analysis. 4134:88-106.

2005


Neamtiu I, Foster JS, Hicks MW.  2005.  Understanding source code evolution using abstract syntax tree matching. Proceedings of the 2005 international workshop on Mining software repositories.
:1-5.

2004


Greenfieldboyce D, Foster JS.  2004.  Visualizing type qualifier inference with Eclipse. Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange.
:57-61.

Rutar N, Almazan CB, Foster JS.  2004.  A comparison of bug finding tools for Java. Software Reliability Engineering, 2004. ISSRE 2004. 15th International Symposium on.
:245-256.

2003


Aiken A, Foster JS, Kodumal J, Terauchi T.  2003.  Checking and inferring local non-aliasing. ACM SIGPLAN Notices. 38:129-140.

2002


Foster JS, Terauchi T, Aiken A.  2002.  Flow-sensitive type qualifiers. ACM SIGPLAN Notices. 37(5):1-12.

2001


Shankar U, Talwar K, Foster JS, Wagner D.  2001.  Detecting format string vulnerabilities with type qualifiers. Proceedings of the 10th conference on USENIX Security Symposium-Volume 10.
:16-16.

2000


Wagner D, Foster JS, Brewer EA, Aiken A.  2000.  A first step towards automated detection of buffer overrun vulnerabilities. The 2000 Network and Distributed Systems Security Conference. San Diego, CA. 14

Foster JS, Fahndrich M, Aiken A.  2000.  Polymorphic versus monomorphic points-to analysis. Proceedings of the 7th International Static Analysis Symposium, Lecture Notes in Computer Science. Springer Verlag.

1999


Foster JS, Fähndrich M, Aiken A.  1999.  A theory of type qualifiers. ACM SIGPLAN Notices. 34:192-203.

1998


Aiken A, Fhndrich M, Foster JS, Su Z.  1998.  Partial online cycle elimination in inclusion constraint graphs. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).