Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Reports, Documentation, and Standards
  4. On Complete Completion using Types and Weights
 
report

On Complete Completion using Types and Weights

Gvero, Tihomir  
•
Kuncak, Viktor  
•
Kuraj, Ivan  
Show more
2012

Developing modern software applications typically involves composing functionality from existing libraries. This task is difficult because libraries may expose many methods to the developer. To help developers in such scenarios, we present a technique that synthesizes and suggests valid expressions of a given type at a given program point. As the basis of our technique we use type reconstruction for lambda calculus terms in long normal form. We introduce a succinct representation for type judgements that merges types into equivalence classes to reduce the search space, then reconstructs any desired number of solutions on demand. Furthermore, we introduce a method to rank solutions based on weights derived from a corpus of code. We implemented the algorithm and deployed it as a plugin for the Eclipse IDE for Scala. We show that the techniques we incorporated greatly increase the effectiveness of the approach. Our evaluation benchmarks are derived from real code and are made available for future benchmarking of code synthesis driven by types.

  • Files
  • Details
  • Metrics
Type
report
Author(s)
Gvero, Tihomir  
•
Kuncak, Viktor  
•
Kuraj, Ivan  
•
Piskac, Ruzica  
Date Issued

2012

Total of pages

11

Subjects

Program Synthesis

•

Type Inhabitation

Written at

EPFL

EPFL units
LARA  
Available on Infoscience
December 14, 2012
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/87449
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés