axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Axisp news


From: Martin Rubey
Subject: Re: [Axiom-developer] Axisp news
Date: 27 Jun 2007 08:58:03 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

Dear Stephen,

Just to make sure: I hope Ralf and myself have not discouraged you from your
work on SPAD.  However, I think it would be more promising to try to make SPAD
converge towards the Aldor language:

* Aldor (the language) is relatively well understood - thanks for recalling the
  article by Poll and Thompson, by the way

* Aldor (the language!) proved useful (even if not fully implemented) and
  sufficiently stable

Maybe it is not as "sexy" to try to implement a language specification, but I
assure you, it would help a lot if you made some progress here.  Personally I
made the experience that I do not have the talent to design a new language, but
using Aldor, I sometimes see how one could go on.  (To make this more precise:
I really want to work with Tuples as first class citizens, for example.  Also,
I would like to be able to check -- some sort of -- equality of domains at
times, even if impossible in general.)

Maybe I can propose some projects:

* Obviously, the most important thing for now would be to make types truly
  first class objects.  I guess that this is quite hard, though.  

* Possibly it is easier to make Axiom understand signatures as they are
  possible in Aldor.  For example, it would be wonderful if we could use the
  signatures used in our species project directly in Aldor.  Possibly SPAD
  doesn't understand curried signatures at the domain/package level:  in
  src/species.as.nw we have

<<dom: CharacteristicSpecies>>=
CharacteristicSpecies(n:Integer)(L:LabelType): CombinatorialSpecies L == add {
        Rep == SetSpecies L;
        import from Rep;
        nn: I == machine n;
        <<implementation: CharacteristicSpecies>>
}
@

but in SPAD / Axiom we cannot use it: 


(1) -> )sh CharacteristicSpecies
 CharacteristicSpecies n: ACInteger  is a domain constructor
 Abbreviation for CharacteristicSpecies is CHARACT 
 This constructor is exposed in this frame.
 Issue )edit csspecies.as to see algebra source code for CHARACT 

------------------------------- Operations --------------------------------
 CharacteristicSpecies n is a domain constructor.
 Abbreviation for CharacteristicSpecies is CHARACT 
 This constructor is exposed in this frame.
 Issue )edit csspecies.as to see algebra source code for CHARACT 

------------------------------- Operations --------------------------------

(1) -> generatingSeries()$(CharacteristicSpecies(2)(ACINT))
 
   Category, domain or package constructor CharacteristicSpecies2 is 
      not available.
(1) -> generatingSeries()$(CharacteristicSpecies(2, ACINT))
 
   The constructor CharacteristicSpecies takes 1 argument and you have 
      given  2  .


* Finally, maybe you could make SPAD accept arbitrary conditions for
  conditional exports.  I.e., the following should keep working when commenting
  out the second condition.  (Currently SPAD accepts only conditions like "A
  has B" and "A is B", connected with "and", "or", "not".

)abb package TEST Test
Test(R: Field): with
    if R has Finite -- and (one?(size()$R)) 
    then foo: Integer -> Integer
    else bar: Integer -> Integer

  == add

    if R has Finite -- and (one?(size()$R)) 
    then foo n == n
    else bar n == n



Maybe one of these projects is for you,

Martin





reply via email to

[Prev in Thread] Current Thread [Next in Thread]