Christos Dimoulas

Computer Science Department
McCormick School of Engineering and Applied Sciences
Northwestern University
Office: Mudd 3504
Email: chrdimo@northwestern.edu

photo by GM

 Research    Teaching

B. Greenman, L. Lazarek, C. Dimoulas and M. Felleisen. A Transient Semantics for Racket. International Conference on the Art, Science, and Engineering of Programming (<Programming>), 2021.

L. Lazarek, B. Greenman, M. Felleisen and C. Dimoulas. How to Evaluate Blame for Gradual Types? International Conference on Functional Programming (ICFP), 2021.

S.-H.. You, R.B. Findler and C. Dimoulas. Sound and Complete Concolic Testing for Higher-Order Functions. European Symposium on Programming (ESOP), 2021.

L. Lazarek, A. King, S. Sundar, R.B. Findler and C. Dimoulas. Does Blame Shifting Work? Symposium on Principles of Programming Languages (POPL), 2020.

E. Zigmond, S. Chong, C. Dimoulas, and S. Moore. Fine-Grained, Language-Based Access Control for Database-Backed Applications. International Conference on the Art, Science, and Engineering of Programming (<Programming>), 2020.

B. Greenman, M. Felleisen, and C. Dimoulas. Complete Monitors for Gradual Types. Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2019.

L. Waye, C. Dimoulas, and S. Chong. Whip: Higher-Order Contracts for Modern Services. International Conference on Functional Programming (ICFP), 2017.

D. Patterson, J. Perconti, C. Dimoulas, and A. Ahmed. FunTAL: Reasonably Mixing a Functional Language with Assembly. Conference on Programming Languages Design and Implementation (PLDI), 2017.

S. Moore, C. Dimoulas, R.B. Findler, M. Flatt, and S. Chong. Extensible Access Control with Authorization Contracts. Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2016.

C. Dimoulas, M.S. New, R.B. Findler, and M. Felleisen. Oh Lord, Please Don't Let Contracts Be Misunderstood. International Conference on Functional Programming (ICFP), 2016.

A. Askarov, S. Moore, C. Dimoulas, and S. Chong. Cryptographic Enforcement of Language-Based Information Erasure. Computer Security Foundations Symposium (CSF), 2015.

S. Moore, C. Dimoulas, D. King, and S. Chong. Shill: A Secure Shell Scripting Language. Symposium on Operating Systems Design and Implementation (OSDI), 2014.

C. Dimoulas, S. Moore, A. Askarov, and S. Chong. Declarative Policies for Capability Control. Computer Security Foundations Symposium (CSF), 2014.

T. S. Strickland, C. Dimoulas, T. Takikawa, and M. Felleisen. Contracts for First-Class Classes. Transactions on Programming Languages and Systems (TOPLAS), 2013.

C. Dimoulas, R. B. Findler, and M. Felleisen. Option Contracts. Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2013.

A. Takikawa, T. S. Strickland, C. Dimoulas, S. Tobin-Hochstadt, and M. Felleisen. Gradual Typing for First-Class Classes. Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2012.

C. Dimoulas, S. Tobin-Hochstadt, and M. Felleisen. Complete Monitors for Behavioral Contracts. European Symposium on Programming (ESOP), 2012.

C. Klein, J. Clements, C. Dimoulas, C. Eastlund, M. Felleisen, M. Flatt, J. McCarthy, J. Rafkind, S. Tobin-Hochstadt, and R. B. Findler. Run Your Research. Symposium on Principles of Programming Languages (POPL), 2012.

C. Dimoulas and M. Felleisen. On contract satisfaction in a higher-order world. Transactions on Programming Languages and Systems (TOPLAS), 2011.

C. Dimoulas, R. B. Findler, C. Flanagan, and M. Felleisen. Correct blame for contracts: No more scapegoating. Symposium on Principles of Programming Languages (POPL), 2011.

C. Dimoulas, R. Pucella, and M. Felleisen. Future contracts. Conference on Principles and Practice of Declarative Programming (PPDP), 2009.

C. Dimoulas and M. Wand. The higher-order aggregate update problem. Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI), 2009.

 Teaching    Research

Fall 2021: CS 396/496: Special Topics in PL: Proof Techniques for the Semantics Engineer.
Spring 2021: CS 393: Software Construction.
Winter 2021: CS 396/496: Dynamics of Programming Languages.
Fall 2020: CS 396/496: Special Topics in PL: Expressiveness of Programming Languages.
Winter 2020: CS 396/496: Special Topics in PL: Contracts and their Pragmatics.
Fall 2019: CS 393: Software Construction.
Spring 2019: EECS 396/496: Dynamics of Programming Languages.
Winter 2019: EECS 396/496: Special Topics in PL: History of Programming Languages.
Fall 2018: EECS 397: Software Construction.
Spring 2018: EECS 397: Software Construction.
Winter 2018: EECS 496: Programming Languages Seminar.
Fall 2016: CS252r: Advanced Topics in Programming Languages.