Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Pugs Apocryphon 1 out; technical questions wanted

by pernod (Chaplain)
on Feb 26, 2005 at 17:54 UTC ( [id://434798]=note: print w/replies, xml ) Need Help??


in reply to Pugs Apocryphon 1 out; technical questions wanted

I read the first Apocryphon and want to ask some questions that will expose my ignorance of the Perl 6 design process, and the fact that my compiler theory is somewhat rusty:

How does Abstract Syntax Trees (AST) work? Why are they useful? Is it possible to explain these in sentences with words containing two syllables or less?

I am so impressed by the work being done on Pugs. Keep up the good work!

pernod
--
Mischief. Mayhem. Soap.

  • Comment on Re: Pugs Apocryphon 1 out; technical questions wanted

Replies are listed 'Best First'.
Re^2: Pugs Apocryphon 1 out; technical questions wanted
by audreyt (Hermit) on Feb 26, 2005 at 18:38 UTC
    Thanks for your words of encouragement. :) You can see a simple AST by running:
    % perl -MO=Concise -e 'print "Hello, $world!"' a <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v ->3 9 <@> print vK ->a 3 <0> pushmark s ->4 - <1> ex-stringify sK/1 ->9 - <0> ex-pushmark s ->4 8 <2> concat[t3] sKS/2 ->9 6 <2> concat[t2] sK/2 ->7 4 <$> const[PV "Hello, "] s ->5 - <1> ex-rv2sv sK/1 ->6 5 <#> gvsv[*world] s ->6 7 <$> const[PV "!"] s ->8
    Compare it with Pugs (using r317 on svn.openfoundry.org, with some indenting):
    % pugs -c -e 'print "Hello, $world!"' { Statements [( App "&prefix:print" [App "&prefix:~" [App "&infix:~" [Val (VStr "Hello, ") ,App "&infix:~" [Var "$world" ,Val (VStr "!") ] [] ] [] ] [] ] [] ,"<interactive>" (line 1, column 1) )] }

    That should give you a pretty good idea of what an AST is. :)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2024-04-19 12:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found