[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: iScheme
From: |
Jim Blandy |
Subject: |
Re: iScheme |
Date: |
09 Oct 2000 10:56:05 -0500 |
Have you read Guy Steele's classic papers, "Lambda: The Ultimate
Imperative", and "Lambda: The Ultimate Declarative"? One of them
suggests using Scheme as a UNCOL ("UNiversal Compiler-Oriented
Language"). They're fun reading, in either case.
They're both MIT AI Lab memos. I don't have pointers to on-line
copies.
Keisuke Nishida <address@hidden> writes:
> Hello,
>
> Hmm, could I do this as an academic research? Is there anything similar
> yet? This might be something fun to work on ;)
>
> -- Kei
>
>
> Scheme as an Intermediate Language
> ==================================
> Updated: 2000-10-07
>
> Scheme is a simple but powerful language that allows any programming
> structures due to the standard support of first-class continuations. On
> the other hand, many typical structures can be implemented efficiently
> without using continuations. This paper introduces an intermediate
> language iScheme, which is built on the top of the standard Scheme,
> while allowing the compiler to produce efficient executable code. Any
> programming language can be translated into iScheme and evaluated or
> compiled on any Scheme systems with great portability or efficiency.
>
> * Background
>
> Continuations is powerful but inefficient. I don't want to use it. We
> could add more primitives to Scheme, but it would break portability and
> beauty of Scheme code. I want to produce a dirty but efficiently
> compilable intermediate language that works on any Scheme systems.
> Any high level language, including R5RS, could be translated into
> iScheme, and then compiled into an efficient code, or interpreted with
> a portable package. iScheme is a language for compilers, not for humans.
>
> * Mechanism
>
> iScheme defines several primitives in addition to the standard Scheme
> primitives. All iScheme primitives must be able to implemented in terms
> of the standard primitives. Any languages are translated into iScheme
> at first, and then interpreted or compiled. An iScheme compiler may
> compile iScheme primitives directly rather than compiling the portable
> implementation of iScheme primitives.
>
> * iScheme Primitives
>
> ** Immediate return from a function, local exit from a loop, etc.
>
> ** Dynamic scope support
>
> ** Multithreding support
>
> ** Additional data types, such as keywords, fluids, etc.
>
> ** Add anything you want.
>
>
> _______________________________________________
> Guile-devel mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/guile-devel