Towards Bidirectional Live Programming for Incomplete Programs
Bidirectional live programming not only allows software developers to see continuous feedback on the output as they write the program, but also allows them to modify the program by directly manipulating the output, so that the modified program can get the output that was directly manipulated. Despit...
Uloženo v:
| Vydáno v: | 2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE) s. 2154 - 2164 |
|---|---|
| Hlavní autoři: | , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
ACM
01.05.2022
|
| Témata: | |
| ISSN: | 1558-1225 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | Bidirectional live programming not only allows software developers to see continuous feedback on the output as they write the program, but also allows them to modify the program by directly manipulating the output, so that the modified program can get the output that was directly manipulated. Despite the appealing of existing bidirectional live programming systems, there is a big limitation: they cannot deal with incomplete programs where code blanks exist in the source programs. In this paper, we propose a framework to support bidirectional live programming for incomplete programs, by extending the output value structure, introducing hole binding, and formally defining bidirectional evaluators that are well-behaved. To illustrate the usefulness of the framework, we realize the core bidirectional evaluations of incomplete programs in a tool called Bidirectional Preview. Our experimental results show that our extended back-ward evaluation for incomplete programs is as efficient as that for complete programs in that it is only 21 ms slower on a program with 10 holes than that on its full program, and our extended forward evaluation makes no difference. Furthermore, we use quick sort and student grades, two nontrivial examples of incomplete programs, to demonstrate its usefulness in algorithm teaching and program debugging. |
|---|---|
| AbstractList | Bidirectional live programming not only allows software developers to see continuous feedback on the output as they write the program, but also allows them to modify the program by directly manipulating the output, so that the modified program can get the output that was directly manipulated. Despite the appealing of existing bidirectional live programming systems, there is a big limitation: they cannot deal with incomplete programs where code blanks exist in the source programs. In this paper, we propose a framework to support bidirectional live programming for incomplete programs, by extending the output value structure, introducing hole binding, and formally defining bidirectional evaluators that are well-behaved. To illustrate the usefulness of the framework, we realize the core bidirectional evaluations of incomplete programs in a tool called Bidirectional Preview. Our experimental results show that our extended back-ward evaluation for incomplete programs is as efficient as that for complete programs in that it is only 21 ms slower on a program with 10 holes than that on its full program, and our extended forward evaluation makes no difference. Furthermore, we use quick sort and student grades, two nontrivial examples of incomplete programs, to demonstrate its usefulness in algorithm teaching and program debugging. |
| Author | Zhang, Xing Hu, Zhenjiang |
| Author_xml | – sequence: 1 givenname: Xing surname: Zhang fullname: Zhang, Xing email: zhangstar@stu.pku.edu.cn organization: Peking University,Key Laboratory of High Confidence Software Technologies, MoE School of Computer Science – sequence: 2 givenname: Zhenjiang surname: Hu fullname: Hu, Zhenjiang email: huzj@pku.edu.cn organization: Peking University,Key Laboratory of High Confidence Software Technologies, MoE School of Computer Science |
| BookMark | eNo9jktLw0AUhUdRsK1du3CTP5A6dx6ZzEbQ4qMQaBd1XeZxp4wkmTIJiv_eiOLmfIvvcDhzctGnHgm5AboCEPKOS6CU8tUPQcszstSqngTlmjGAczIDKesSGJNXZD4M71O7ElrPyP0-fZrsh-Ix-pjRjTH1pi2a-IHFLqdjNl0X-2MRUi42vUvdqcXxXw3X5DKYdsDlHxfk7flpv34tm-3LZv3QlIYpOU45veBOoLUSnDJB--A0D1QzxUD6KqCx1FhuhasYrbxTgk8erDdMYs0X5PZ3NyLi4ZRjZ_LXQSstKJP8G4MMSpM |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IH CBEJK RIE RIO |
| DOI | 10.1145/3510003.3510195 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP) 1998-present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Education Computer Science |
| EISBN | 9781450392211 1450392210 |
| EISSN | 1558-1225 |
| EndPage | 2164 |
| ExternalDocumentID | 9794025 |
| Genre | orig-research |
| GroupedDBID | -~X .4S .DC 123 23M 29O 5VS 6IE 6IF 6IH 6IK 6IL 6IM 6IN 8US AAJGR AAWTH ABLEC ADZIZ AFFNX ALMA_UNASSIGNED_HOLDINGS APO ARCSS AVWKF BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO EDO FEDTE I-F I07 IEGSK IJVOP IPLJI M43 OCL RIE RIL RIO RNS XOL |
| ID | FETCH-LOGICAL-a275t-a22113c4ebb51c7af9dfc93f0927215d6feab0ab3b4c6206dc74393f1bda25e83 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 6 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000832185400174&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 27 02:28:29 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a275t-a22113c4ebb51c7af9dfc93f0927215d6feab0ab3b4c6206dc74393f1bda25e83 |
| PageCount | 11 |
| ParticipantIDs | ieee_primary_9794025 |
| PublicationCentury | 2000 |
| PublicationDate | 2022-May |
| PublicationDateYYYYMMDD | 2022-05-01 |
| PublicationDate_xml | – month: 05 year: 2022 text: 2022-May |
| PublicationDecade | 2020 |
| PublicationTitle | 2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE) |
| PublicationTitleAbbrev | ICSE |
| PublicationYear | 2022 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| SSID | ssj0006499 ssj0002871777 |
| Score | 2.2477183 |
| Snippet | Bidirectional live programming not only allows software developers to see continuous feedback on the output as they write the program, but also allows them to... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 2154 |
| SubjectTerms | bidirectional evaluation Codes Debugging direct manipulation Education hole bindings hole closures live programming Programming Software Software algorithms Software engineering |
| Title | Towards Bidirectional Live Programming for Incomplete Programs |
| URI | https://ieeexplore.ieee.org/document/9794025 |
| WOSCitedRecordID | wos000832185400174&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV09b8IwED0B6tCJFqj6LQ8dG8CxHcdLh1ZFHRBioBUbsp2LxFCo-Pr9PZtAO3TpkkSJZEWX5N69y7s7gIfMmZLiBp1ILWUic2kTS0iSeMd1YbyTeVT5fgz1aJRPp2Zcg8djLQwiRvEZdsNh_JdfLP02pMp6hl4ewug61LXO9rVax3xKiPxja7vKC2cUyletfLhUPaFCIlt0w56HYRK_ZqlEKBk0_3cTZ9D5qclj4yPanEMNFy1oHoYysOobbYUxzJVkow1PkyiKXbPn-R66Yt6PDcnDhbWCMOuTFmMUuDJyFEFdTjH04dK6A--D18nLW1INTCD7arWhLdE54SU6p7jXtjRF6Y0o-yYloqeKrETr-tYJJ32W9rPCBzoiSu4KmyrMxQU0FssFXgJLjTKFVNI5oaXCQJSJ2HHk1qc5aryCdjDN7GvfE2NWWeX679M3cJqGsoEoFLyFxma1xTs48bvNfL26jw_yG0xYnUA |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LT8JAEJ4gmugJBYxve_Bood1Ht3vxoJFgrIQDGm5kX008CIaHv9_ZpaAHL17apk02zbSdb77pNzMAN5mWJcYNImaCsZjlTMUKkSQ2OhVWGs3yoPJ9K8RgkI_HcliD220tjHMuiM9cxx-Gf_l2ZlY-VdaV-PIgRu_ALmeMJOtqrW1Gxcf-obld5YczDOarZj4p413KfSqbdvw-9eMkfk1TCWDSa_zvNg6h_VOVFw23eHMENTdtQmMzliGqvtKmH8RciTZacDcKsthFdP--Bq-Q-YsK9HF-LS_N-sDFIgxdI3QVXl-OUfTm0qINr73H0UM_rkYmoIUFX-IWCR01zGnNUyNUKW1pJC0TSZDqcZuVTulEaaqZyUiSWeMJCS1TbRXhLqfHUJ_Opu4EIiK5tIwzralg3HmqjNQudakyJHfCnULLm2byue6KMamscvb36WvY749eiknxNHg-hwPiiwiCbPAC6sv5yl3Cnvlavi_mV-GhfgOrH6CH |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2022+IEEE%2FACM+44th+International+Conference+on+Software+Engineering+%28ICSE%29&rft.atitle=Towards+Bidirectional+Live+Programming+for+Incomplete+Programs&rft.au=Zhang%2C+Xing&rft.au=Hu%2C+Zhenjiang&rft.date=2022-05-01&rft.pub=ACM&rft.eissn=1558-1225&rft.spage=2154&rft.epage=2164&rft_id=info:doi/10.1145%2F3510003.3510195&rft.externalDocID=9794025 |