OCAMl a more natural extension language for python?

Discussion in 'Python' started by Jelle Feringa // EZCT / Paris, Jan 17, 2005.

  1. After reading about extending python with C/Fortran in the excellent Python
    Scripting for Computational Science book by Hans Langtangen, I'm wondering
    whether there's not a more pythonic way of extending python. And frankly I
    think there is: OCAML

    Fortunately there is already a project up and running allowing you to extend
    python with OCAMl: http://pycaml.sourceforge.net/

    Since I haven't got actual experience programming CAML I'd like to speculate
    that OCAML would be a very pythonic way of extending python: its
    open-source, object oriented, as fast as C, and ! garbage collecting!

    Would making an effort integrating python & CAML not be very worthwhile?
    I think an effort such as Joe Strouts python2c would be more relevant to a
    language as CAMl since its conceptually more closer to python (how could you
    automate programming memory allocation for instance)

    So my question is: wouldn't there be some serious synergy in bringing python
    & CAML closer together?

    ##of course this is speculation, I'm not informed well
    ##enough to make an educated guess

    Interested in hearing your thoughts about this matter!

    Cheers, Jelle.
    Jelle Feringa // EZCT / Paris, Jan 17, 2005
    #1
    1. Advertising

  2. Jelle Feringa // EZCT / Paris

    Duncan Booth Guest

    Jelle Feringa // EZCT / Paris wrote:

    > After reading about extending python with C/Fortran in the excellent
    > Python Scripting for Computational Science book by Hans Langtangen,
    > I'm wondering whether there's not a more pythonic way of extending
    > python. And frankly I think there is: OCAML
    >


    There is an even more pythonic way to extend (or embed) python. Have you
    looked at Pyrex?

    http://nz.cosc.canterbury.ac.nz/~greg/python/Pyrex/
    Duncan Booth, Jan 17, 2005
    #2
    1. Advertising

  3. Jelle Feringa // EZCT / Paris

    Ville Vainio Guest

    >>>>> "Jelle" == Jelle Feringa // EZCT / Paris <> writes:

    Jelle> After reading about extending python with C/Fortran in the
    Jelle> excellent Python Scripting for Computational Science book
    Jelle> by Hans Langtangen, I'm wondering whether there's not a
    Jelle> more pythonic way of extending python. And frankly I think
    Jelle> there is: OCAML

    For many tasks the point of "extending" python is to gain access to
    libraries that have a C/C++ API. Extensions that merely provide a
    faster way to do something are much rarer.

    --
    Ville Vainio http://tinyurl.com/2prnb
    Ville Vainio, Jan 17, 2005
    #3
  4. Hi !

    OCAML is very complementary at Python :

    unreadable vs readable
    functionnel vs procedural/POO/etc.
    compiled vs interpreted (or compil JIT)
    very fast vs mean velocity
    hard to learn vs easy to easy to learn


    Yes, OCAML is very complementary, too much, much too, complementary at
    Python...

    But, C is not complementary to Python (in the same state of mind).



    And, what do you think of... Erlang ?


    @-salutations
    --
    Michel Claveau
    Do Re Mi chel La Si Do, Jan 17, 2005
    #4
  5. Jelle Feringa // EZCT / Paris

    Guest

    Jelle Ferringa wrote:

    >Since I haven't got actual experience programming CAML I'd like to

    speculate
    >that OCAML would be a very pythonic way of extending python: its
    >open-source, object oriented, as fast as C, and ! garbage collecting!


    The open source g95 Fortran 95 compiler is already usable and will be
    officially released this year. Fortran and C are comparable in speed,
    and if one uses allocatable arrays rather than pointers, memory leaks
    should not occur. Fortran 2003 supports OOP with inheritance, and a few
    F95 compilers already have this functionality.

    >That's depending on how you compare; I find OCAML quite readable

    compared to C / Fortran .

    Have you ever used Fortran 90 or 95?

    I don't use OCAML, so I looked at some OCAML code to multiply matrices
    at
    http://shootout.alioth.debian.org/benchmark.php?test=matrix&lang=ocaml&id=0&sort=cpu
    from the Computer Language Shootout . To create a matrix the OCAML code
    is

    7 let mkmatrix rows cols =
    8 let count = ref 1 and last_col = cols - 1
    9 and m = Array.make_matrix rows cols 0 in
    10 for i = 0 to rows - 1 do
    11 let mi = m.(i) in
    12 for j = 0 to last_col do mi.(j) <- !count; incr count done;
    13 done;

    In Python with Numeric it's just

    x = zeros([nrow,ncol],Float)

    and in Fortran 90/95 it's just

    real, allocatable :: x:),:)
    allocate (x(nrow,ncol))

    There appears not to be a built-in function for matrix multiplication
    in OCAML. There is in Python with Numeric or Numarray or Fortran 90/95.
    For problems where the main data structures are arrays, OCAML seems to
    be considerably more low-level than Python with Numeric/Numarray or
    Fortran 90/95. Also, there exists a vast computational infrastructure
    in Fortran and C (see http://www.netlib.org). Does OCAML have this?
    , Jan 17, 2005
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Bryan

    ocaml extension

    Bryan, Jun 16, 2004, in forum: Python
    Replies:
    0
    Views:
    313
    Bryan
    Jun 16, 2004
  2. Steven Bird
    Replies:
    1
    Views:
    385
    tool69
    May 26, 2007
  3. Xah Lee
    Replies:
    4
    Views:
    561
    Xah Lee
    Jan 25, 2009
  4. Prateek
    Replies:
    1
    Views:
    340
    Alejandro E. Ciniglio
    Aug 14, 2009
  5. Xah Lee
    Replies:
    4
    Views:
    161
    Xah Lee
    Jan 25, 2009
Loading...

Share This Page