{"id":"https://openalex.org/W2979589157","doi":"https://doi.org/10.1145/3357765.3359522","title":"Polymorphic extractors for semantic and portable pattern matching (short paper)","display_name":"Polymorphic extractors for semantic and portable pattern matching (short paper)","publication_year":2019,"publication_date":"2019-10-10","ids":{"openalex":"https://openalex.org/W2979589157","doi":"https://doi.org/10.1145/3357765.3359522","mag":"2979589157"},"language":"en","primary_location":{"id":"doi:10.1145/3357765.3359522","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3357765.3359522","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},"type":"article","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/A5025737201","display_name":"Amir Shaikhha","orcid":"https://orcid.org/0000-0002-9062-759X"},"institutions":[{"id":"https://openalex.org/I40120149","display_name":"University of Oxford","ror":"https://ror.org/052gg0110","country_code":"GB","type":"education","lineage":["https://openalex.org/I40120149"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Amir Shaikhha","raw_affiliation_strings":["University of Oxford, UK"],"affiliations":[{"raw_affiliation_string":"University of Oxford, UK","institution_ids":["https://openalex.org/I40120149"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5025737201"],"corresponding_institution_ids":["https://openalex.org/I40120149"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.12186748,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"61","last_page":"67"},"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.9994000196456909,"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.9994000196456909,"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/T10317","display_name":"Advanced Database Systems and Queries","score":0.9980000257492065,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/T10679","display_name":"Service-Oriented Architecture and Web Services","score":0.9962000250816345,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8040539622306824},{"id":"https://openalex.org/keywords/software-portability","display_name":"Software portability","score":0.7593533396720886},{"id":"https://openalex.org/keywords/regular-expression","display_name":"Regular expression","score":0.6651531457901001},{"id":"https://openalex.org/keywords/embedding","display_name":"Embedding","score":0.5894879102706909},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.5657005906105042},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.528016984462738},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.520186185836792},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.48971298336982727},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.46568670868873596},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.43476033210754395},{"id":"https://openalex.org/keywords/object","display_name":"Object (grammar)","score":0.4227464199066162},{"id":"https://openalex.org/keywords/expression","display_name":"Expression (computer science)","score":0.41175544261932373},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.3928869962692261},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3879174292087555},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.34337806701660156},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.12830489873886108}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8040539622306824},{"id":"https://openalex.org/C63000827","wikidata":"https://www.wikidata.org/wiki/Q3080428","display_name":"Software portability","level":2,"score":0.7593533396720886},{"id":"https://openalex.org/C121329065","wikidata":"https://www.wikidata.org/wiki/Q185612","display_name":"Regular expression","level":2,"score":0.6651531457901001},{"id":"https://openalex.org/C41608201","wikidata":"https://www.wikidata.org/wiki/Q980509","display_name":"Embedding","level":2,"score":0.5894879102706909},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.5657005906105042},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.528016984462738},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.520186185836792},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.48971298336982727},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.46568670868873596},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.43476033210754395},{"id":"https://openalex.org/C2781238097","wikidata":"https://www.wikidata.org/wiki/Q175026","display_name":"Object (grammar)","level":2,"score":0.4227464199066162},{"id":"https://openalex.org/C90559484","wikidata":"https://www.wikidata.org/wiki/Q778379","display_name":"Expression (computer science)","level":2,"score":0.41175544261932373},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.3928869962692261},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3879174292087555},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.34337806701660156},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.12830489873886108},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3357765.3359522","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3357765.3359522","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},{"id":"pmh:oai:ora.ox.ac.uk:uuid:bbfe7e87-d8ec-4655-be4f-2398691cedd4","is_oa":false,"landing_page_url":"https://ora.ox.ac.uk/objects/uuid:bbfe7e87-d8ec-4655-be4f-2398691cedd4","pdf_url":null,"source":{"id":"https://openalex.org/S4306402636","display_name":"Oxford University Research Archive (ORA) (University of Oxford)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I40120149","host_organization_name":"University of Oxford","host_organization_lineage":["https://openalex.org/I40120149"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Conference item"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4","score":0.5400000214576721}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":27,"referenced_works":["https://openalex.org/W84930537","https://openalex.org/W1489879801","https://openalex.org/W1574609262","https://openalex.org/W1580664042","https://openalex.org/W1606121052","https://openalex.org/W1997978901","https://openalex.org/W2018227989","https://openalex.org/W2026049208","https://openalex.org/W2026667713","https://openalex.org/W2046366372","https://openalex.org/W2073904768","https://openalex.org/W2094455839","https://openalex.org/W2109795737","https://openalex.org/W2114980032","https://openalex.org/W2119871735","https://openalex.org/W2123092976","https://openalex.org/W2136952590","https://openalex.org/W2154697693","https://openalex.org/W2174554963","https://openalex.org/W2281310552","https://openalex.org/W2444559629","https://openalex.org/W2769962266","https://openalex.org/W2966295917","https://openalex.org/W4233720472","https://openalex.org/W4301270244","https://openalex.org/W6729735101","https://openalex.org/W6730383227"],"related_works":["https://openalex.org/W1774017438","https://openalex.org/W2123199373","https://openalex.org/W4246925412","https://openalex.org/W2083577879","https://openalex.org/W4205780093","https://openalex.org/W2052853109","https://openalex.org/W2109464334","https://openalex.org/W2031647786","https://openalex.org/W2100501061","https://openalex.org/W1492858093"],"abstract_inverted_index":{"This":[0],"paper":[1],"introduces":[2],"polymorphic":[3,54,70,78],"extractors,":[4],"a":[5,30,42],"technique":[6,23,35,68,76],"for":[7,81],"tackling":[8],"two":[9],"main":[10],"issues":[11],"with":[12],"the":[13,37,74],"existing":[14],"pattern":[15,26],"matching":[16,27],"techniques":[17],"in":[18],"functional":[19],"languages.":[20],"First,":[21],"this":[22,34],"defines":[24],"semantic":[25],"rather":[28],"than":[29],"syntactic":[31],"one.":[32],"Second,":[33],"solves":[36],"portability":[38],"issue":[39],"when":[40],"defining":[41,82],"set":[43],"of":[44],"patterns":[45],"based":[46],"on":[47],"different":[48,83],"underlying":[49],"data-structure":[50],"design":[51],"choices.":[52],"Furthermore,":[53],"extractors":[55,71],"can":[56],"be":[57],"further":[58],"improved":[59],"by":[60],"performing":[61],"optimizations":[62],"and":[63],"multi-stage":[64],"programming.":[65],"The":[66],"key":[67],"behind":[69],"is":[72],"using":[73],"tagless-final":[75],"(a.k.a.":[77],"embedding/object":[79],"algebras)":[80],"extraction":[84],"semantics":[85],"over":[86],"expression":[87],"terms.":[88]},"counts_by_year":[{"year":2024,"cited_by_count":1}],"updated_date":"2026-04-04T16:13:02.066488","created_date":"2025-10-10T00:00:00"}
