Title: Duplication and Partial Evaluation to Implement Reflective Languages (Extended Abstract) Authors: Kenichi Asai, Satoshi Matsuoka, and Akinori Yonezawa Organization: Department of Information Science, Faculty of Science, The University of Tokyo, Address: 7-3-1 Hongou, Bunkyo-Ku, Tokyo, 113, Japan phone : +81-3-5800-6913 e-mail : {asai,matsu,yonezawa}@is.s.u-tokyo.ac.jp Abstract Ichisugi et al. have presented a reflective language Rscheme, in which user programs can redefine the functions comprising the interpreter which is actually executing the programs at one level above. As we can redefine (parts of) the interpreter, we can extend or change the behavior of the interpreter in various ways. By documenting the protocols and behavior of the functions, we can provide users a reflective language with high flexibility and extensibility. In general, how to implement such a flexible language, however, is not obvious, and the structure of Rscheme is complicated. The purpose of our present work is to give a general structure which enables such flexible reflective languages. In fact, we show that it can be constructed by the combination of three simple concepts: a meta-circular interpreter, duplication of the metalevel, and partial evaluation. We illustrate this method using a reflective language called Black, but it is general enough to be applied to other reflective languages.