Black(ID:3576/bla001)Scheme-based reflective language, which allows user programs to access and modify its metalevel interpreter (or the language semantics) from within the same language framework People: Related languages
References: handle I/O-type side-effects using preactions, and reports our experiment of using the partial evaluator as a compiler for the reflective language Black we are designing. Black is a Scheme-based reflective language, which allows user programs to access and modify its metalevel interpreter (or the language semantics) from within the same language framework. Because the semantics may change during computation, it is impossible to compile using a conventional Scheme compiler. To cope with this flexibility, we implemented an online partial evaluator, and specialized a Scheme meta-circular interpreter with respect to a modified interpreter to obtain an efficient version of the modified interpreter. The resulting interpreter turns out to be quite efficient in that it is almost identical to the original Scheme interpreter, except that it correctly reflects the modification made by users. |