Contact: [first initial, middle initial, last name]@cs.washington.edu

CV: [pdf]
Google Scholar Author Page

Useful or interesting links:

Other sides of me:

About Me

I'm a third year PhD student interested primarily in improving software reliability by providing guarantees of interesting and useful properties of programs. I'm particularly interested in applying these techniques to parallel programs, operating system kernels, language runtimes, and security-critical code. So I study programming languages. I'm part of the programming languages and software engineering (PLSE) group at UW.

I'm currently working with Michael Ernst and Dan Grossman on a capability type system to prevent deadlock. The system uses static capabilities that are available for duration of a lock acquisition, and permit the further acquisition of specific additional locks. We are also using a variation on unique references that permit strong updates to part of a type (for example, which capability allows a particular lock to be acquired) while allowing aliasing at a less complete type (for example, that the referent is a lock, which may still be acquired by a thread holding no other locks).

I am also working with Matt Parkinson on a reference immutability type system for safe parallelism; with Todd Schiller on making dynamic contracts work for concurrent code; and with Sai Zhang and Werner Dietl on a type and effect system for preventing multi-threading errors particular to misuse of GUI frameworks.

In the past I was an undergrad at Brown University. While I was there I worked with Shriram Krishnamurthi and the Brown PLT group on several programming language and program analysis projects. I also worked with Maurice Herlihy on software and hardware transactional memory. In between all those things I TAed a number of courses and did internships in NetApp's filesystem group and the Solaris kernel group at Sun. After finishing undergrad I spent a bit over a year working on an operating system incubation project at Microsoft before starting at UW CSE.

Publications

I also maintain my Google Scholar Author Page. Note, however, that Google Citations makes it difficult to distinguish some things, like papers and TRs with the same title.

Refereed

  • Colin S. Gordon, Michael D. Ernst, and Dan Grossman. Static Lock Capabilities for Deadlock Freedom. In Proceedings of the 8th Workshop on Types in Language Design and Implementation (TLDI'12), Philadelphia, PA, USA. January 2012.
    [+abstract] [+bibtex] [acm | acm authorizer | pdf | tech report] [slides] [conference homepage]
  • Colin S. Gordon. Formal Semantics for Testing. In Off the Beaten Track Workshop (OBT'12), Philadelphia, PA, USA. January 2012. Position paper.
    [+abstract] [+bibtex] [pdf] [slides] [conference homepage | schedule]
  • Colin Gordon, Leo Meyerovich, Joel Weinberger, and Shriram Krishnamurthi. Composition with Consistent Updates for Abstract State Machines. In Proceedings of the 14th International Workshop on Abstract State Machines (ASM'07), Grimstad, Norway. June 2007.
    [+abstract] [+bibtex] [pdf] [proceedings]

Theses and Technical Reports

  • Colin S. Gordon, Michael D. Ernst, Dan Grossman. Static Lock Capabilities for Deadlock Freedom. Technical Report UW-CSE-11-10-01, Computer Science and Engineering, University of Washington, Seattle, WA, USA. October 2011.
    [+abstract] [+bibtex] [pdf ] [dept pdf | dept TRs]
  • Colin Stebbins Gordon. Type-Safe Stack Traversal for Garbage Collector Implementation. Brown University Senior Honors Thesis. May 2008. Undergraduate Thesis.
    [+abstract] [+bibtex] [pdf] [slides] [other honors theses]
  • Meyerovich, L.A., Weinberger, J.H.W., Gordon, C.S., Krishnamurthi, S.: ASM Relational Transducer Security Policies. Technical Report CS-06-12, Computer Science Department, Brown University, Providence, RI, USA. November, 2006.
    [+abstract] [+bibtex] [pdf ] [department page]
    This report is essentially an extended version of Composition with Consistent Updates for Abstract State Machines

Patents

  • Colin Stebbins Gordon, Pratap Vikram Singh, and Donald Alvin Trimmer. Merging Containers in a Multi-Container System. US Patent 7828201. Filed April, 2007, issued November 2010. Assigned to Network Appliance.
    [ Patent at USPTO ]
  • Colin Stebbins Gordon, Pratap Vikram Singh, and Donald Alvin Trimmer. Data Containerization for Reducing Unused Space in a File System. US Patent 7739312. Filed April, 2007, issued June 2010. Assigned to Network Appliance.
    [ Patent at USPTO ]

Unpublished Projects

Sadly not everything can make it to the presses.

  • Reducing the overhead of runtime instrumentation by running checks asynchronously (2010)
  • Automatic inference of documentation for useful code properties (2010)
  • Work towards a type system to check linearizability of lock-free data structure implementations (2008)
  • Using hardware transactional memory to reduce power consumption in embedded systems (2007-2008)
  • Dynamic rebalancing of software transactional memory contention management policies based on recent workload (2007)

Industry Experience

  • Microsoft: Technical Strategy Incubation - Intern, Program analysis work (Summer 2011)
  • Microsoft: Technical Strategy Incubation - Full Time, Kernel developer on an unannounced systems project. Worked on kernel debugger implementation, interrupt handling, post-mortem debugging, platform abstractions, all work interacting with other subsystems. (August 2008 - September 2009)
  • Sun Microsystems: Solaris Kernel Group - Intern, merged two processor grouping scheduler abstractions. (Summer 2007)
  • NetApp: Filesystems Group - Intern, designed, documented, and implemented special-purpose filesystem. Resulted in two patents, listed above. (Summer 2006)

Honors

Teaching

Interesting Readings