Is IronScheme interpreted or compiled? Is this possible due to the optimization of the .NET Framework?

In IronPython in Action, the author claims that IronPython, unlike CPython, benefits from certain optimizations in both JIT and the structure itself that CPython cannot use. Consequently, IronPython is potentially faster than CPython, especially for multi-threaded scenarios.

Does IronScheme get this kind of optimization? Is it an interpreter (not a compiler) and is it an interpreter because of the nature of Lisp, what needs to be interpreted in order to provide the flexibility of Lisp? If it's an interpreter, can it still benefit from jitter optimization?

+5
source share
1 answer

Like IronPython (well, the source with the DLR, which I based IronScheme on), IronScheme will compile down to the IL level.

In addition, there are no interpretable parts in IronScheme (unless you cause the runtime character to be viewed at runtime), since I pretty much ripped everything out of my DLR branch because I didn't use or reduce footprint code (according to my estimates , I used only about 25% of DLR, where the rest were more likely oriented to Python).

, IL , ironscheme.boot.dll Reflector.NET( IL, # ). ​​IronScheme. , , .

, JIT, , DLR, , , IronPython, ( 18 , , IronPython , IronScheme , Scheme, "" Python ).

, .NET IronScheme . , vectors, byte-vectors, binary-ports hash-tables, .NET, ; object[], byte[], Stream Hashtable , .

+3

All Articles