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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE) s. 2154 - 2164
Hlavní autoři: Zhang, Xing, Hu, Zhenjiang
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