Outline:
|
|
|
http://research.microsoft.com/~leino
http://leino-online.com
Programming and program design technologies, programming languages and systems, programming methodology, object-oriented programming, programming tools, specification and verification, program semantics.
Other interests: music and audio, game programming.
(I'm afraid this list is not as up-to-date or useful as it could be.)
| A programming model for concurrent object-oriented programs | TOPLAS | ||
| Bart Jacobs, K. Rustan M. Leino, Frank Piessens, Wolfram Schulte, and Jan Smans | |||
| ACM Transactions on Programming Languages and
Systems, to appear. |
|||
| Specification and verification challenges for sequential object-oriented programs | FAC | ||
| Gary T. Leavens, K. Rustan M. Leino, and Peter Müller | |||
| Formal Aspects of Computing, to appear. A previous version appears as Technical Report 06-14, Department of Computer Science, Iowa State University, May 2006. |
|||
| Efficient weakest preconditions | IPL | ||
| K. Rustan M. Leino | |||
| Information Processing Letters, 93(6):281-288, March 2005. | |||
| An overview of JML tools and applications | STTT | ||
| Lilian Burdy, Yoonsik Cheon, David R. Cok, Michael D. Ernst, Joseph R. Kiniry, Gary T. Leavens, K. Rustan M. Leino, and Erik Poll | |||
| International Journal on Software Tools for Technology Transfer, 7(3):212-232, 2005. | |||
| Generating error traces from verification-condition counterexamples | SCP | ||
| K. Rustan M. Leino, Todd Millstein, and James B. Saxe | |||
| Science of Computer Programming, 55(1-3):209-226, 2005. | |||
| Finding stale-value errors in concurrent programs | C&C: P&E | ||
| Michael Burrows and K. Rustan M. Leino | |||
| Concurrency and Computation: Practice and Experience, 16(12):1161-1172, October 2004. | |||
| Verification of object-oriented programs with invariants | JOT | ||
| Mike Barnett, Robert DeLine, Manuel Fähndrich, K. Rustan M. Leino, and Wolfram Schulte | |||
| Journal of Object Technology, 3(6):27-56, June 2004. | |||
| Data abstraction and information hiding | TOPLAS | ||
| K. Rustan M. Leino and Greg Nelson | |||
| ACM Transactions on Programming Languages and Systems, 24(5):491-553, September 2002. | |||
| Annotation inference for modular checkers | IPL | ||
| Cormac Flanagan, Rajeev Joshi, and K. Rustan M. Leino | |||
| Information Processing Letters, 77(2-4):97-108, February 2001. | |||
| Real estate of names | IPL | ||
| K. Rustan M. Leino | |||
| Information Processing Letters, 77(2-4):169-171, February 2001. | |||
| A semantic approach to secure information flow | SCP | ||
| Rajeev Joshi and K. Rustan M. Leino | |||
| Science of Computer Programming, 37(1-3):113-138, May 2000. | |||
| Virginity: A contribution to the specification of object-oriented software | IPL | ||
| K. Rustan M. Leino and Raymie Stata | |||
| Information Processing Letters, 70(2):99-105, April 1999. | |||
| Joining specification statements | TCS | ||
| K. Rustan M. Leino and Rajit Manohar | |||
| Theoretical Computer Science, 216(1-2):375-394, March 1999. | |||
| Computing permutation encodings | FAC | ||
| K. Rustan M. Leino | |||
| Formal Aspects of Computing, 11(1):56-74, 1999. | |||
| Recursive object types in a logic of object-oriented programs | NJC | ||
| K. Rustan M. Leino | |||
| Nordic Journal of Computing, 5(4):330-360, 1998. | |||
| Conditional composition | FAC | ||
| Rajit Manohar and K. Rustan M. Leino | |||
| Formal Aspects of Computing, 7(6):683-703, March 1995. | |||
| Constructing a program with exceptions | IPL | ||
| K. Rustan M. Leino | |||
| Information Processing Letters, 53(3):159-163, February 1995. | |||
| A method for showing progress | FAC | ||
| K. Rustan M. Leino | |||
| Formal Aspects of Computing, 7(5):567-580, January 1995. | |||
| A verifying compiler for a multi-threaded object-oriented language | |||
| K. Rustan M. Leino and Wolfram Schulte | |||
| To appear in the Marktoberdorf Summer School 2006 lecture notes. | |||
| Foreword | |||
| K. Rustan M. Leino | |||
| Verification of Object-Oriented Software: The KeY Approach. Bernhard Beckert, Reiner Hähnle, and Peter H. Schmitt, editors. Volume 4334 of Lecture Notes in Artificial Intelligence, pages VII-VIII. Springer, 2007.. | |||
| Abstraction dependencies | |||
| K. Rustan M. Leino and Greg Nelson | |||
| In Annabelle McIver and Carroll Morgan, editors, Programming Methodology, Monographs in Computer Science, chapter 13, pages 269-289. Springer, 2003. | |||
| A logic of object-oriented programs | |||
| Martin Abadi and K. Rustan M. Leino | |||
| In Nachum Dershowitz, editor, Verification: Theory and Practice, Essays dedicated to Zohar Manna on the occasion of his 64th birthday, volume 2772 of Lecture Notes in Computer Science, pages 11-41. Springer, 2003. | |||
| Data abstraction and information hiding | SRC RR | ||
| K. Rustan M. Leino and Greg Nelson | |||
| Research Report 160, Compaq Systems Research Center, Palo Alto, CA, November 2000. | |||
| Superseded by TOPLAS article, see above. | |||
| Extended static checking | SRC RR | ||
| David L. Detlefs, K. Rustan M. Leino, Greg Nelson, and James B. Saxe | |||
| Research Report 159, Compaq Systems Research Center, Palo Alto, CA, December 1998. | |||
| A logic of object-oriented programs | SRC RR | ||
| Martin Abadi and K. Rustan M. Leino | |||
| Research Report 161, Digital Equipment Corporation Systems Research Center, Palo Alto, CA, September 1998. | |||
| Superseded by chapter in Zohar Manna's Festschrift, see above. | |||
| Wrestling with rep exposure | SRC RR | ||
| David L. Detlefs, K. Rustan M. Leino, and Greg Nelson | |||
| Research Report 156, Digital Equipment Corporation Systems Research Center, Palo Alto, CA, July 1998. | |||
| Verification of equivalent-results methods | ESOP 2007 | ||
| K. Rustan M. Leino and Peter Müller | |||
| In Sophia Drossopoulou, editor, Programming Languages and Systems, 17th European Symposium on Programming, ESOP 2008, volume 4960 of Lecture Notes in Computer Science, pages 307-321. Springer, March/April 2008. | |||
| Class-local object invariants | ISEC 2008 | ||
| K. Rustan M. Leino and Angela Wallenburg | |||
| In Proceedings of the 2008 First India Software Engineering Conference, pages 57-66. ACM, February 2008. | |||
| Using history invariants to verify observers | ESOP 2007 | ||
| K. Rustan M. Leino and Wolfram Schulte | |||
| In Rocco De Nicola, editor, Programming Languages and Systems, 16th European Symposium on Programming, ESOP 2007, volume 4421 of Lecture Notes in Computer Science, pages 80-94. Springer, March 2007. | |||
| Practical reasoning about invocations and implementations of pure methods | FASE 2007 | ||
| Ádám Darvas and K. Rustan M. Leino | |||
| In Matthew B. Dwyer and Antónia Lopes, editors, Fundamental Approaches to Software Engineering, 10th International Conference, FASE 2007, volume 4422 of Lecture Notes in Computer Science, pages 336-351. Springer, 2007. | |||
| Boogie: A Modular Reusable Verifier for Object-Oriented Programs | FMCO 2005 | ||
| Mike Barnett, Robert DeLine, Bart Jacobs, Bor-Yuh Evan Chang, and K. Rustan M. Leino | |||
| In Frank S. de Boer, Marcello M. Bonsangue, Susanne Graf, and Willem-Paul de Roever, editors, Formal Methods for Components and Objects: 4th International Symposium, FMCO 2005, volume 4111 of Lecture Notes in Computer Science, pages 364-387. Springer, September 2006. | |||
| A verification methodology for model fields | ESOP 2006 | ||
| K. Rustan M. Leino and Peter Müller | |||
| In Peter Sestoft, editor, Programming Languages and Systems: 15th European Symposium on Programming, ESOP 2006, volume 3924 of Lecture Notes in Computer Science, pages 115-130. Springer, March 2006. | |||
| Loop invariants on demand | APLAS 2005 | ||
| K. Rustan M. Leino and Francesco Logozzo | |||
| In Kwangkeun Yi, editor, Programming Languages and Systems, Third Asian Symposium, APLAS 2005, volume 3780 of Lecture Notes in Computer Science, pages 119-134. Springer, November 2005. | |||
| Safe Concurrency for Aggregate Objects with Invariants | SEFM 2005 | ||
| Bart Jacobs, K. Rustan M. Leino, Frank Piessens, and Wolfram Schulte | |||
| In Bernhard K. Aichernig and Bernhard Beckert, editors, 3rd IEEE International Conference on Software Engineering and Formal Methods (SEFM 2005), pages137-146. IEEE Computer Society, September 2005. | |||
| Modular verification of static class invariants | FM 2005 | ||
| K. Rustan M. Leino and Peter Müller | |||
| In John Fitzgerald, Ian J. Hayes, and Andrzej Tarlecki, editors, FM 2005: Formal Methods, International Symposium of Formal Methods Europe, volume 3582 of Lecture Notes in Computer Science, pages 26-42. Springer, July 2005. | |||
| A Two-Tier Technique for Supporting Quantifiers in a Lazily Proof-Explicating Theorem Prover | TACAS 2005 | ||
| K. Rustan M. Leino, Madan Musuvathi, and Xinming Ou | |||
| In Nicolas Halbwachs and Lenore D. Zuck, editors, Tools and Algorithms for the Construction and Analysis of Software, 11th International Conference, TACAS 2005, volume 3440 of Lecture Notes in Computer Science, pages 334-348. Springer, April 2005. | |||
| Abstract interpretation with alien expressions and heap structures | VMCAI 2005 | ||
| Bor-Yuh Evan Chang and K. Rustan M. Leino | |||
| In Radhia Cousot, editor, Verification, Model Checking, and Abstract Interpretation, 6th International Conference, VMCAI 2005, volume 3385 of Lecture Notes in Computer Science, pages 147-163. Springer, January 2005. | |||
| Exception safety for C# | SEFM 2004 | ||
| K. Rustan M. Leino and Wolfram Schulte | |||
| In Jorge R. Cuellar and Zhiming Liu, editors, SEFM 2004--Second International Conference on Software Engineering and Formal Methods, pages 218-227. IEEE, September 2004. | |||
| Object invariants in dynamic contexts | ECOOP 2004 | ||
| K. Rustan M. Leino and Peter Müller | |||
| In Martin Odersky, editor, ECOOP 2004--Object-oriented programming, 18th European Conference, Proceedings, volume 3086 of Lecture Notes in Computer Science, pages 491-516. Springer, June 2004. | |||
| Declaring and checking non-null types in an object-oriented language | OOPSLA 2003 | ||
| Manuel Fähndrich and K. Rustan M. Leino | |||
| In Proceedings of the 2003 ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'03), volume 38(11) of SIGPLAN Notices, pages 302-312. ACM, November 2003. | |||
| Using data groups to specify and check side effects | PLDI 2002 | ||
| K. Rustan M. Leino, Arnd Poetzsch-Heffter, and Yunhong Zhou | |||
| In Proceedings of the 2002 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), volume 37(5) of SIGPLAN Notices, pages 246-257. ACM, May 2002. | |||
| Extended static checking for Java | PLDI 2002 | ||
| Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, and Raymie Stata | |||
| In Proceedings of the 2002 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), volume 37(5) of SIGPLAN Notices, pages 234-245. ACM, May 2002. | |||
| Applications of extended static checking | SAS'01 | ||
| K. Rustan M. Leino | |||
| In Patrick Cousot, editor, Static Analysis: 8th International Symposium (SAS'01), volume 2126 of Lecture Notes in Computer Science, pages 185-193. Springer, July 2001. | |||
| Extended static checking: A ten-year perspective | Dagstuhl 10th anniversary | ||
| K. Rustan M. Leino | |||
| In Reinhard Wilhelm, editor, Informatics -- 10 Years Back, 10 Years Ahead, volume 2000 of Lecture Notes in Computer Science, pages 157-175. Springer, January 2001. | |||
| Houdini, an annotation assistant for ESC/Java | FME 2001 | ||
| Cormac Flanagan and K. Rustan M. Leino | |||
| In International Symposium of Formal Methods Europe 2001: Formal Methods for Increasing Software Productivity, volume 2021 of Lecture Notes in Computer Science, pages 500-517. Springer, March 2001. | |||
| Data groups: Specifying the modification of extended state | OOPSLA '98 | ||
| K. Rustan M. Leino | |||
| In Proceedings of the 1998 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '98), volume 33(10) of ACM SIGPLAN Notices, pages 144-153. ACM, October 1998. | |||
| A semantic approach to secure information flow | MPC '98 | ||
| K. Rustan M. Leino and Rajeev Joshi | |||
| In Johan Jeuring, editor, Mathematics of Program Construction: 4th International Conference, MPC'98, volume 1422 of Lecture Notes in Computer Science, pages 254-271. Springer, June 1998. | |||
| Superseded by SCP article, see above. | |||
| Recursive object types in a logic of object-oriented programs | ESOP '98 | ||
| K. Rustan M. Leino | |||
| In Chris Hankin, editor, Programming Languages and Systems: 7th European Symposium on Programming, ESOP'98, volume 1381 of Lecture Notes in Computer Science, pages 170-184. Springer, April 1998. | |||
| Superseded by NJC article, see above. | |||
| A logic of object-oriented programs | TAPSOFT '97 | ||
| Martin Abadi and K. Rustan M. Leino | |||
| In Michel Bidoit and Max Dauchet, editors, Theory and Practice of Software Development: Proceedings / TAPSOFT '97, 7th International Joint Conference CAAP/FASE, volume 1214 of Lecture Notes in Computer Science, pages 682-696. Springer, April 1997. | |||
| Superseded by chapter in Zohar Manna's Festschrift, see above. | |||
| Semantics of exceptions | PROCOMET '94 | ||
| K. Rustan M. Leino and Jan L. A. van de Snepscheut | |||
| In E.-R. Olderog, editor, Programming concepts, methods, and calculi (PROCOMET'94), volume A-56 of IFIP Transactions, pages 447-466. North-Holland, June 1994. | |||
| Toward reliable modular programs | PhD thesis | ||
| K. Rustan M. Leino | |||
| PhD thesis, California Institute of Technology, January 1995. Available as Technical Report Caltech CS-TR-95-03. | |||
| Multicomputer programming with Modula-3D | MS thesis | ||
| K. Rustan M. Leino | |||
| MS thesis, California Institute of Technology, June 1993. Available as Technical Report Caltech CS-TR-93-15. | |||
| K pinwheel schedulable numbers always have 3 friends, but need not have more | |||
| K. Rustan M. Leino | |||
| Undergraduate honors research, The University of Texas at Austin, May 1989. Unpublished manuscript. | |||
(other than older versions of the above)
| Automatic verification of textbook programs that use comprehensions | FTfJP 2007 | ||
| K. Rustan M. Leino and Rosemary Monahan | |||
| In proceedings of 9th workshop on Formal Techniques for Java-like Programs (FTfJP 2007), July 2007. | |||
| Using widenings to infer loop invariants inside an SMT solver, or: A theorem prover as abstract domain | WING 2007 | ||
| K. Rustan M. Leino and Francesco Logozzo | |||
| In proceedings of Workshop on Invariant Generation (WING 2007), June 2007. | |||
| Verified Software: Theories, Tools, and Experiments, VSTTE 2006, Workshop proceedings | MSR TR | ||
| K. Rustan M. Leino and Wolfram Schulte, editors | |||
| Technical Report MSR-TR-2006-117, Microsoft Research, August 2006. | |||
| The Spec# programming system: Challenges and directions | VSTTE 2005 | ||
| Mike Barnett, Robert DeLine, Bart Jacobs, Manuel Fähndrich, K. Rustan M. Leino, Wolfram Schulte, and Herman Venter | |||
| Position paper, Verified Software: Theories, Tools, Experiments (VSTTE 2005), October 2005. | |||
| Weakest-precondition of unstructured programs | PASTE 2005 | ||
| Mike Barnett and K. Rustan M. Leino | |||
| In Michael D. Ernst and Thomas P. Jensen, editors, Proceedings of the 2005 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis For Software Tools and Engineering, PASTE'05, pages 82-87. ACM, September 2005. | |||
| BoogiePL: A typed procedural language for checking object-oriented programs | MSR TR | ||
| Robert DeLine and K. Rustan M. Leino | |||
| Technical Report MSR-TR-2005-70, Microsoft Research, May 2005. | |||
| Inferring object invariants | AIOOL 2005 | ||
| Bor-Yuh Evan Chang and K. Rustan M. Leino | |||
| First international workshop on Abstract Interpretation of Object-Oriented Languages (AIOOL), 2005. | |||
| Modular verification of global module invariants in object-oriented programs | ETHZ TR | ||
| K. Rustan M. Leino and Peter Müller | |||
| Technical Report 459, ETH Zurich, Department of Computer Science, September 2004. | |||
| The Spec# Programming System: An overview | CASSIS 2004 | ||
| Mike Barnett, K. Rustan M. Leino, and Wolfram Schulte | |||
| In Gilles Barthe, Lilian Burdy, Marieke Huisman, Jean-Louis Lanet, Traian Muntean, editors, Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, volume 3362 of Lecture Notes in Computer Science, pages 49-69. Springer, March 2004. | |||
| On computing the fixpoint of a set of boolean equations | MSR TR | ||
| Viktor Kuncak and K. Rustan M. Leino | |||
| Technical Report MSR-TR-2003-08, Microsoft Research, December 2003. Also available as cs.PL/0408045, The Computing Research Repository (CoRR). |
|||
| Heap monotonic typestates | IWACO 2003 | ||
| Manuel Fähndrich and K. Rustan M. Leino | |||
| In proceedings of International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (IWACO), 2003. | |||
| An overview of JML tools and applications | FMICS 03 | ||
| Lilian Burdy, Yoonsik Cheon, David Cok, Michael D. Ernst, Joe Kiniry, Gary T. Leavens, K. Rustan M. Leino, and Erik Poll | |||
| Presented at Eighth International Workshop on Formal Methods for Industrial Critical Systems (FMICS 03), Trondheim, Norway, June 2003. A previous version appeared as University of Nijmegen Dept. of Computer Science technical report NIII-R0309, March 2003. | |||
| Superseded by STTT article, see above. | |||
| A SAT characterization of boolean-program correctness | SPIN 2003 | ||
| K. Rustan M. Leino | |||
| In Thomas Ball and Sriram K. Rajamani, editors, Model Checking Software, volume 2648 of Lecture Notes in Computer Science, pages 104-120. Springer, May 2003. | |||
| In-place refinement for effect checking | AVIS'03 | ||
| Viktor Kuncak and K. Rustan M. Leino | |||
| Presented at Second International Workshop on Automated Verification of Infinite-State Systems (AVIS'03), Warsaw, Poland, April 2003. | |||
| ESC/Java quick reference | SRC TN | ||
| Silvija Seres with K. Rustan M. Leino and James B. Saxe | |||
| Technical Note 2000-004, Compaq Systems Research Center, Palo Alto, CA, October 2000. | |||
| ESC/Java user's manual | SRC TN | ||
| K. Rustan M. Leino, Greg Nelson, and James B. Saxe | |||
| Technical Note 2000-002, Compaq Systems Research Center, Palo Alto, CA, October 2000. | |||
| JML: Notations and tools supporting detailed design in Java | OOPSLA'00 poster | ||
| Gary T. Leavens, K. Rustan M. Leino, Erik Poll, Clyde Ruby, and Bart Jacobs | |||
| In OOPSLA'00 Companion. ACM, 2000. Also available as Technical Report TR #00-15, Department of Computer Science, Iowa State University, August 2000. | |||
| Checking Java programs via guarded commands | FTfJP 1999 | ||
| K. Rustan M. Leino, James B. Saxe, and Raymie Stata | |||
| Technical Note 1999-002, Compaq Systems Research Center, Palo Alto, CA, May 1999. Also appeared in Formal Techniques for Java Programs, workshop proceedings. Bart Jacobs, Gary T. Leavens, Peter Muller, and Arnd Poetzsch-Heffter, editors. Technical Report 251, Fernuniversität Hagen, 1999. | |||
| An extended static checker for Modula-3 | CC'98 tool demo | ||
| K. Rustan M. Leino and Greg Nelson | |||
| In Kai Koskimies, editor, Compiler Construction: 7th International Conference, CC'98, volume 1383 of Lecture Notes in Computer Science, pages 302-305. Springer, April 1998. | |||
| A small dual-automorphic lattice with no involutory dual automorphism | SRC TN | ||
| K. Rustan M. Leino and Lyle Ramshaw | |||
| Technical Note 1997-008, Digital Equipment Corporation Systems Research Center, Palo Alto, CA, May 1997. | |||
| Checking object invariants | SRC TN | ||
| K. Rustan M. Leino and Raymie Stata | |||
| Technical Note 1997-007, Digital Equipment Corporation Systems Research Center, Palo Alto, CA, January 1997. | |||
| Ecstatic: An object-oriented programming language with an axiomatic semantics | FOOL 4 | ||
| K. Rustan M. Leino | |||
| In Proceedings of the Fourth International Workshop on Foundations of Object-Oriented Languages, January 1997. | |||
| Extensions to an object-oriented programming language for programming fine-grain multicomputers | Caltech CS TR | ||
| K. Rustan M. Leino | |||
| Technical Report Caltech-CS-TR-92-26, 1992. | |||
(other than conference and workshop presentations of papers above)
http://leino-online.com/games.
Acknowledgement: Ken Beckman made the videos in the second group above possible and lots of fun.
Some recordings, lyrics, and sheet music of original music is available at http://leino-online.com/music.
Last updated August 2007.