{"id":"https://openalex.org/W2604507293","doi":null,"title":"Defining C Preprocessor Macro Libraries with Functional Programs","display_name":"Defining C Preprocessor Macro Libraries with Functional Programs","publication_year":2016,"publication_date":"2016-01-01","ids":{"openalex":"https://openalex.org/W2604507293","mag":"2604507293"},"language":"en","primary_location":{"id":"mag:2604507293","doi":null,"is_oa":false,"landing_page_url":"https://dblp.uni-trier.de/db/journals/cai/cai35.html#NemethKKT16","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":"Computing and Informatics / Computers and Artificial Intelligence","raw_type":null},"volume":null,"type":"article","is_traditional":true,"indexed_in":[],"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/A5043336758","display_name":"Boldizs\u00e1r N\u00e9meth","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Boldizs\u00e1r N\u00e9meth","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"middle","author":{"id":"https://openalex.org/A5053156435","display_name":"M\u00e1t\u00e9 Kar\u00e1csony","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"M\u00e1t\u00e9 Kar\u00e1csony","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"middle","author":{"id":"https://openalex.org/A5066548812","display_name":"Zolt\u00e1n Kelemen","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Zolt\u00e1n Kelemen","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5073882154","display_name":"M\u00e1t\u00e9 Tejfel","orcid":"https://orcid.org/0000-0001-8982-1398","observed_orcids":["https://orcid.org/0000-0001-8982-1398"]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"M\u00e1t\u00e9 Tejfel","raw_affiliation_strings":[],"raw_orcid":"https://orcid.org/0000-0001-8982-1398","affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.0,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":87,"max":93},"biblio":{"volume":"35","issue":"4","first_page":"819","last_page":"851"},"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.9980000257492065,"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"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9980000257492065,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.0005000000237487257,"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/T10260","display_name":"Software Engineering Research","score":0.00039999998989515007,"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/macro-library","display_name":"macro library","score":0.8429999947547913},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.7360000014305115},{"id":"https://openalex.org/keywords/lambda-expressions","display_name":"lambda expressions","score":0.7369999885559082},{"id":"https://openalex.org/keywords/source-code-manipulation","display_name":"source code manipulation","score":0.5230000019073486},{"id":"https://openalex.org/keywords/functional-programming","display_name":"functional programming","score":0.48100000619888306},{"id":"https://openalex.org/keywords/compiler-intermediate-representation","display_name":"compiler intermediate representation","score":0.6990000009536743}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9264287948608398},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8117067813873291},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8025587201118469},{"id":"https://openalex.org/C166955791","wikidata":"https://www.wikidata.org/wiki/Q629579","display_name":"Macro","level":2,"score":0.7729672193527222},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6963256597518921},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6270381212234497},{"id":"https://openalex.org/C34736171","wikidata":"https://www.wikidata.org/wiki/Q918333","display_name":"Preprocessor","level":2,"score":0.5396786332130432},{"id":"https://openalex.org/C135790938","wikidata":"https://www.wikidata.org/wiki/Q242028","display_name":"Lambda calculus","level":2,"score":0.4197406470775604},{"id":"https://openalex.org/C142156749","wikidata":"https://www.wikidata.org/wiki/Q2607208","display_name":"Typed lambda calculus","level":3,"score":0.4161027669906616},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.41275691986083984},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.19128161668777466}],"mesh":[],"locations_count":1,"locations":[{"id":"mag:2604507293","doi":null,"is_oa":false,"landing_page_url":"https://dblp.uni-trier.de/db/journals/cai/cai35.html#NemethKKT16","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":"Computing and Informatics / Computers and Artificial Intelligence","raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W2325969264","https://openalex.org/W7099278025","https://openalex.org/W2164376370","https://openalex.org/W7163886597","https://openalex.org/W2035443065","https://openalex.org/W2074114668","https://openalex.org/W2363734600","https://openalex.org/W1984054098","https://openalex.org/W7096978557","https://openalex.org/W3009676122"],"abstract_inverted_index":{"The":[0],"preprocessor":[1,69,93,126],"of":[2,25,35,140],"the":[3,32,104],"C":[4],"language":[5,44,55],"provides":[6],"a":[7,40,86,112],"standard":[8],"way":[9],"to":[10,76,117],"generate":[11,100],"code":[12,61,106,120],"at":[13],"compile":[14],"time.":[15],"However,":[16],"writing":[17],"and":[18,28,52,65,138],"understanding":[19],"these":[20,81],"macros":[21,127],"is":[22,39,115],"difficult.":[23],"Lack":[24],"typing,":[26],"statelessness":[27],"uncommon":[29],"syntax":[30],"are":[31],"main":[33],"reasons":[34],"this":[36,83],"difficulty.":[37],"Haskell":[38,60,119],"high-level":[41],"purely":[42],"functional":[43,98],"with":[45],"expressive":[46],"type":[47],"system,":[48],"algebraic":[49],"data":[50],"types":[51],"many":[53],"useful":[54],"extensions.":[56],"These":[57],"suggest":[58],"that":[59,88,121,128],"can":[62],"be":[63,123],"written":[64],"maintained":[66],"easier":[67],"than":[68],"macros.":[70,94],"Functional":[71],"languages":[72,99],"have":[73],"certain":[74],"similarities":[75,82],"macro":[77,142],"languages.":[78],"By":[79],"using":[80],"paper":[84],"describes":[85],"transformation":[87],"translates":[89],"lambda":[90,101],"expressions":[91,102],"into":[92,125],"Existing":[95],"compilers":[96],"for":[97],"from":[103],"source":[105,130],"as":[107],"an":[108],"intermediate":[109],"representation.":[110],"As":[111],"result":[113,134],"it":[114],"possible":[116],"write":[118],"will":[122],"translated":[124],"manipulate":[129],"code.":[131],"This":[132],"may":[133],"in":[135],"faster":[136],"development":[137],"maintenance":[139],"complex":[141],"metaprograms.":[143]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":1}],"updated_date":"2026-07-30T17:31:21.811387","created_date":"2017-04-14T00:00:00"}
