{"id":"https://openalex.org/W2039769798","doi":"https://doi.org/10.1145/1328438.1328483","title":"A type-theoretic foundation for programming with higher-order abstract syntax and first-class substitutions","display_name":"A type-theoretic foundation for programming with higher-order abstract syntax and first-class substitutions","publication_year":2008,"publication_date":"2008-01-07","ids":{"openalex":"https://openalex.org/W2039769798","doi":"https://doi.org/10.1145/1328438.1328483","mag":"2039769798"},"language":"en","primary_location":{"id":"doi:10.1145/1328438.1328483","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1328438.1328483","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5044908798","display_name":"Brigitte Pientka","orcid":"https://orcid.org/0000-0002-2549-4276"},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":true,"raw_author_name":"Brigitte Pientka","raw_affiliation_strings":["McGill University, Montreal, PQ, Canada"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"McGill University, Montreal, PQ, Canada","institution_ids":["https://openalex.org/I5023651"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5044908798"],"corresponding_institution_ids":["https://openalex.org/I5023651"],"apc_list":null,"apc_paid":null,"fwci":12.0864,"has_fulltext":false,"cited_by_count":121,"citation_normalized_percentile":{"value":0.99230976,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"371","last_page":"382"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","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/T10126","display_name":"Logic, programming, and type systems","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/T10260","display_name":"Software Engineering Research","score":0.9894000291824341,"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/T11424","display_name":"Security and Verification in Computing","score":0.9869999885559082,"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/programming-language","display_name":"Programming language","score":0.8154637813568115},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7855567336082458},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.6568987965583801},{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.6526976823806763},{"id":"https://openalex.org/keywords/abstract-syntax","display_name":"Abstract syntax","score":0.5929297208786011},{"id":"https://openalex.org/keywords/substitution","display_name":"Substitution (logic)","score":0.5893595814704895},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.5697256922721863},{"id":"https://openalex.org/keywords/metaprogramming","display_name":"Metaprogramming","score":0.5194389820098877},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.518636167049408},{"id":"https://openalex.org/keywords/traverse","display_name":"Traverse","score":0.47302746772766113},{"id":"https://openalex.org/keywords/simple","display_name":"Simple (philosophy)","score":0.4435500502586365},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"Object-oriented programming","score":0.42652571201324463},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.41179123520851135},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.29180437326431274},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.19892126321792603}],"concepts":[{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8154637813568115},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7855567336082458},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.6568987965583801},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.6526976823806763},{"id":"https://openalex.org/C114408938","wikidata":"https://www.wikidata.org/wiki/Q333373","display_name":"Abstract syntax","level":3,"score":0.5929297208786011},{"id":"https://openalex.org/C2778220771","wikidata":"https://www.wikidata.org/wiki/Q1522579","display_name":"Substitution (logic)","level":2,"score":0.5893595814704895},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.5697256922721863},{"id":"https://openalex.org/C35390924","wikidata":"https://www.wikidata.org/wiki/Q661075","display_name":"Metaprogramming","level":2,"score":0.5194389820098877},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.518636167049408},{"id":"https://openalex.org/C176809094","wikidata":"https://www.wikidata.org/wiki/Q15401496","display_name":"Traverse","level":2,"score":0.47302746772766113},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.4435500502586365},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.42652571201324463},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.41179123520851135},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.29180437326431274},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.19892126321792603},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1328438.1328483","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1328438.1328483","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4","score":0.550000011920929}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":27,"referenced_works":["https://openalex.org/W1480580285","https://openalex.org/W1498395593","https://openalex.org/W1517052937","https://openalex.org/W1526043265","https://openalex.org/W1537833215","https://openalex.org/W1557465145","https://openalex.org/W1567853881","https://openalex.org/W1727609483","https://openalex.org/W1974190112","https://openalex.org/W1990204174","https://openalex.org/W2049268728","https://openalex.org/W2096056339","https://openalex.org/W2096280839","https://openalex.org/W2108857165","https://openalex.org/W2110661450","https://openalex.org/W2113696254","https://openalex.org/W2133898445","https://openalex.org/W2136171121","https://openalex.org/W2140623168","https://openalex.org/W2141287679","https://openalex.org/W2149314483","https://openalex.org/W2166780425","https://openalex.org/W2295866357","https://openalex.org/W2296133763","https://openalex.org/W2911600412","https://openalex.org/W3174989191","https://openalex.org/W6758585388"],"related_works":["https://openalex.org/W2053093724","https://openalex.org/W2729966571","https://openalex.org/W2018501482","https://openalex.org/W2048147817","https://openalex.org/W2889230297","https://openalex.org/W4288358733","https://openalex.org/W2965097461","https://openalex.org/W2910182226","https://openalex.org/W2944379287","https://openalex.org/W4288639287"],"abstract_inverted_index":{"Higher-order":[0],"abstract":[1],"syntax":[2],"(HOAS)":[3],"is":[4,31],"a":[5,56],"simple,":[6],"powerful":[7],"technique":[8],"for":[9,52],"implementing":[10],"object":[11],"languages,":[12],"since":[13],"it":[14],"directly":[15],"supports":[16],"common":[17],"and":[18,28,69],"tricky":[19],"routines":[20],"dealing":[21],"with":[22,49,72],"variables,":[23],"such":[24],"as":[25],"capture-avoiding":[26],"substitution":[27],"renaming.":[29],"This":[30],"achieved":[32],"by":[33],"representing":[34],"binders":[35,40],"in":[36,41],"the":[37,42],"object-language":[38],"via":[39],"meta-language.":[43],"However,":[44],"enriching":[45],"functional":[46],"programming":[47,71],"languages":[48],"direct":[50],"support":[51],"HOAS":[53,62],"has":[54],"been":[55],"major":[57],"challenge,":[58],"because":[59],"recursion":[60],"over":[61],"encodings":[63],"requires":[64],"one":[65],"to":[66],"traverse":[67],"lambda-abstractions":[68],"necessitates":[70],"open":[73],"objects.":[74]},"counts_by_year":[{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":4},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":4},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":7},{"year":2018,"cited_by_count":9},{"year":2017,"cited_by_count":8},{"year":2016,"cited_by_count":1},{"year":2015,"cited_by_count":11},{"year":2014,"cited_by_count":2},{"year":2013,"cited_by_count":11},{"year":2012,"cited_by_count":10}],"updated_date":"2026-07-29T14:22:42.915294","created_date":"2025-10-10T00:00:00"}
