1/******************************************************************* 2 * 3 * A Lisp interpreter, written in Prolog 4 * 5 * (lisp_interpreter.pl) 6 * 7 * Douglas'' Notes: 8 * 9 * (c) Douglas Miles, 2017 10 * 11 * The program is a *HUGE* common-lisp compiler/interpreter. It is written for YAP/SWI-Prolog . 12 * 13 * This file: implements a small amount of EVAL for bootstrapping the compiler 14 * 15 * 16 * Neil''s Notes: 17 * 18 * (c) Neil Smith, 2001 19 * 20 * This program is a small interpreter for Lisp. It was written 21 * in LPA Prolog v3.6, running under Windows. It should be fairly 22 * easy to convert it to other Prologs. 23 * 24 * It supports real Lisp syntax, excessive brackets and all. You don't 25 * need to terminate input with a full stop. It also understands 26 * 'x for (quote x) and #'func for (function func) 27 * 28 * Variables are lexically scoped, except where defined as special. 29 * 30 * read_words code from "The Craft of Prolog", R.A.O'Keefe 31 * lisp evaluator from "Lisp" (3rd ed), Winston & Horn. 32 * 33 *******************************************************************/ 34 35:- module(interp, []).