{"id":"https://openalex.org/W4254154023","doi":"https://doi.org/10.1145/3136040.3136056","title":"A Haskell compiler for signal transforms","display_name":"A Haskell compiler for signal transforms","publication_year":2017,"publication_date":"2017-10-12","ids":{"openalex":"https://openalex.org/W4254154023","doi":"https://doi.org/10.1145/3136040.3136056"},"language":"en","primary_location":{"id":"doi:10.1145/3136040.3136056","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3136040.3136056","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","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/A5091390132","display_name":"Geoffrey Mainland","orcid":"https://orcid.org/0000-0002-0328-8594"},"institutions":[{"id":"https://openalex.org/I72816309","display_name":"Drexel University","ror":"https://ror.org/04bdffz58","country_code":"US","type":"education","lineage":["https://openalex.org/I72816309"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Geoffrey Mainland","raw_affiliation_strings":["Drexel University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Drexel University, USA","institution_ids":["https://openalex.org/I72816309"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5068650358","display_name":"Jeremy Johnson","orcid":"https://orcid.org/0000-0001-8333-5532"},"institutions":[{"id":"https://openalex.org/I72816309","display_name":"Drexel University","ror":"https://ror.org/04bdffz58","country_code":"US","type":"education","lineage":["https://openalex.org/I72816309"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jeremy Johnson","raw_affiliation_strings":["Drexel University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Drexel University, USA","institution_ids":["https://openalex.org/I72816309"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I72816309"],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"219","last_page":"232"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11697","display_name":"Numerical Methods and Algorithms","score":0.9994999766349792,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/T11697","display_name":"Numerical Methods and Algorithms","score":0.9994999766349792,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/T11034","display_name":"Digital Filter Design and Implementation","score":0.9858999848365784,"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/haskell","display_name":"Haskell","score":0.9830487966537476},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8573671579360962},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.8381794095039368},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7161575555801392},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.5584791302680969},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5483225584030151},{"id":"https://openalex.org/keywords/generator","display_name":"Generator (circuit theory)","score":0.4950534403324127},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4594572186470032},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.42602306604385376},{"id":"https://openalex.org/keywords/signal","display_name":"SIGNAL (programming language)","score":0.42533713579177856},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.36865758895874023},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.11294436454772949}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9830487966537476},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8573671579360962},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.8381794095039368},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7161575555801392},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.5584791302680969},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5483225584030151},{"id":"https://openalex.org/C2780992000","wikidata":"https://www.wikidata.org/wiki/Q17016113","display_name":"Generator (circuit theory)","level":3,"score":0.4950534403324127},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4594572186470032},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.42602306604385376},{"id":"https://openalex.org/C2779843651","wikidata":"https://www.wikidata.org/wiki/Q7390335","display_name":"SIGNAL (programming language)","level":2,"score":0.42533713579177856},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.36865758895874023},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.11294436454772949},{"id":"https://openalex.org/C163258240","wikidata":"https://www.wikidata.org/wiki/Q25342","display_name":"Power (physics)","level":2,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","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/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3136040.3136056","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3136040.3136056","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":38,"referenced_works":["https://openalex.org/W1528193315","https://openalex.org/W1528855243","https://openalex.org/W1966904279","https://openalex.org/W1970782371","https://openalex.org/W1979039632","https://openalex.org/W1979811002","https://openalex.org/W1989739006","https://openalex.org/W1990860452","https://openalex.org/W1996060755","https://openalex.org/W2022028092","https://openalex.org/W2024381286","https://openalex.org/W2036753530","https://openalex.org/W2044417921","https://openalex.org/W2045810654","https://openalex.org/W2072277531","https://openalex.org/W2102182691","https://openalex.org/W2104958979","https://openalex.org/W2105463364","https://openalex.org/W2107214848","https://openalex.org/W2111334029","https://openalex.org/W2112205453","https://openalex.org/W2134572726","https://openalex.org/W2135031801","https://openalex.org/W2140647971","https://openalex.org/W2141576692","https://openalex.org/W2146236588","https://openalex.org/W2148599839","https://openalex.org/W2154697693","https://openalex.org/W2160183719","https://openalex.org/W2163491234","https://openalex.org/W2164197394","https://openalex.org/W2169691387","https://openalex.org/W2512335183","https://openalex.org/W2595625343","https://openalex.org/W2904838066","https://openalex.org/W4205877922","https://openalex.org/W4240054498","https://openalex.org/W4251235123"],"related_works":["https://openalex.org/W2090337950","https://openalex.org/W2046806568","https://openalex.org/W2112263414","https://openalex.org/W3004782279","https://openalex.org/W1602185604","https://openalex.org/W2028779182","https://openalex.org/W4242678340","https://openalex.org/W2140654465","https://openalex.org/W2129253059","https://openalex.org/W1488646450"],"abstract_inverted_index":{"Building":[0],"a":[1,9,20,77],"reusable,":[2,47],"auto-tuning":[3],"code":[4,107],"generator":[5],"from":[6,103],"scratch":[7],"is":[8,46],"challenging":[10],"problem,":[11],"requiring":[12],"many":[13,37],"careful":[14],"design":[15,35,56],"choices.":[16],"We":[17,89],"describe":[18],"HSpiral,":[19],"Haskell":[21,38],"compiler":[22],"for":[23,109],"signal":[24],"transforms":[25],"that":[26,43,83],"builds":[27],"on":[28,106],"the":[29,55,73,80,110],"foundational":[30],"work":[31],"of":[32,57,70,79],"Spiral.":[33],"Our":[34],"leverages":[36],"language":[39],"features":[40],"to":[41,63,66,93,100],"ensure":[42],"our":[44,58,98],"framework":[45],"flexible,":[48],"and":[49,76],"efficient.":[50],"As":[51],"well":[52],"as":[53],"describing":[54],"system,":[59],"we":[60],"show":[61,91],"how":[62,92],"extend":[64],"it":[65],"support":[67],"new":[68],"classes":[69],"transforms,":[71],"including":[72],"number-theoretic":[74],"transform":[75],"variant":[78],"split-radix":[81],"algorithm":[82],"results":[84,102],"in":[85],"reduced":[86],"operation":[87],"counts.":[88],"also":[90],"incorporate":[94],"rewrite":[95],"rules":[96],"into":[97],"system":[99],"reproduce":[101],"previous":[104],"literature":[105],"generation":[108],"fast":[111],"Fourier":[112],"transform.":[113]},"counts_by_year":[{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":2}],"updated_date":"2026-07-14T23:27:15.235271","created_date":"2025-10-10T00:00:00"}
