{"id":"https://openalex.org/W2889590733","doi":null,"title":"Extensible and robust functional reactive programming","display_name":"Extensible and robust functional reactive programming","publication_year":2018,"publication_date":"2018-07-19","ids":{"openalex":"https://openalex.org/W2889590733","mag":"2889590733"},"language":"en","primary_location":{"id":"pmh:oai:eprints.nottingham.ac.uk:50348","doi":null,"is_oa":false,"landing_page_url":"https://eprints.nottingham.ac.uk/50348/1/thesis.pdf","pdf_url":"https://eprints.nottingham.ac.uk/50348/1/thesis.pdf","source":{"id":"https://openalex.org/S4306402014","display_name":"Nottingham ePrints (University of Nottingham)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I142263535","host_organization_name":"University of Nottingham","host_organization_lineage":["https://openalex.org/I142263535"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":null,"raw_type":"Thesis (University of Nottingham only)"},"volume":null,"type":"dissertation","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://repository.nottingham.ac.uk/bitstreams/f8cb10ec-c1e4-44f3-bd4c-06c5b3ca455b/download","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5065037351","display_name":"Ivan P\u00e9rez","orcid":"https://orcid.org/0000-0002-9998-0269","observed_orcids":["https://orcid.org/0000-0002-9998-0269"]},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Ivan Perez Dominguez","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":["https://openalex.org/A5065037351"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":1,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"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.986299991607666,"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.986299991607666,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.0017000000225380063,"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/T10904","display_name":"Embedded Systems Design Techniques","score":0.0010000000474974513,"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/functional-reactive-programming","display_name":"functional reactive programming","score":0.9649999737739563},{"id":"https://openalex.org/keywords/monads","display_name":"monads","score":0.7519999742507935},{"id":"https://openalex.org/keywords/graphical-user-interface-development","display_name":"graphical user interface development","score":0.6769999861717224},{"id":"https://openalex.org/keywords/multimedia-programming","display_name":"multimedia programming","score":0.9100000262260437},{"id":"https://openalex.org/keywords/temporal-logic","display_name":"temporal logic","score":0.8920000195503235},{"id":"https://openalex.org/keywords/game-development","display_name":"game development","score":0.7020000219345093},{"id":"https://openalex.org/keywords/relational-programming","display_name":"relational programming","score":0.640999972820282},{"id":"https://openalex.org/keywords/separation-of-concerns","display_name":"separation of concerns","score":0.7110000252723694},{"id":"https://openalex.org/keywords/modularity","display_name":"modularity","score":0.45500001311302185}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7772397994995117},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6830250024795532},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.6827914714813232},{"id":"https://openalex.org/C2779478453","wikidata":"https://www.wikidata.org/wiki/Q6889748","display_name":"Modularity (biology)","level":2,"score":0.6337854862213135},{"id":"https://openalex.org/C33959348","wikidata":"https://www.wikidata.org/wiki/Q1630568","display_name":"Monad (category theory)","level":3,"score":0.5907902717590332},{"id":"https://openalex.org/C107027933","wikidata":"https://www.wikidata.org/wiki/Q2006448","display_name":"Stream processing","level":2,"score":0.462115079164505},{"id":"https://openalex.org/C160713754","wikidata":"https://www.wikidata.org/wiki/Q1389965","display_name":"Maintainability","level":2,"score":0.44923266768455505},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4414239823818207},{"id":"https://openalex.org/C119489759","wikidata":"https://www.wikidata.org/wiki/Q5508843","display_name":"Functional reactive programming","level":5,"score":0.4364500939846039},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.42984816431999207},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.3666333556175232},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3621947169303894},{"id":"https://openalex.org/C150762246","wikidata":"https://www.wikidata.org/wiki/Q4354073","display_name":"Reactive programming","level":4,"score":0.32650190591812134},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.2929086685180664},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.18565288186073303},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.15408092737197876},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0988524854183197},{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"score":0.0},{"id":"https://openalex.org/C54355233","wikidata":"https://www.wikidata.org/wiki/Q7162","display_name":"Genetics","level":1,"score":0.0},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"pmh:oai:eprints.nottingham.ac.uk:50348","doi":null,"is_oa":false,"landing_page_url":"https://eprints.nottingham.ac.uk/50348/1/thesis.pdf","pdf_url":"https://eprints.nottingham.ac.uk/50348/1/thesis.pdf","source":{"id":"https://openalex.org/S4306402014","display_name":"Nottingham ePrints (University of Nottingham)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I142263535","host_organization_name":"University of Nottingham","host_organization_lineage":["https://openalex.org/I142263535"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":null,"raw_type":"Thesis (University of Nottingham only)"},{"id":"pmh:oai:repository.nottingham.ac.uk:123456789/27407","doi":null,"is_oa":true,"landing_page_url":"https://repository.nottingham.ac.uk/handle/123456789/27407","pdf_url":"https://repository.nottingham.ac.uk/bitstreams/f8cb10ec-c1e4-44f3-bd4c-06c5b3ca455b/download","source":{"id":"https://openalex.org/S4306402014","display_name":"Nottingham ePrints (University of Nottingham)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I142263535","host_organization_name":"University of Nottingham","host_organization_lineage":["https://openalex.org/I142263535"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"ethesis"},{"id":"mag:2889590733","doi":null,"is_oa":false,"landing_page_url":"http://eprints.nottingham.ac.uk/50348/","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":{"id":"pmh:oai:repository.nottingham.ac.uk:123456789/27407","doi":null,"is_oa":true,"landing_page_url":"https://repository.nottingham.ac.uk/handle/123456789/27407","pdf_url":"https://repository.nottingham.ac.uk/bitstreams/f8cb10ec-c1e4-44f3-bd4c-06c5b3ca455b/download","source":{"id":"https://openalex.org/S4306402014","display_name":"Nottingham ePrints (University of Nottingham)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I142263535","host_organization_name":"University of Nottingham","host_organization_lineage":["https://openalex.org/I142263535"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"ethesis"},"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2889590733.pdf","grobid_xml":"https://content.openalex.org/works/W2889590733.grobid-xml"},"referenced_works_count":10,"referenced_works":["https://openalex.org/W1643342729","https://openalex.org/W1740522204","https://openalex.org/W2026629052","https://openalex.org/W2104717300","https://openalex.org/W2110907326","https://openalex.org/W2144984544","https://openalex.org/W2146153311","https://openalex.org/W2146253762","https://openalex.org/W2151629759","https://openalex.org/W2523467757"],"related_works":["https://openalex.org/W2514237507","https://openalex.org/W2034582967","https://openalex.org/W7096090548","https://openalex.org/W4414719592","https://openalex.org/W6922545440","https://openalex.org/W7073087415","https://openalex.org/W2105153579","https://openalex.org/W181132469","https://openalex.org/W7095350906","https://openalex.org/W3094357980"],"abstract_inverted_index":{"Programming":[0,39],"GUI":[1,22,199],"and":[2,12,23,51,56,77,117,139,183,191,231,245],"multimedia":[3,24],"in":[4,58,104,198,224],"functional":[5,21],"languages":[6],"has":[7,46],"been":[8],"a":[9,41,99,203],"long-term":[10],"challenge,":[11],"no":[13],"solution":[14],"convinces":[15],"the":[16,59,73,87,131,174,178,219],"community":[17],"at":[18,72,130],"large.":[19],"Purely":[20],"toolkits":[25],"enable":[26],"abstract":[27],"thinking,":[28],"but":[29,71],"have":[30],"enormous":[31],"maintenance":[32,234],"costs.":[33,235],"General":[34],"solutions":[35],"like":[36],"Functional":[37],"Reactive":[38,189],"present":[40,162,188],"number":[42],"of":[43,61,75,79,89,106,180,209,221,226],"limitations.":[44],"FRP":[45,63,96,111,120,147],"traditionally":[47],"resisted":[48],"efficient":[49],"implementation,":[50],"existing":[52],"libraries":[53],"sacrifice":[54],"determinism":[55],"abstraction":[57,194],"name":[60],"performance.":[62],"also":[64],"enforces":[65],"structural":[66],"constraints":[67],"that":[68],"facilitate":[69],"reasoning,":[70],"cost":[74],"modularity":[76],"separation":[78],"concerns.":[80],"This":[81],"work":[82],"addresses":[83],"those":[84],"limitations":[85],"with":[86,155],"introduction":[88],"Monadic":[90,113,125,167,210],"Stream":[91,114,126,168,211],"Functions,":[92],"an":[93,193],"extension":[94],"to":[95,217,243],"parameterised":[97],"over":[98],"monad.":[100],"I":[101,141,161,171,187],"demonstrate":[102,142],"that,":[103],"spite":[105],"being":[107],"simpler":[108],"than":[109],"other":[110,119,123],"proposals,":[112,124],"Functions":[115,127],"subsume":[116],"exceed":[118],"implementations.":[121],"Unlike":[122],"maintain":[128],"purity":[129],"type":[132],"level,":[133],"which":[134],"is":[135],"crucial":[136],"for":[137,159,166,195],"testing":[138,148,237],"debugging.":[140],"this":[143,222],"advantage":[144],"by":[145],"introducing":[146],"facilities":[149,238],"based":[150,201],"on":[151,202,207],"temporal":[152],"logics,":[153],"together":[154],"debugging":[156],"tools":[157],"specific":[158],"FRP.":[160],"two":[163],"uses":[164],"cases":[165],"Functions:":[169],"First,":[170],"show":[172],"how":[173],"new":[175],"constructs":[176],"improved":[177],"design":[179],"game":[181],"features":[182],"non-trivial":[184],"games.":[185],"Second,":[186],"Values":[190],"Relations,":[192],"model-view":[196],"coordination":[197],"programs":[200],"relational":[204],"language,":[205],"built":[206],"top":[208],"Functions.":[212],"Comprehensive":[213],"examples":[214],"are":[215,241],"used":[216,242],"illustrate":[218],"benefits":[220],"proposal":[223],"terms":[225],"clarity,":[227],"modularity,":[228],"feature":[229],"coverage,":[230],"its":[232],"low":[233],"The":[236],"mentioned":[239],"before":[240],"encode":[244],"statically":[246],"check":[247],"desired":[248],"interaction":[249],"properties.":[250]},"counts_by_year":[{"year":2020,"cited_by_count":1}],"updated_date":"2026-11-07T11:25:07.637180","created_date":"2018-09-27T00:00:00"}
