{"id":"https://openalex.org/W2029735511","doi":"https://doi.org/10.1145/2814204.2814207","title":"Generating reactive programs for graphical user interfaces from multi-way dataflow constraint systems","display_name":"Generating reactive programs for graphical user interfaces from multi-way dataflow constraint systems","publication_year":2015,"publication_date":"2015-10-26","ids":{"openalex":"https://openalex.org/W2029735511","doi":"https://doi.org/10.1145/2814204.2814207","mag":"2029735511"},"language":"en","primary_location":{"id":"doi:10.1145/2814204.2814207","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814204.2814207","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2015 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/A5071167426","display_name":"Gabriel Foust","orcid":null},"institutions":[{"id":"https://openalex.org/I91045830","display_name":"Texas A&M University","ror":"https://ror.org/01f5ytq51","country_code":"US","type":"education","lineage":["https://openalex.org/I91045830"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Gabriel Foust","raw_affiliation_strings":["Texas A&amp;M University, USA"],"affiliations":[{"raw_affiliation_string":"Texas A&amp;M University, USA","institution_ids":["https://openalex.org/I91045830"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5047665290","display_name":"Jaakko J\u00e4rvi","orcid":"https://orcid.org/0000-0002-3418-7366"},"institutions":[{"id":"https://openalex.org/I91045830","display_name":"Texas A&M University","ror":"https://ror.org/01f5ytq51","country_code":"US","type":"education","lineage":["https://openalex.org/I91045830"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jaakko J\u00e4rvi","raw_affiliation_strings":["Texas A&amp;M University, USA"],"affiliations":[{"raw_affiliation_string":"Texas A&amp;M University, USA","institution_ids":["https://openalex.org/I91045830"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5073903806","display_name":"Sean Parent","orcid":null},"institutions":[{"id":"https://openalex.org/I1306409833","display_name":"Adobe Systems (United States)","ror":"https://ror.org/059tvcg64","country_code":"US","type":"company","lineage":["https://openalex.org/I1306409833"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Sean Parent","raw_affiliation_strings":["Adobe, USA","Adobe, USA#TAB#"],"affiliations":[{"raw_affiliation_string":"Adobe, USA","institution_ids":["https://openalex.org/I1306409833"]},{"raw_affiliation_string":"Adobe, USA#TAB#","institution_ids":["https://openalex.org/I1306409833"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5071167426"],"corresponding_institution_ids":["https://openalex.org/I91045830"],"apc_list":null,"apc_paid":null,"fwci":0.4314,"has_fulltext":false,"cited_by_count":5,"citation_normalized_percentile":{"value":0.75950812,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"121","last_page":"130"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9980000257492065,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9980000257492065,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9972000122070312,"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.9962999820709229,"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/computer-science","display_name":"Computer science","score":0.9021306037902832},{"id":"https://openalex.org/keywords/dataflow","display_name":"Dataflow","score":0.7403595447540283},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6654822826385498},{"id":"https://openalex.org/keywords/programmer","display_name":"Programmer","score":0.5886998176574707},{"id":"https://openalex.org/keywords/reactive-programming","display_name":"Reactive programming","score":0.5696468949317932},{"id":"https://openalex.org/keywords/event-driven-programming","display_name":"Event-driven programming","score":0.5394817590713501},{"id":"https://openalex.org/keywords/functional-reactive-programming","display_name":"Functional reactive programming","score":0.5373533964157104},{"id":"https://openalex.org/keywords/asynchronous-communication","display_name":"Asynchronous communication","score":0.44861969351768494},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.43638068437576294},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3334805369377136},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.27766937017440796}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9021306037902832},{"id":"https://openalex.org/C96324660","wikidata":"https://www.wikidata.org/wiki/Q205446","display_name":"Dataflow","level":2,"score":0.7403595447540283},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6654822826385498},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.5886998176574707},{"id":"https://openalex.org/C150762246","wikidata":"https://www.wikidata.org/wiki/Q4354073","display_name":"Reactive programming","level":4,"score":0.5696468949317932},{"id":"https://openalex.org/C77362995","wikidata":"https://www.wikidata.org/wiki/Q1135914","display_name":"Event-driven programming","level":5,"score":0.5394817590713501},{"id":"https://openalex.org/C119489759","wikidata":"https://www.wikidata.org/wiki/Q5508843","display_name":"Functional reactive programming","level":5,"score":0.5373533964157104},{"id":"https://openalex.org/C151319957","wikidata":"https://www.wikidata.org/wiki/Q752739","display_name":"Asynchronous communication","level":2,"score":0.44861969351768494},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.43638068437576294},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3334805369377136},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.27766937017440796},{"id":"https://openalex.org/C31258907","wikidata":"https://www.wikidata.org/wiki/Q1301371","display_name":"Computer network","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2814204.2814207","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814204.2814207","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4","score":0.4699999988079071}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":26,"referenced_works":["https://openalex.org/W58322501","https://openalex.org/W1491796397","https://openalex.org/W1528312358","https://openalex.org/W1944521327","https://openalex.org/W1968464751","https://openalex.org/W1970757850","https://openalex.org/W1992337747","https://openalex.org/W1996974848","https://openalex.org/W2019153550","https://openalex.org/W2021838450","https://openalex.org/W2023295580","https://openalex.org/W2041311157","https://openalex.org/W2043487183","https://openalex.org/W2065131671","https://openalex.org/W2078328646","https://openalex.org/W2079512738","https://openalex.org/W2089589666","https://openalex.org/W2096607457","https://openalex.org/W2100599950","https://openalex.org/W2121147677","https://openalex.org/W2149305110","https://openalex.org/W2296513191","https://openalex.org/W2997671293","https://openalex.org/W3023901936","https://openalex.org/W4230374415","https://openalex.org/W4297938573"],"related_works":["https://openalex.org/W4236134058","https://openalex.org/W2161156675","https://openalex.org/W2252363018","https://openalex.org/W4239436350","https://openalex.org/W1566004947","https://openalex.org/W1545353403","https://openalex.org/W2148950550","https://openalex.org/W1996596157","https://openalex.org/W2129576602","https://openalex.org/W2029735511"],"abstract_inverted_index":{"For":[0],"a":[1,95,98,114,145,172,177],"GUI":[2,23,62,96,118,140],"to":[3,10,14,22,26,34,153,166,181],"remain":[4],"responsive,":[5],"it":[6,182],"must":[7,92,108],"be":[8,15],"able":[9],"schedule":[11],"lengthy":[12],"tasks":[13],"executed":[16],"asynchronously.":[17],"In":[18,170],"the":[19,106,122,190,193,199,204],"traditional":[20],"approach":[21,116,129,188],"implementation--writing":[24],"functions":[25],"handle":[27],"individual":[28],"user":[29,154],"events--asynchronous":[30],"programming":[31,57,91,119],"easily":[32],"leads":[33],"defects.":[35],"Ensuring":[36],"that":[37,120],"all":[38],"data":[39,68,80,160],"dependencies":[40,69,81,161],"are":[41,52],"respected":[42],"is":[43,130,142],"difficult":[44],"when":[45],"new":[46,159,184],"events":[47,51,155,185,197],"arrive":[48],"while":[49],"prior":[50,134],"still":[53],"being":[54],"handled.":[55],"Reactive":[56,90],"techniques,":[58],"gaining":[59],"popularity":[60],"in":[61,82],"programming,":[63],"help":[64],"since":[65],"they":[66],"make":[67],"explicit":[70],"and":[71,162],"enforce":[72,167],"them":[73],"automatically":[74],"as":[75,97,183],"variables'":[76],"values":[77],"change.":[78],"However,":[79],"GUIs":[83],"usually":[84],"change":[85],"along":[86],"with":[87],"its":[88],"state.":[89],"therefore":[93],"describe":[94],"collection":[99],"of":[100,196,203,206],"many":[101],"reactive":[102,178],"programs,":[103],"whose":[104],"interaction":[105],"programmer":[107,123],"explicitly":[109],"coordinate.":[110],"This":[111],"paper":[112],"presents":[113],"declarative":[115],"for":[117],"relieves":[121],"from":[124],"coordinating":[125],"asynchronous":[126,164],"computations.":[127],"The":[128,187],"based":[131],"on":[132,136],"our":[133],"work":[135],"\"property":[137],"models\",":[138],"where":[139],"state":[141],"maintained":[143],"by":[144,156],"dataflow":[146],"constraint":[147],"system.":[148],"A":[149],"property":[150,173],"model":[151,174],"responds":[152],"atomically":[157],"constructing":[158],"scheduling":[163],"computations":[165],"those":[168,207],"dependencies.":[169],"essence,":[171],"dynamically":[175],"generates":[176],"program,":[179],"adding":[180],"occur.":[186],"gives":[189],"following":[191],"guarantee:":[192],"same":[194,200],"sequence":[195],"produces":[198],"results,":[201],"regardless":[202],"timing":[205],"events.":[208]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":3},{"year":2018,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
