Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: How does Perl do it it's thing?

by bikeNomad (Priest)
on Aug 07, 2001 at 04:51 UTC ( #102661=note: print w/replies, xml ) Need Help??

in reply to How does Perl do it it's thing?

Perl, just like any other compiler or interpreter, knows how to read your programs and convert them into a more machine-friendly form for execution. It uses a number of techniques to do this, including using a table-driven parser that is built by a program called YACC (or Bison) by reading a high-level description of the Perl syntax. Here's an excerpt from that description that handles OR (||) and AND (&&) operations (from perly.y):

expr : expr ANDOP expr { $$ = newLOGOP(OP_AND, 0, $1, $3); } | expr OROP expr { $$ = newLOGOP($2, 0, $1, $3); } | argexpr %prec PREC_LOW ;

This process builds a so-called "parse tree" where each of the operations is represented by a data structure that points to other data structures.

In a compiler that expected to output to machine code, this would be approximately the same, but it would be followed by a pass that would read the parse tree and output machine code. In Perl, instead of making machine code for execution by a real processor, a somewhat higher-level representation is made that is then interpreted and executed by a little program inside Perl.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://102661]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2017-05-23 04:57 GMT
Find Nodes?
    Voting Booth?