From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: weis Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id MAA12794 for caml-redistribution; Fri, 28 Feb 1997 12:28:41 +0100 (MET) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id AAA02915 for ; Fri, 28 Feb 1997 00:15:36 +0100 (MET) Received: from haven.uchicago.edu (root@haven.uchicago.edu [128.135.12.3]) by nez-perce.inria.fr (8.7.6/8.7.3) with ESMTP id AAA07901 for ; Fri, 28 Feb 1997 00:15:33 +0100 (MET) Received: from midway.uchicago.edu (root@midway.uchicago.edu [128.135.12.12]) by haven.uchicago.edu (8.8.5/8.8.5) with ESMTP id RAA09342 for ; Thu, 27 Feb 1997 17:15:12 -0600 (CST) Received: from kimbark.uchicago.edu (root@kimbark.uchicago.edu [128.135.12.52]) by midway.uchicago.edu (8.8.5/8.8.3) with ESMTP id RAA14840 for ; Thu, 27 Feb 1997 17:14:09 -0600 (CST) Received: from kimbark.uchicago.edu (4208@localhost [127.0.0.1]) by kimbark.uchicago.edu (8.8.5/8.8.3) with ESMTP id RAA18638 for ; Thu, 27 Feb 1997 17:14:07 -0600 (CST) Message-Id: <199702272314.RAA18638@kimbark.uchicago.edu> To: caml-list@inria.fr Subject: ML extension language Date: Thu, 27 Feb 1997 17:14:06 -0600 From: Lyn A Headley Sender: weis dear caml-list, I'm hoping, as a bachelor's project for my computer science degree, to implement an extension language which is a dialect of ML. If you aren't familiar with extension languages, an extension language is meant for making applications customizable to a high degree. The usual procedure is that one writes the core of an application in C/C++ and then adds new primitive functions and types (created by the user) to the extension language. Then much of the coding for the application is done in the extension language and many opportunities are presented to the user to radically change the innards of the application. Emacs Lisp is probably the most famous extension language, but there do exist languages which can be used with any application, such as lua(http://www.inf.puc-rio.br/~roberto/lua.html), and elk(http://www-rn.informatik.uni-bremen.de/software/elk/, and (kind-of) python(http://www.python.org), and tcl. A main advantage of extension languages is that they enable a high degree of portability, thereby facilitating the availability of (in this case) functional programming tools. More specifically, instead of requiring the user to install an interpreter at their site to be able to run their application, the application *is* an interpreter for its own private language. Another nice thing about ex langs is that they increase efficiency, by allowing time-critical functions to be coded in a low-level, compiled language. But the best thing is to allow for highly customizable applications. I realize that CAML already contains facilities for creating new primitives in C, but the main difference is that in a caml program, the main program is the interpreter for the caml virtual machine, whereas in an extension language control resides in the application. Do people see this as worthwhile project, and one that is fairly different from existing facilities? It is interesting that *all* existing extension languages are weakly typed, and it would be neat to see what a polymorphically typed one could offer. Thus far, I plan to use almost the entire caml-light runtime system, and write a different compiler (in C) for a simpler, but (hopefully!) still powerful language. I just wanted to post this to see what comments could be heard from the caml light community. Lyn Headley