Ph.D. student
Email: ji2@rice.edu

My advisor is Walid Taha.
Multi-stage programming is a general framwork for type-safe program generation and metaprogramming. I'm interested in its basic metatheory and type systems, and also in using it to write verifiable (or just less buggy), low-level programs.
Exact real-number computations: Many computer applications require manipulation of real numbers, such as cyber-physical systems, graphics and computational geometry, and statistics. The conventional choice for implementing these systems is floating point numbers, which has the nasty problem of round-off errors. Determining the magnitude of the error that accumulates, and the damage it does, is often an extremely challenging and time-consuming task. Can we, instead, compute real numbers without fixing the precision, and still get reasonable semantics and performance?
Yun Zhu, Edwin Westbrook, Jun Inoue, Alexandre Chapoutot, Cherif Salama, Marisa Peralta, Travis Martin, Walid Taha, Marcia O'Malley, Robert Cartwright, Aaron Ames, and Raktim Bhattacharya. Mathematical equations as executable models of mechanical systems. In ICCPS '10: Proceedings of the 1st ACM/IEEE International Conference on Cyber-Physical Systems, 2010. [ paper ]
Jun Inoue. Reasoning about staged programs. Master's thesis, Rice University, May 2010. Superseded by the technical report for "Reasoning About Multi-Stage Programs", below. [ thesis ]
Edwin Westbrook, Mathias Ricken, Jun Inoue, Yilong Yao, Tamer Abdelatif, and Walid Taha. Mint: Java multi-stage programming using weak separability. In PLDI '10: Proceedings of the ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation, 2010. [ paper, technical report ]
Angela Yun Zhu, Jun Inoue, Marisa L. Peralta, Walid Taha, Marcia K. O'Malley, and Dane Powell. Implementing haptic feedback environments from high-level descriptions. In ICESS 2009: Proceedings of The 6th International Conference on Embedded Software and Systems, 2009. [ paper ]
Jun Inoue and Walid Taha. ESOP 2012, to appear. Reasoning about multi-stage programs. This is an updated version of my Master's thesis; the technical report supersedes the thesis. [ paper, technical report ]
Jun Inoue. Delimited Assumptions: How to Supercompile with Staging. Unpublished manuscript. [ literate MetaOCaml source ]