Programming language design and implementation, program semantics, and program verification.
Robert "Corky" Cartwright's current research focuses on four topics:
• Developing extensions to Java, Scala, and Swift that foster developing parallel application programs that scale well as more cores are added to microprocessors. I an ardent advocate of a "mostly functional" approach to developing parallel programming applications.
• Developing ``smart'' programming environments that prove that type-safe programs are free of run-time errors. In essence, smart environments use static analysis to verify the preconditions for primitive program operations.
• Developing production-quality pedagogic programming environments for Java, Scala, and Swift using Rice undergraduates as the primary workforce. The DrJava and forthcoming DrScala environments are products of this research effort.
• Developing a programming language and supporting environment for developing implicit programs in which program parameters are dynamically adjusted by the language run-time in accord with an platform-dependent intent specification provided by the user. The intent typically focuses on minimizing or maximizing a platform-dependent measure such as energy usage or performance while meeting platform-independent accuracy or quality constraints. The results of some of this research are being integrated in the Rice undergraduate curriculum.