Jun Inoue (井上 純)

Email: jun.lambda@gmail.com, jun.inoue@aist.go.jp

I currently work at the National Institute of Advanced Industrial Science and Technology (AIST) in Japan.

GPG public key (valid till Dec 2016, inclusive)

Research Interests

Hybrid system modeling: in embedded systems, it is often necessary to model the physical environment a program operates in, alongside the program itself. Many factors make it necessary in such models to mix continuous evolution, governed by differential equations, with discrete events (like state changes in the controller or collision). Consistently specifying the order in which such events happen, or what happens when an order cannot be discerned (think of three balls simultaneously colliding at one point) is challenging. I'm interested in the theory and implementation of programming languages that have well-defined semantics in those cases, and/or filter out such cases by type systems or other forms of static analysis.

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), efficient programs.



Jun Inoue, Oleg Kiselyov, and Yukiyoshi Kameyama. The Next Stage of Staging.  In Proceedings of the 17th Programming and Programming Language Workshop, 2015.  [ paper ]

Jun Inoue. Supercompiling with Staging.  In Proceedings of the Fourth International Valentin Turchin Workshop on Metacomputation, 2014.  [ paper, MetaOCaml source ]

Riyadh Baghdadi, Albert Cohen, Serge Guelton, Sven Verdoolaege, Jun Inoue, Tobias Grosser, Georgia Kouveli, Alexey Kravets, Anton Lokhmotov, Cedric Nugteren, Fraser Waters, and Alastair F. Donaldson. PENCIL: Towards a platform-neutral compute intermediate language for DSLs. In WOLFHPC 2012: 2nd Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing, 2012. [ paper ]

Jun Inoue and Walid Taha. Reasoning about multi-stage programs. In ESOP 2012: Proceedings of the 22nd European Symposium on Programming, 2012. This is an updated, extended version of my Master's thesis; the technical report supersedes the thesis. [ paper, technical report ]

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 ]

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. Reasoning about staged programs. Master's thesis, Rice University, May 2010. Extended and superseded by the Ph.D. thesis below. [ thesis ]

Jun Inoue. Reasoning about staged programs. Ph.D. thesis, Rice University, April 2012. Same material as the technical report for "Reasoning About Multi-Stage Programs", ESOP 2012, but with more detailed explanations. [ thesis ]


Sundials/ML - a feature-complete OCaml binding to the Sundials suite of numerical solvers by Hindmarsh et al. at the Center for Applied Scientific Computing, Lawrence Livermore National Laboratory.  The binding is joint work with Timothy Bourke and Marc Pouzet.

SigScheme -  a complete implementation of the (originally) R5RS scheme language, including hygienic macros.  This is the primary implementation and extension language of the uim input manager.  Joint work with Kazuki Ohta, Kengo Yamamoto, and numerous contributors.