On Thu, Jan 19, 2012 at 2:24 PM, Gabriel Dos Reis wrote:
> ...
> Bill Page writes:
> |
> | I think there are very good reasons to consider at least Record, Union
> | and Mapping as constructs that are essentially free of conventions -
> | at least from the point of view of the intended application:
> | expressing mathematical algorithms.
>
> From mathematics and semantics point of view, Record, Mapping, Unions
> are just _conventional_ uses of dependent sigma-types and product-types.
> They are no less conventional than saying that the language has a
> distinguished name 'Rep' that can bound in a domain capsule.  It isn't
> logically tenable to pretend the contrary.
>

OK. Although I am inclined to turn that around and talk about Record
as a limit, Union as a co-limit and Mapping/evaluation as
exponentiation first and then consider building a language inside this
category so that product-types and dependent types become expressions
in an internal language. I guess I am claiming that a large part of
such as language should not be viewed as just convention but rather
more or less determined by the context.

I don't think I can elaborate much more on this point of view for the
time being. I hope it suffices to say that I am not really disagreeing
with you. Some conventions are necessary in any language.

---

Mostly unrelated, but since this thread is specifically about language
and there is one programming language that has attracted my attention
several times lately, I wanted to ask if anyone has looked seriously
at Google's new language Go:

http://golang.org/

http://scienceblogs.com/goodmath/2009/11/googles_new_language_go.php

If I was thinking about choosing a potentially mainstream language for
a computer algebra project then I would think very seriously about Go
as an alternative, (e.g. rather than Python or Haskell ;)

There are a few new ideas here that might make sense even in the
context of Axiom.  I especially like the treatment of functions in Go.
Go has function signatures with both named input and named output
parameters. The closest we could come to that is defining functions
with a signature like:

    f : Record(x:Integer, ... ) -> Record(y:Float, ... )

But reference to x and y in the body of the function would be
idiosyncratic to say the least.

Also in Go (like in Axiom) object-oriented programming is a derived
concept supported by more fundamental constructs. But Go takes this
much further. One can attach functions as methods to any type.  And Go
has interfaces too that are pretty close to categories.  And as a
minimalist language I think it surely exceeds Aldor in it's brevity.

Regards,
Bill Page.

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to