PWLMI#4: Partial Computation of Programs (Futamura, 1983)
Informazioni sull'evento
Informazioni sull'evento
Torna Papers We Love Milano! In questo nuovo meeting aperto a persone con ogni tipo di background, Edoardo Vacchi di Red Hat presenterà uno dei paper che è alla base di GraalVM, PyPy e altri JIT. Rivedremo brevemente cos'è un compilatore e che cos'è un interprete, e scopriremo come, con un partial evaluator, sia possibile trasformare un interprete in un compilatore senza interventi manuali !
Durante la presentazione introdurremo brevemente anche uno dei paper di GraalVM e Truffle: Practical Partial Evaluation for High-Performance Dynamic Language Runtimes (Wuerthinger et al, 2017).
Short Bio. Edoardo Vacchi ha conseguito il dottorato di ricerca presso UniMi con una tesi su linguaggi e compilatori. In UniCredit R&D ha lavorato su un engine di stream processing. Attualmente è Senior Software Engineer in Red Hat, dove lavora al progetto Kogito e al rule engine Drools.
Full-Text of the Paper. Full Text on Kyoto University Archive
This paper attempts to clarify the difference between partial and ordinary computation. Partial computation of a computer program is by definition "specializing a general program based upon its operating environment into a more efficient program". It also shows the usefulness of partial computation. Finally, the formal theory of partial computation, technical problems in making it practical, and its future research problems are discussed.
The main purpose of this paper is to make partial computation effectiveness widely known. However, two new results are also reported:
- a partial computation compiler, and
- a tabulation technique to terminate partial computation.