<?xml version="1.0" encoding="windows-1252"?>
<node id="663485" title="Re^3: Perl Cannot Be Parsed: A Formal Proof (meh)" created="2008-01-21 19:14:05" updated="2008-01-21 14:14:05">
<type id="11">
note</type>
<author id="144870">
adamk</author>
<data>
<field name="doctext">
&lt;i&gt;I suspect he also knew the business about rand(). But with his many hours of real life experience trying to statically parse Perl, he focused on the stronger proof -- the one that would give him the most information about what he was up against in creating PPI.&lt;/i&gt;&lt;br&gt;
&lt;br&gt;
You pretty much nailed it exactly.&lt;br&gt;
&lt;br&gt;
From a practical perspective there's about 5-10 things that, in various combinations, make Perl impossible to parse.&lt;br&gt;
&lt;br&gt;
However, there's a big difference between what we believe and what we can prove.&lt;br&gt;
&lt;br&gt;
And so from the perspective of knowing &lt;b&gt;absolutely&lt;/b&gt; that Perl 5 can't be parsed, the Halting Problem approach was by far the most straight forward way to do it (at least to a layman like me).&lt;br&gt;
&lt;br&gt;
This realization let me finally put the possibility of a complete parser out of my mind, and once I wasn't distracted by completeness any more, I had the chance to evaluate and actually define what "good enough" would mean for a "Perl 5 parser".&lt;br&gt;
&lt;br&gt;
And that perspective on the problem was the one that took the code in the direction of the working solution.</field>
<field name="root_node">
663393</field>
<field name="parent_node">
663480</field>
</data>
</node>
