Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^2: Questions wanted for Pugs/Perl6

by BrowserUk (Patriarch)
on Feb 22, 2005 at 07:20 UTC ( [id://433276]=note: print w/replies, xml ) Need Help??


in reply to Re: Questions wanted for Pugs/Perl6
in thread Questions wanted for Pugs/Perl6

Without trying to speak for autrijus, could it be that his expertise lies in Haskell and and not C/make etc.

It also strikes me that given the impressive pace of his amazing work on Pugs, that maybe using a language with built in memory management; sensible & powerful built-in datatypes; coherent, cross-platform libraries; allows him to concentrate on the details of the task at hand rather than futzing with malloc()/free() et al.

C maybe the only game in town for the level of cross-platform support required by Parrot (though I think that there is another contender for that also), but for the Perl6 compiler--and certainly the first cut of it--is there any reason not to use Haskell?

Especially given that:

GHC compiles Haskell code either by using an intermediate C compiler (GCC), or by generating native code on some platforms.

Which in my ignorance I take to mean that GHC, and therefore Haskell, and therefore Pugs should run anywhere GCC runs.

If true, that would be a huge stepping stone. Especially if it is possible to intercept the generated C sources and compile and distribute them separately? I guess that there would dependancies upon some GHC libraries involved that might complicate that though?

Even though generated sources can be a pain for humans to deal with, it might provide a starting point for a non-GHC dependant "native" build of the Perl6 compiler?


Examine what is said, not who speaks.
Silence betokens consent.
Love the truth but pardon error.

Replies are listed 'Best First'.
Re^3: Questions wanted for Pugs/Perl6
by stvn (Monsignor) on Feb 22, 2005 at 14:49 UTC
    It also strikes me that given the impressive pace of his amazing work on Pugs, that maybe using a language with built in memory management; sensible & powerful built-in datatypes; coherent, cross-platform libraries; allows him to concentrate on the details of the task at hand rather than futzing with malloc()/free() et al

    Functional languages are also known to be well adept for parsing, and since parsing perl is considered to be difficult at best and impossible at worst (except for perl of course) and I expect perl6 is better (but still difficult), that using Haskell was much easier than doing C/Parrot.

    C maybe the only game in town for the level of cross-platform support required by Parrot (though I think that there is another contender for that also),

    What is the "other contender" other than C? (Not that I don't believe you, just curious)

    Even though generated sources can be a pain for humans to deal with, it might provide a starting point for a non-GHC dependant "native" build of the Perl6 compiler?

    Personally I was wondering (after skiming some of the Haskell code) that maybe it could be bootstrapped as the parser and emit Parrot code, rather than try to fiddle with any generated C. Personally, I think a Haskell based perl6 compiler which emits Parrot code would be really really really cool.

    -stvn
      What is the "other contender" other than C?

      Given it's immaturity and the learning curve it has, it wasn't a contender when Parrot was started, but I think that with the advent of a GCC backend running on Linux, Digital Mars D, shows considerable promise for future cross-platform projects.

      It has everything you need from C, low-level access to the hardware including inline assembler support, fast optimising compiler etc. It also has built-in memory management & garbage collection, objects, strings, hashes, types, contracts, templates, mixins, etc. etc. and can link directly to C code without requiring "wrappers". Or, all the good bits from C++ without the anachronisms or complexity.

      I was wondering ... that maybe it could be bootstrapped as the parser and emit Parrot code

      From what I've seen and understood, it almost certainly could produce Parrot code directly. The only downside of that is the 40 MB download of GHC.

      Then again, if it gets competent enough that it could be used to write the P6 compiler in P6, you could end up with it generating a P6 compiler that could compile itself?. Such things have been done before.


      Examine what is said, not who speaks.
      Silence betokens consent.
      Love the truth but pardon error.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://433276]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2024-04-24 10:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found