Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: Equivalency of Code

by stvn (Monsignor)
on Feb 07, 2005 at 11:43 UTC ( [id://428634]=note: print w/replies, xml ) Need Help??


in reply to Re: Equivalency of Code
in thread Equivalency of Code

This was actually my first instinct too, here was the output I got from testing with B::Concise.

stvn% perl -MO=Concise -e '$x++' 5 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v ->3 4 <1> preinc[t2] vK/1 ->5 - <1> ex-rv2sv sKRM/1 ->4 3 <#> gvsv[*x] s ->4 -e syntax OK stvn% perl -MO=Concise -e '$x += 1' 6 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v ->3 5 <2> add[t2] vKS/2 ->6 - <1> ex-rv2sv sKRM/1 ->4 3 <#> gvsv[*x] s ->4 4 <$> const[IV 1] s ->5 -e syntax OK stvn% perl -MO=Concise -e '$x = $x + 1' 8 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v ->3 7 <2> sassign vKS/2 ->8 5 <2> add[t3] sK/2 ->6 - <1> ex-rv2sv sK/1 ->4 3 <#> gvsv[*x] s ->4 4 <$> const[IV 1] s ->5 - <1> ex-rv2sv sKRM*/1 ->7 6 <#> gvsv[*x] s ->7 -e syntax OK
You can see that the x += 1 and x = x + 1 are similar, but not enough to call equivalent. Besides I am not sure that opcode equivalence would actually work since perl performs optimizations on the opcode tree during compilation which you would not want to include in your comparisons.

-stvn

Replies are listed 'Best First'.
Re^3: Equivalency of Code
by blazar (Canon) on Feb 08, 2005 at 09:18 UTC
    This was actually my first instinct too, here was the output I got from testing with B::Concise.
    Indeed, it was just a suggestion along the lines of "just look there", you may be interested in it. Actually one of the most interesting points is exactly that it allows you to see the optimizations that the perl compiler makes...

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://428634]
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-03-28 20:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found