META 2012

Third International Valentin Turchin Workshop on Metacomputation

 

 

July 5-9, 2012, Pereslavl-Zalessky (120 km to the north-east from Moscow), Russia

Home
Call For Papers
Submissions
Important Dates
News
Invited Speakers
Papers
Program
Registration
Visa Support
Place
Contacts
Photos
History
Sponsors

 

 

 

 

Invited Speaker

  • Neil D. Jones, Professor Emeritus of the University of Copenhagen, DIKU, Denmark

    Obfuscation by Partial Evaluation of Distorted Interpreters (slides)

    Joint work with Roberto Giacobazzi and Isabella Mastroeni.

    Abstract. How to construct a general program obfuscator? We present a novel approach to automatically generating obfuscated code P2 from any program P whose source code is given. Start with a (program-executing) interpreter interp for the language in which P is written. Then "distort" interp so it is still correct, but its specialization P2 w.r.t. P is transformed code that is equivalent to the original program, but harder to understand or analyze. Potency of the obfuscator is proved with respect to a general model of the attacker, modeled as an approximate (abstract) interpreter. A systematic approach to distortion is to make program P obscure by transforming it to P2 on which (abstract) interpretation is incomplete. Interpreter distortion can be done by making residual in the specialization process sufficiently many interpreter operations to defeat an attacker in extracting sensible information from transformed code. Our method is applied to: code flattening, data-type obfuscation, and opaque predicate insertion. The technique is language independent and can be exploited for designing obfuscating compilers.

    Based on PEPM 2012 talk and paper.

  • Robert Glück, DIKU, Denmark

    Bootstrapping Compiler Generators from Partial Evaluators (slides)

    Abstract. This talk shows that bootstrapping of compiler generators from program specializers is a viable alternative to the third Futamura projection. To practically validate the technique, a novel partial evaluation-based compiler generator was designed and implemented for a recursive flowchart language. Three-step bootstrapping was found to be faster and to produce the same compiler generator that Gomard and Jones produced two decades ago by double self-application. Compiler-generator bootstrapping has distinct properties that are not present in the classic three Futamura projections, such as the ability to turn a specializer into a compiler generator in one step without self-application. Up to now, the approach of hand-writing compiler generators has only been used to avoid difficulties when specializing strongly-typed languages, not as a first step towards compiler-generator bootstrapping.

    Based on PSI 2011 talk and paper.