[Aldor-l] representation of SingleInteger in Axiom
Ralf Hemmecke
ralf at hemmecke.de
Mon Jun 23 03:35:56 EDT 2008
Thank you, Peter,
that seems to help a bit. But in particular for SingleInteger... isn't
there a difference in the representation? Aldor uses 32 bit and Axiom's
SingleInteger has the same representation as ,uhmmm, Lisp. Is there a
different runtime system behind Builtin, then?
Ralf
On 06/23/2008 09:20 AM, Peter Broadbery wrote:
> On Sun, Jun 22, 2008 at 10:29 PM, Ralf Hemmecke <ralf at hemmecke.de> wrote:
>> To whoever knows about the history of the aldor-axiom connection,
>>
>> Important in the build of the aldor-axiom connection are the files
>> axlit.as and axextend.as that can be found at
>>
>> https://svn.origo.ethz.ch/algebraist/trunk/aldor/lib/libax0/
>>
>> I roughly understand why they exist. What I don't understand is their
>> actual contents. It seems clear to me that Literal and Generator have to
>> be made available and that I should be able to use [...], i.e., the
>> function "bracket" to construct lists. But what I don't understand is,
>> for example, why
>>
>> Bit ==> Boolean;
>> extend SingleInteger : with {
>> ...
>> =: (%, %) -> Bit;
>> <: (%, %) -> Bit;
>> } == add {
>> Rep ==> SInt;
>> asBool(x) ==> x pretend Boolean;
>> ...
>> import {
>> ...
>> SIntEQ: (SInt, SInt) -> Bool;
>> SIntLT: (SInt, SInt) -> Bool;
>> ...
>> } from Builtin;
>> ...
>> (a: %) = (b: %): Bit == asBool(SIntEQ(rep a, rep b));
>> (a: %) < (b: %): Bit == asBool(SIntLT(rep a, rep b));
>> ...
>> }
>>
>> appears in axextend.as. Axiom's SingleInteger already exports
>> IntegerNumberSystem, which clearly should also contain = and <.
>>
>
> Quick answer - inlining - the definitions enable aldor to inline the
> functions when they are used. If they were not available, the
> generated code would have to call out to the axiom definitions.
>
> Peter
More information about the Aldor-l
mailing list