Where am I now, Really? A novel use of decompilation
(From 11:30 to 11:55 in COLESVILLE room)
Perl was created by a language enthusiast, so it is only fitting to finish the circle and show how computer-to-human translation is like human-to-human translation. More so that I think most people have hitherto appreciated.
Decompiling is often used in conjunction with recovering lost source code, or reverse-engineering code when we do not have access to the source code. It can be optionally used in Data::Printer for code references you have stashed in your data structures.
I will describe a novel use: in tracebacks, debuggers, and similar places where accurate position reporting is desired, even in the presence of string evaluation where the source code was created at runtime.
I'll show how line numbers are vague and ambiguous.
The module B::Deparse has been around a long time for Perl. I have extended that in B::DeparseTree so that it can be used at runtime to show you where you are. I will also demo its use in a real debugger, and promised to include a reference to at least one of the great virtues of programmer espoused by Larry Wall.
~ Rocky Bernstein
I am a long-time CPAN contributor, and open-source developer more generally.
Among the many different kinds of programs I have written are debuggers for 8 or so programming languages, including Perl, bash and GNU make.
I have worked at IBM Research, as a government contractor for NASA/Goddard (in climate studies), the Associated Press, a large financial institution, a university, and way too many startups.
I currently work in the Ethereum cryptocurrency space at ConsenSys.