{"id":"https://openalex.org/W4367185264","doi":"https://doi.org/10.1145/3591300","title":"Prompting Is Programming: A Query Language for Large Language Models","display_name":"Prompting Is Programming: A Query Language for Large Language Models","publication_year":2023,"publication_date":"2023-06-06","ids":{"openalex":"https://openalex.org/W4367185264","doi":"https://doi.org/10.1145/3591300"},"language":"en","primary_location":{"id":"doi:10.1145/3591300","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591300","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591300","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":["crossref","datacite"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3591300","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5054904120","display_name":"Luca Beurer-Kellner","orcid":"https://orcid.org/0000-0001-7734-3106"},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Luca Beurer-Kellner","raw_affiliation_strings":["ETH Zurich, Switzerland"],"raw_orcid":"https://orcid.org/0000-0001-7734-3106","affiliations":[{"raw_affiliation_string":"ETH Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5088357895","display_name":"M. Fischer","orcid":"https://orcid.org/0000-0002-4157-1235"},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Marc Fischer","raw_affiliation_strings":["ETH Zurich, Switzerland"],"raw_orcid":"https://orcid.org/0000-0002-4157-1235","affiliations":[{"raw_affiliation_string":"ETH Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5069901599","display_name":"Martin Vechev","orcid":"https://orcid.org/0000-0002-0054-9568"},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Martin Vechev","raw_affiliation_strings":["ETH Zurich, Switzerland"],"raw_orcid":"https://orcid.org/0000-0002-0054-9568","affiliations":[{"raw_affiliation_string":"ETH Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I35440088"],"apc_list":null,"apc_paid":null,"fwci":14.6562,"has_fulltext":true,"cited_by_count":104,"citation_normalized_percentile":{"value":0.99272717,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":99,"max":100},"biblio":{"volume":"7","issue":"PLDI","first_page":"1946","last_page":"1969"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10028","display_name":"Topic Modeling","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T10028","display_name":"Topic Modeling","score":0.9998999834060669,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T10181","display_name":"Natural Language Processing Techniques","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T11269","display_name":"Algorithms and Data Compression","score":0.9966999888420105,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/rdf-query-language","display_name":"RDF query language","score":0.7517255544662476},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7376832962036133},{"id":"https://openalex.org/keywords/data-control-language","display_name":"Data control language","score":0.6599686741828918},{"id":"https://openalex.org/keywords/query-language","display_name":"Query language","score":0.6331934332847595},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6243270635604858},{"id":"https://openalex.org/keywords/first-generation-programming-language","display_name":"First-generation programming language","score":0.4813593029975891},{"id":"https://openalex.org/keywords/query-optimization","display_name":"Query optimization","score":0.41983237862586975},{"id":"https://openalex.org/keywords/programming-language-specification","display_name":"Programming language specification","score":0.41361477971076965},{"id":"https://openalex.org/keywords/object-query-language","display_name":"Object Query Language","score":0.4100340008735657},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.38129156827926636},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.33022671937942505},{"id":"https://openalex.org/keywords/web-search-query","display_name":"Web search query","score":0.27588772773742676},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.27312755584716797},{"id":"https://openalex.org/keywords/query-by-example","display_name":"Query by Example","score":0.2411876618862152},{"id":"https://openalex.org/keywords/information-retrieval","display_name":"Information retrieval","score":0.19426342844963074},{"id":"https://openalex.org/keywords/web-query-classification","display_name":"Web query classification","score":0.15476557612419128},{"id":"https://openalex.org/keywords/programming-domain","display_name":"Programming domain","score":0.1452820599079132},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.08445426821708679},{"id":"https://openalex.org/keywords/search-engine","display_name":"Search engine","score":0.0690426230430603}],"concepts":[{"id":"https://openalex.org/C96956885","wikidata":"https://www.wikidata.org/wiki/Q6138701","display_name":"RDF query language","level":5,"score":0.7517255544662476},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7376832962036133},{"id":"https://openalex.org/C32977378","wikidata":"https://www.wikidata.org/wiki/Q604737","display_name":"Data control language","level":5,"score":0.6599686741828918},{"id":"https://openalex.org/C192028432","wikidata":"https://www.wikidata.org/wiki/Q845739","display_name":"Query language","level":2,"score":0.6331934332847595},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6243270635604858},{"id":"https://openalex.org/C570499","wikidata":"https://www.wikidata.org/wiki/Q1289116","display_name":"First-generation programming language","level":3,"score":0.4813593029975891},{"id":"https://openalex.org/C157692150","wikidata":"https://www.wikidata.org/wiki/Q2919848","display_name":"Query optimization","level":2,"score":0.41983237862586975},{"id":"https://openalex.org/C15077461","wikidata":"https://www.wikidata.org/wiki/Q7248507","display_name":"Programming language specification","level":5,"score":0.41361477971076965},{"id":"https://openalex.org/C117667704","wikidata":"https://www.wikidata.org/wiki/Q2011708","display_name":"Object Query Language","level":5,"score":0.4100340008735657},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.38129156827926636},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.33022671937942505},{"id":"https://openalex.org/C164120249","wikidata":"https://www.wikidata.org/wiki/Q995982","display_name":"Web search query","level":3,"score":0.27588772773742676},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.27312755584716797},{"id":"https://openalex.org/C194222762","wikidata":"https://www.wikidata.org/wiki/Q114486","display_name":"Query by Example","level":4,"score":0.2411876618862152},{"id":"https://openalex.org/C23123220","wikidata":"https://www.wikidata.org/wiki/Q816826","display_name":"Information retrieval","level":1,"score":0.19426342844963074},{"id":"https://openalex.org/C118689300","wikidata":"https://www.wikidata.org/wiki/Q7978614","display_name":"Web query classification","level":4,"score":0.15476557612419128},{"id":"https://openalex.org/C119263510","wikidata":"https://www.wikidata.org/wiki/Q7248501","display_name":"Programming domain","level":4,"score":0.1452820599079132},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.08445426821708679},{"id":"https://openalex.org/C97854310","wikidata":"https://www.wikidata.org/wiki/Q19541","display_name":"Search engine","level":2,"score":0.0690426230430603}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3591300","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591300","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591300","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:www.research-collection.ethz.ch:20.500.11850/618843","is_oa":true,"landing_page_url":"http://hdl.handle.net/20.500.11850/618843","pdf_url":null,"source":{"id":"https://openalex.org/S4306402302","display_name":"Repository for Publications and Research Data (ETH Zurich)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I35440088","host_organization_name":"ETH Zurich","host_organization_lineage":["https://openalex.org/I35440088"],"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":"Proceedings of the ACM on Programming Languages, 7","raw_type":"info:eu-repo/semantics/article"},{"id":"doi:10.3929/ethz-b-000618843","is_oa":true,"landing_page_url":"https://doi.org/10.3929/ethz-b-000618843","pdf_url":null,"source":{"id":"https://openalex.org/S7407051236","display_name":"ETH Z\u00fcrich Research Collection","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article-journal"}],"best_oa_location":{"id":"doi:10.1145/3591300","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3591300","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3591300","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":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320335238","display_name":"Staatssekretariat f\u00fcr Bildung, Forschung und Innovation","ror":"https://ror.org/01kw63t33"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4367185264.pdf","grobid_xml":"https://content.openalex.org/works/W4367185264.grobid-xml"},"referenced_works_count":13,"referenced_works":["https://openalex.org/W2156429182","https://openalex.org/W2889787757","https://openalex.org/W2963341956","https://openalex.org/W2970609357","https://openalex.org/W2979826702","https://openalex.org/W3156012351","https://openalex.org/W3160638507","https://openalex.org/W3210129272","https://openalex.org/W3214600982","https://openalex.org/W4225080353","https://openalex.org/W4285178342","https://openalex.org/W4385571894","https://openalex.org/W6950574202"],"related_works":["https://openalex.org/W4240833292","https://openalex.org/W166959470","https://openalex.org/W4250894256","https://openalex.org/W2400419823","https://openalex.org/W2064437404","https://openalex.org/W1033191873","https://openalex.org/W2155016056","https://openalex.org/W2047240670","https://openalex.org/W2059224798","https://openalex.org/W4387686474"],"abstract_inverted_index":{"Large":[0],"language":[1,28,50,70,87,122,147,159,205],"models":[2,48,88],"have":[3,97],"demonstrated":[4],"outstanding":[5],"performance":[6,84],"on":[7,43,108,247],"a":[8,21,27,39,56,72,213],"wide":[9,214],"range":[10,215],"of":[11,58,115,133,199,216,258,265],"tasks":[12,156],"such":[13,77],"as":[14,78],"question":[15],"answering":[16],"and":[17,74,94,136,162,182],"code":[18],"generation.":[19],"On":[20],"high":[22],"level,":[23],"given":[24],"an":[25,130,186,191,221],"input,":[26],"model":[29,123,148,160],"can":[30,64,211],"be":[31,99,143],"used":[32],"to":[33,54,81,98,129,142,154,189,202,231],"automatically":[34],"complete":[35],"the":[36,69,112,146,180,197,203,245,255,263],"sequence":[37],"in":[38,220,262],"statistically-likely":[40],"way.":[41],"Based":[42,107],"this,":[44,109],"users":[45],"prompt":[46,188],"these":[47],"with":[49,233],"instructions":[51],"or":[52,85,243,260],"examples,":[53],"implement":[55,170,232],"variety":[57],"downstream":[59,249],"tasks.":[60],"Advanced":[61],"prompting":[62,124,135,218],"methods":[63,219],"even":[65],"imply":[66],"interaction":[67],"between":[68],"model,":[71],"user,":[73],"external":[75],"tools":[76],"calculators.":[79],"However,":[80],"obtain":[82],"state-of-the-art":[83,217],"adapt":[86],"for":[89,173],"specific":[90],"tasks,":[91,250],"complex":[92],"task-":[93],"model-specific":[95],"programs":[96],"implemented,":[100],"which":[101,178],"may":[102],"still":[103],"require":[104],"ad-hoc":[105],"interaction.":[106],"we":[110,169,241],"present":[111],"novel":[113],"idea":[114],"Language":[116,174],"Model":[117,175],"Programming":[118],"(LMP).":[119],"LMP":[120,139,187],"generalizes":[121],"from":[125,185],"pure":[126],"text":[127,134],"prompts":[128],"intuitive":[131,222],"combination":[132],"scripting.":[137],"Additionally,":[138],"allows":[140],"constraints":[141,181],"specified":[144],"over":[145],"output.":[149],"This":[150],"enables":[151],"easy":[152],"adaption":[153],"many":[155],"while":[157,251],"abstracting":[158],"internals":[161],"providing":[163],"high-level":[164,235],"semantics.":[165],"To":[166],"enable":[167],"LMP,":[168],"LMQL":[171,210],"(short":[172],"Query":[176],"Language),":[177],"leverages":[179],"control":[183],"flow":[184],"generate":[190],"efficient":[192],"inference":[193],"procedure":[194],"that":[195,209,228,240],"minimizes":[196],"number":[198],"expensive":[200],"calls":[201],"underlying":[204],"model.":[206],"We":[207],"show":[208],"capture":[212],"way,":[223],"especially":[224],"facilitating":[225],"interactive":[226],"flows":[227],"are":[229],"challenging":[230],"existing":[234],"APIs.":[236],"Our":[237],"evaluation":[238],"shows":[239],"retain":[242],"increase":[244],"accuracy":[246],"several":[248],"also":[252],"significantly":[253],"reducing":[254],"required":[256],"amount":[257],"computation":[259],"cost":[261,269],"case":[264],"pay-to-use":[266],"APIs":[267],"(26-85%":[268],"savings).":[270]},"counts_by_year":[{"year":2026,"cited_by_count":25},{"year":2025,"cited_by_count":42},{"year":2024,"cited_by_count":29},{"year":2023,"cited_by_count":8}],"updated_date":"2026-07-23T08:03:31.855105","created_date":"2025-10-10T00:00:00"}
