{"id":"https://openalex.org/W7150858595","doi":"https://doi.org/10.1145/3789595.3789596","title":"First-Class Functions in C: the Function-Oriented Programming Paradigm","display_name":"First-Class Functions in C: the Function-Oriented Programming Paradigm","publication_year":2026,"publication_date":"2026-01-16","ids":{"openalex":"https://openalex.org/W7150858595","doi":"https://doi.org/10.1145/3789595.3789596"},"language":null,"primary_location":{"id":"doi:10.1145/3789595.3789596","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3789595.3789596","pdf_url":null,"source":null,"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 2026 14th International Conference on Software and Information Engineering","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://doi.org/10.1145/3789595.3789596","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5058447810","display_name":"Antoine Bossard","orcid":"https://orcid.org/0000-0001-9381-9346"},"institutions":[{"id":"https://openalex.org/I41802502","display_name":"Kanagawa University","ror":"https://ror.org/02j6c0d67","country_code":"JP","type":"education","lineage":["https://openalex.org/I41802502"]}],"countries":["JP"],"is_corresponding":true,"raw_author_name":"Antoine Bossard","raw_affiliation_strings":["Graduate School of Science, Kanagawa University, Yokohama, Kanagawa, Japan"],"raw_orcid":"https://orcid.org/0000-0001-9381-9346","affiliations":[{"raw_affiliation_string":"Graduate School of Science, Kanagawa University, Yokohama, Kanagawa, Japan","institution_ids":["https://openalex.org/I41802502"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5058447810"],"corresponding_institution_ids":["https://openalex.org/I41802502"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.30207531,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"82","last_page":"87"},"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.6402999758720398,"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.6402999758720398,"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/T11424","display_name":"Security and Verification in Computing","score":0.17990000545978546,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.07020000368356705,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.6402000188827515},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5738000273704529},{"id":"https://openalex.org/keywords/simplicity","display_name":"Simplicity","score":0.5041000247001648},{"id":"https://openalex.org/keywords/functional-reactive-programming","display_name":"Functional reactive programming","score":0.4754999876022339},{"id":"https://openalex.org/keywords/notice","display_name":"Notice","score":0.44760000705718994},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.4433000087738037},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.42260000109672546},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.4138999879360199}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7739999890327454},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.6402000188827515},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6351000070571899},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5738000273704529},{"id":"https://openalex.org/C2776372474","wikidata":"https://www.wikidata.org/wiki/Q508291","display_name":"Simplicity","level":2,"score":0.5041000247001648},{"id":"https://openalex.org/C119489759","wikidata":"https://www.wikidata.org/wiki/Q5508843","display_name":"Functional reactive programming","level":5,"score":0.4754999876022339},{"id":"https://openalex.org/C2779913896","wikidata":"https://www.wikidata.org/wiki/Q7063001","display_name":"Notice","level":2,"score":0.44760000705718994},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.4433000087738037},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.44020000100135803},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.42260000109672546},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.4138999879360199},{"id":"https://openalex.org/C96315309","wikidata":"https://www.wikidata.org/wiki/Q5508829","display_name":"Functional logic programming","level":4,"score":0.358599990606308},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.3379000127315521},{"id":"https://openalex.org/C150762246","wikidata":"https://www.wikidata.org/wiki/Q4354073","display_name":"Reactive programming","level":4,"score":0.3352000117301941},{"id":"https://openalex.org/C146206909","wikidata":"https://www.wikidata.org/wiki/Q531152","display_name":"Declarative programming","level":4,"score":0.2919999957084656},{"id":"https://openalex.org/C173404611","wikidata":"https://www.wikidata.org/wiki/Q528588","display_name":"Constraint programming","level":3,"score":0.2856999933719635},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.2849999964237213},{"id":"https://openalex.org/C120558287","wikidata":"https://www.wikidata.org/wiki/Q1418502","display_name":"Procedural programming","level":4,"score":0.2750999927520752},{"id":"https://openalex.org/C88482812","wikidata":"https://www.wikidata.org/wiki/Q6453666","display_name":"Modular programming","level":2,"score":0.27079999446868896},{"id":"https://openalex.org/C77618280","wikidata":"https://www.wikidata.org/wiki/Q1155772","display_name":"Scheme (mathematics)","level":2,"score":0.2671000063419342},{"id":"https://openalex.org/C2779151265","wikidata":"https://www.wikidata.org/wiki/Q1156791","display_name":"Copying","level":2,"score":0.2630999982357025},{"id":"https://openalex.org/C128099668","wikidata":"https://www.wikidata.org/wiki/Q573952","display_name":"Lazy evaluation","level":3,"score":0.25929999351501465}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3789595.3789596","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3789595.3789596","pdf_url":null,"source":null,"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 2026 14th International Conference on Software and Information Engineering","raw_type":"proceedings-article"}],"best_oa_location":{"id":"doi:10.1145/3789595.3789596","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3789595.3789596","pdf_url":null,"source":null,"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 2026 14th International Conference on Software and Information Engineering","raw_type":"proceedings-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":5,"referenced_works":["https://openalex.org/W2048921878","https://openalex.org/W2127844749","https://openalex.org/W2787976344","https://openalex.org/W2977173298","https://openalex.org/W4296878212"],"related_works":[],"abstract_inverted_index":{"The":[0],"functional":[1,28,47,119],"programming":[2,14,105],"paradigm":[3,17],"has":[4],"proven":[5],"very":[6],"popular":[7],"since":[8],"its":[9],"inception:":[10],"nowadays,":[11],"most":[12],"modern":[13],"languages,":[15],"whichever":[16],"they":[18],"may":[19,78],"implement,":[20],"provide":[21,111],"the":[22,64,75,103,112,142,152],"programmer":[23,114],"with":[24,115],"mechanics":[25],"inspired":[26],"by":[27,151],"programming,":[29,48,120],"for":[30,60],"instance":[31],"anonymous":[32],"functions":[33],"(a.k.a.":[34],"lambdas)":[35],"in":[36,40,55],"C++":[37],"and":[38,58,162],"Array.prototype.map":[39],"JavaScript.":[41],"However,":[42],"strictly":[43],"adhering":[44],"to":[45,88,110,157],"pure":[46],"that":[49,59],"is":[50,92,109],"completely":[51],"avoiding":[52],"side-effects,":[53],"remains":[54],"practice":[56],"challenging,":[57],"several":[61],"reasons.":[62],"Although":[63],"simplicity":[65],"of":[66,86,118],"input/output":[67],"(I/O)":[68],"operations":[69],"does":[70],"suffer":[71],"from":[72],"this":[73,96],"restriction,":[74],"computing":[76],"performance":[77],"be":[79],"even":[80],"more":[81],"critical:":[82],"copying":[83],"large":[84],"lists":[85],"data":[87],"avoid":[89],"modifying":[90],"them":[91],"obviously":[93],"costly.":[94],"In":[95],"paper,":[97],"recognising":[98],"these":[99],"challenges,":[100],"we":[101,145],"propose":[102],"function-oriented":[104],"paradigm,":[106],"whose":[107],"objective":[108],"C":[113,159],"essential":[116],"elements":[117],"such":[121],"as":[122],"first-class":[123],"functions.":[124],"Since":[125],"relying":[126],"on":[127],"standard":[128],"C,":[129],"our":[130],"experimental":[131],"evaluation":[132],"was":[133],"significantly":[134],"faster":[135],"than":[136],"a":[137],"corresponding":[138],"Racket":[139],"implementation.":[140],"On":[141],"other":[143],"hand,":[144],"did":[146],"notice":[147],"an":[148],"overhead":[149],"induced":[150],"FOP":[153],"layer":[154],"when":[155],"compared":[156],"conventional":[158],"implementations":[160],"(recursive":[161],"iterative).":[163]},"counts_by_year":[],"updated_date":"2026-07-30T17:31:21.811387","created_date":"2026-04-07T00:00:00"}
