{"id":"https://openalex.org/W4404987967","doi":"https://doi.org/10.1145/3704864","title":"Pantograph: A Fluid and Typed Structure Editor","display_name":"Pantograph: A Fluid and Typed Structure Editor","publication_year":2025,"publication_date":"2025-01-07","ids":{"openalex":"https://openalex.org/W4404987967","doi":"https://doi.org/10.1145/3704864"},"language":"en","primary_location":{"id":"doi:10.1145/3704864","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3704864","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3704864","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5029039631","display_name":"Jacob Prinz","orcid":"https://orcid.org/0000-0002-2702-9319"},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jacob Prinz","raw_affiliation_strings":["University of Maryland at College Park, College Park, USA"],"raw_orcid":"https://orcid.org/0000-0002-2702-9319","affiliations":[{"raw_affiliation_string":"University of Maryland at College Park, College Park, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5041397385","display_name":"Henry Blanchette","orcid":"https://orcid.org/0000-0002-9415-0944"},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Henry Blanchette","raw_affiliation_strings":["University of Maryland at College Park, College Park, USA"],"raw_orcid":"https://orcid.org/0000-0002-9415-0944","affiliations":[{"raw_affiliation_string":"University of Maryland at College Park, College Park, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5075217645","display_name":"Leonidas Lampropoulos","orcid":"https://orcid.org/0000-0003-0269-9815"},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Leonidas Lampropoulos","raw_affiliation_strings":["University of Maryland at College Park, College Park, USA"],"raw_orcid":"https://orcid.org/0000-0003-0269-9815","affiliations":[{"raw_affiliation_string":"University of Maryland at College Park, College Park, USA","institution_ids":["https://openalex.org/I66946132"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I66946132"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.00061538,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"9","issue":"POPL","first_page":"802","last_page":"831"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9988999962806702,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9968000054359436,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8301104307174683},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.6848735809326172},{"id":"https://openalex.org/keywords/generalization","display_name":"Generalization","score":0.543843150138855},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5126392245292664},{"id":"https://openalex.org/keywords/selection","display_name":"Selection (genetic algorithm)","score":0.48600801825523376},{"id":"https://openalex.org/keywords/tree","display_name":"Tree (set theory)","score":0.48012518882751465},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4678384065628052},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.4377084970474243},{"id":"https://openalex.org/keywords/face","display_name":"Face (sociological concept)","score":0.42469415068626404},{"id":"https://openalex.org/keywords/tree-structure","display_name":"Tree structure","score":0.4152348041534424},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4085378348827362},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.24342671036720276}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8301104307174683},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.6848735809326172},{"id":"https://openalex.org/C177148314","wikidata":"https://www.wikidata.org/wiki/Q170084","display_name":"Generalization","level":2,"score":0.543843150138855},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5126392245292664},{"id":"https://openalex.org/C81917197","wikidata":"https://www.wikidata.org/wiki/Q628760","display_name":"Selection (genetic algorithm)","level":2,"score":0.48600801825523376},{"id":"https://openalex.org/C113174947","wikidata":"https://www.wikidata.org/wiki/Q2859736","display_name":"Tree (set theory)","level":2,"score":0.48012518882751465},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4678384065628052},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.4377084970474243},{"id":"https://openalex.org/C2779304628","wikidata":"https://www.wikidata.org/wiki/Q3503480","display_name":"Face (sociological concept)","level":2,"score":0.42469415068626404},{"id":"https://openalex.org/C163797641","wikidata":"https://www.wikidata.org/wiki/Q2067937","display_name":"Tree structure","level":3,"score":0.4152348041534424},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4085378348827362},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.24342671036720276},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C144024400","wikidata":"https://www.wikidata.org/wiki/Q21201","display_name":"Sociology","level":0,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C36289849","wikidata":"https://www.wikidata.org/wiki/Q34749","display_name":"Social science","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3704864","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3704864","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:2411.16571","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2411.16571","pdf_url":"https://arxiv.org/pdf/2411.16571","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"doi:10.1145/3704864","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3704864","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/4","score":0.7099999785423279,"display_name":"Quality Education"}],"awards":[{"id":"https://openalex.org/G8775549910","display_name":"Collaborative Research: SHF: Medium: Efficient and Trustworthy Proof Engineering","funder_award_id":"2107206","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":27,"referenced_works":["https://openalex.org/W33252908","https://openalex.org/W188179498","https://openalex.org/W1963557108","https://openalex.org/W1979290264","https://openalex.org/W1995673715","https://openalex.org/W2010645028","https://openalex.org/W2029079408","https://openalex.org/W2045255985","https://openalex.org/W2045313089","https://openalex.org/W2145373440","https://openalex.org/W2185335208","https://openalex.org/W2284690928","https://openalex.org/W2489483223","https://openalex.org/W2508181318","https://openalex.org/W2568721247","https://openalex.org/W2780807426","https://openalex.org/W2912949875","https://openalex.org/W2950504429","https://openalex.org/W2963218353","https://openalex.org/W3173591235","https://openalex.org/W3187876763","https://openalex.org/W4229897353","https://openalex.org/W4294845048","https://openalex.org/W4388448420","https://openalex.org/W4390604815","https://openalex.org/W6893096097","https://openalex.org/W6910965676"],"related_works":["https://openalex.org/W2063514875","https://openalex.org/W2071459461","https://openalex.org/W2093885745","https://openalex.org/W2351266481","https://openalex.org/W2132547887","https://openalex.org/W2516987005","https://openalex.org/W2907786475","https://openalex.org/W2963447120","https://openalex.org/W4289082820","https://openalex.org/W2092152400"],"abstract_inverted_index":{"Structure":[0],"editors":[1],"operate":[2],"directly":[3],"on":[4],"a":[5,51,86,94,117,153,184,201],"program\u2019s":[6],"syntactic":[7],"tree":[8],"structure.":[9],"At":[10],"first":[11],"glance,":[12],"this":[13,82,112],"allows":[14],"for":[15,88,122,167],"the":[16,57,100,160,163],"exciting":[17],"possibility":[18],"that":[19,43,125,165],"such":[20,73],"an":[21,176],"editor":[22,177],"could":[23,28],"enforce":[24,47],"correctness":[25],"properties:":[26],"programs":[27,65],"be":[29],"well-formed":[30],"and":[31,130,142,158,181,196],"sometimes":[32],"even":[33],"well-typed":[34],"by":[35,140],"construction.":[36],"Unfortunately,":[37],"traditional":[38,202],"approaches":[39],"to":[40,45,63,78,103,134,192],"structure":[41,89,97],"editing":[42,90],"attempt":[44],"rigidly":[46],"these":[48,149],"properties":[49],"face":[50],"seemingly":[52],"fundamental":[53],"problem,":[54],"known":[55],"in":[56,186],"literature":[58],"as":[59,175],"viscosity.":[60],"Making":[61],"changes":[62,74],"existing":[64],"often":[66],"requires":[67],"temporarily":[68],"breaking":[69],"program":[70,96,193],"structure\u2014but":[71],"disallowing":[72],"makes":[75],"it":[76],"difficult":[77],"edit":[79,105],"programs!":[80],"In":[81],"paper,":[83],"we":[84,115,147,182,188],"present":[85],"scheme":[87],"which":[91,187],"always":[92],"maintains":[93],"valid":[95],"without":[98],"sacrificing":[99],"fluidity":[101],"necessary":[102],"freely":[104,135],"programs.":[106],"Two":[107],"key":[108],"pieces":[109,137],"help":[110],"solve":[111],"puzzle:":[113],"first,":[114],"develop":[116],"novel":[118],"generalization":[119],"of":[120,138,155,162],"selection":[121,129],"tree-based":[123],"structures":[124],"properly":[126],"generalizes":[127],"text-based":[128],"editing,":[131],"allowing":[132],"users":[133],"rearrange":[136],"code":[139],"cutting":[141],"pasting":[143],"one-hole":[144,150],"contexts;":[145],"second,":[146],"type":[148,156],"contexts":[151],"with":[152,194],"category":[154],"diffs":[157],"explore":[159],"metatheory":[161],"system":[164],"arises":[166],"maintaining":[168],"well-typedness":[169],"systematically.":[170],"We":[171],"implement":[172],"our":[173],"approach":[174],"called":[178],"Pantograph":[179,195],",":[180],"conduct":[183],"study":[185],"successfully":[189],"taught":[190],"students":[191],"compare":[197],"their":[198],"performance":[199],"against":[200],"text":[203],"editor.":[204]},"counts_by_year":[],"updated_date":"2026-08-26T07:47:46.906454","created_date":"2025-10-10T00:00:00"}
