TY - GEN
T1 - Programming-by-Example with Nested Examples
AU - Katz, Tomer
AU - Peleg, Hila
N1 - Publisher Copyright: © 2023 IEEE.
PY - 2023
Y1 - 2023
N2 - As program synthesizers become integrated into IDEs, programmers combine synthesized code and manually-written code within the same project. When documenting the provenance of synthesized code, this can result in a larger segment of example-specified code encompassing a smaller one. In this state, the programmer can decide to re-run the synthesizer, either to refactor the code or to automatically correct manually-written code. State of the art Programming by Example synthesizers cannot handle this nested specification: synthesis will only consider the outer-most block, discarding any code or additional specification inside. Moreover, the outer-most scope contains less specifications, but describes more functionality, which can easily result in the synthesizer either timing out or overfitting. To address this information loss we propose a technique that can be used to re-synthesize code from previously documented nested specifications, preserving the information that the internal specifications contain. We then evaluated our implementation on 12 benchmarks based on SyGus competition benchmarks, and show that the technique allows the user to re-synthesize larger code segments while adding fewer examples compared to just using the specification from the outer-most block.
AB - As program synthesizers become integrated into IDEs, programmers combine synthesized code and manually-written code within the same project. When documenting the provenance of synthesized code, this can result in a larger segment of example-specified code encompassing a smaller one. In this state, the programmer can decide to re-run the synthesizer, either to refactor the code or to automatically correct manually-written code. State of the art Programming by Example synthesizers cannot handle this nested specification: synthesis will only consider the outer-most block, discarding any code or additional specification inside. Moreover, the outer-most scope contains less specifications, but describes more functionality, which can easily result in the synthesizer either timing out or overfitting. To address this information loss we propose a technique that can be used to re-synthesize code from previously documented nested specifications, preserving the information that the internal specifications contain. We then evaluated our implementation on 12 benchmarks based on SyGus competition benchmarks, and show that the technique allows the user to re-synthesize larger code segments while adding fewer examples compared to just using the specification from the outer-most block.
UR - http://www.scopus.com/inward/record.url?scp=85178579956&partnerID=8YFLogxK
U2 - 10.1109/VL-HCC57772.2023.00053
DO - 10.1109/VL-HCC57772.2023.00053
M3 - منشور من مؤتمر
T3 - Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC
SP - 280
EP - 282
BT - Proceedings - 2023 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2023
T2 - 2023 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2023
Y2 - 2 October 2023 through 6 October 2023
ER -