Christos Dimoulas

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

photo by GM

 Research    Teaching

O. Gierczak, L. Menon, C. Dimoulas and A. Ahmed. Gradually Typed Languages Should Be Vigilant! OOPSLA 2024.

C. Moy, C. Dimoulas and M. Felleisen. Effectful Software Contracts POPL 2024.

B. Greenman, M. Felleisen and C. Dimoulas. How Profilers Can Help Navigate Type Migration OOPSLA 2023.

L. Lazarek, B. Greenman, M. Felleisen and C. Dimoulas. How to Evaluate Blame for Gradual Types, Part 2 ICFP 2023.

B. Greenman, C. Dimoulas and M. Felleisen. Typed-Untyped Interactions: A Comparative Analysis. TOPLAS 2023.

C. Zhang, J.D. Hartline and C. Dimoulas. Karp: A Language for NP Reductions. PLDI 2022.

B. Greenman, L. Lazarek, C. Dimoulas and M. Felleisen. A Transient Semantics for Racket. <Programming> 2022.

L. Lazarek, B. Greenman, M. Felleisen and C. Dimoulas. How to Evaluate Blame for Gradual Types ICFP 2021.

S.-H. You, R.B. Findler and C. Dimoulas. Sound and Complete Concolic Testing for Higher-Order Functions. ESOP 2021.

L. Lazarek, A. King, S. Sundar, R.B. Findler and C. Dimoulas. Does Blame Shifting Work? POPL 2020.

E. Zigmond, S. Chong, C. Dimoulas, and S. Moore. Fine-Grained, Language-Based Access Control for Database-Backed Applications. <Programming> 2020.

B. Greenman, M. Felleisen, and C. Dimoulas. Complete Monitors for Gradual Types. OOPSLA 2019.

L. Waye, C. Dimoulas, and S. Chong. Whip: Higher-Order Contracts for Modern Services. ICFP 2017.

D. Patterson, J. Perconti, C. Dimoulas, and A. Ahmed. FunTAL: Reasonably Mixing a Functional Language with Assembly. PLDI 2017.

S. Moore, C. Dimoulas, R.B. Findler, M. Flatt, and S. Chong. Extensible Access Control with Authorization Contracts. OOPSLA 2016.

C. Dimoulas, M.S. New, R.B. Findler, and M. Felleisen. Oh Lord, Please Don't Let Contracts Be Misunderstood. ICFP 2016.

A. Askarov, S. Moore, C. Dimoulas, and S. Chong. Cryptographic Enforcement of Language-Based Information Erasure. CSF 2015.

S. Moore, C. Dimoulas, D. King, and S. Chong. Shill: A Secure Shell Scripting Language. OSDI 2014.

C. Dimoulas, S. Moore, A. Askarov, and S. Chong. Declarative Policies for Capability Control. CSF 2014.

T. S. Strickland, C. Dimoulas, T. Takikawa, and M. Felleisen. Contracts for First-Class Classes. TOPLAS 2013.

C. Dimoulas, R. B. Findler, and M. Felleisen. Option Contracts. OOPSLA 2013.

A. Takikawa, T. S. Strickland, C. Dimoulas, S. Tobin-Hochstadt, and M. Felleisen. Gradual Typing for First-Class Classes. OOPSLA 2012.

C. Dimoulas, S. Tobin-Hochstadt, and M. Felleisen. Complete Monitors for Behavioral Contracts. 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. POPL 2012.

C. Dimoulas and M. Felleisen. On contract satisfaction in a higher-order world. TOPLAS 2011.

C. Dimoulas, R. B. Findler, C. Flanagan, and M. Felleisen. Correct blame for contracts: No more scapegoating. POPL 2011.

C. Dimoulas, R. Pucella, and M. Felleisen. Future contracts. PPDP 2009.

C. Dimoulas and M. Wand. The higher-order aggregate update problem. VMCAI 2009.

 Teaching    Research

Winter 2024: CS 396/496: History of Programming Languages.
Fall 2023: CS 321: Programming Languages.
Spring 2023: CS 396/496: Dynamics of Programming Languages.
Winter 2023: CS 321: Programming Languages.
Fall 2022: CS 396/496: Special Topics in PL: Corpus Studies Meets the Rational Programmer.
Spring 2022: CS 396/496: Dynamics of Programming Languages.
Winter 2022: CS 321: Programming Languages.
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.