{"created":"2025-01-19T01:14:04.388225+00:00","updated":"2025-01-19T17:14:58.435563+00:00","metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00213163","sets":["934:935:10452:10651"]},"path":["10651"],"owner":"44499","recid":"213163","title":["A Functional Reactive Programming Language for Small-Scale Embedded Systems with Recursive Data Types"],"pubdate":{"attribute_name":"公開日","attribute_value":"2021-09-30"},"_buckets":{"deposit":"3f850061-7a17-4c2d-abef-02a2d4d95ed7"},"_deposit":{"id":"213163","pid":{"type":"depid","value":"213163","revision_id":0},"owners":[44499],"status":"published","created_by":44499},"item_title":"A Functional Reactive Programming Language for Small-Scale Embedded Systems with Recursive Data Types","author_link":["544905","544902","544901","544904","544906","544903"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"A Functional Reactive Programming Language for Small-Scale Embedded Systems with Recursive Data Types"},{"subitem_title":"A Functional Reactive Programming Language for Small-Scale Embedded Systems with Recursive Data Types","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"[通常論文] functional reactive programming, embedded systems, type systems","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2021-09-30","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"Department of Computer Science, School of Computing, Tokyo Institute of Technology"},{"subitem_text_value":"Department of Computer Science, School of Computing, Tokyo Institute of Technology"},{"subitem_text_value":"Department of Computer Science, School of Computing, Tokyo Institute of Technology"}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Department of Computer Science, School of Computing, Tokyo Institute of Technology","subitem_text_language":"en"},{"subitem_text_value":"Department of Computer Science, School of Computing, Tokyo Institute of Technology","subitem_text_language":"en"},{"subitem_text_value":"Department of Computer Science, School of Computing, Tokyo Institute of Technology","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"eng"}]},"item_publisher":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"publish_status":"0","weko_shared_id":-1,"item_file_price":{"attribute_name":"Billing file","attribute_type":"file","attribute_value_mlt":[{"url":{"url":"https://ipsj.ixsq.nii.ac.jp/record/213163/files/IPSJ-TPRO1404003.pdf","label":"IPSJ-TPRO1404003.pdf"},"date":[{"dateType":"Available","dateValue":"2023-09-30"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO1404003.pdf","filesize":[{"value":"2.7 MB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"0","billingrole":"5"},{"tax":["include_tax"],"price":"0","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"ecd8d993-f800-465f-8f14-9e6bda1f1bf0","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2021 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Akihiko, Yokoyama"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Sosuke, Moriguchi"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Takuo, Watanabe"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Akihiko, Yokoyama","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Sosuke, Moriguchi","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Takuo, Watanabe","creatorNameLang":"en"}],"nameIdentifiers":[{}]}]},"item_3_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AA11464814","subitem_source_identifier_type":"NCID"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_6501","resourcetype":"journal article"}]},"item_3_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"1882-7802","subitem_source_identifier_type":"ISSN"}]},"item_3_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"We introduce a new type system to Emfrp, a functional reactive programming (FRP) language designed for resource-constrained embedded systems. Functional reactive programming is a programming paradigm that allows concise descriptions of reactive systems such as GUIs by combining time-varying values that express values changing over time. Emfrp is a domain-specific language based on FRP, designed and developed for small-scale embedded systems. Because the language can statically determine the amount of runtime memory and guarantee the termination of reactive actions, a program written in Emfrp can safely continue reactive behaviors in resource-constrained environments. To ensure these properties, Emfrp disallows the use of recursive data types and functions. However, such restrictions often impose unnatural representations of data structures like lists or trees. The declarative characteristic of FRP and these restrictions impel us to write poorly maintainable redundant codes or deter us from writing certain types of programs. In this paper, we propose EmfrpBCT, an extended Emfrp with size-annotated recursive data types, to overcome this problem. The proposed system is more expressive than Emfrp, yet, it retains the aforementioned static properties. After explaining that through examples, we describe the features of EmfrpBCT, formalize the language, present an algorithm for statically computing the runtime memory bounds, and prove its soundness. Moreover, we implemented a compiler from EmfrpBCT to C, measured the translation time, and evaluated runtime overhead.\n------------------------------\nThis is a preprint of an article intended for publication Journal of\nInformation Processing(JIP). This preprint should not be cited. This\narticle should be cited as: Journal of Information Processing Vol.29(2021) (online)\n------------------------------","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"We introduce a new type system to Emfrp, a functional reactive programming (FRP) language designed for resource-constrained embedded systems. Functional reactive programming is a programming paradigm that allows concise descriptions of reactive systems such as GUIs by combining time-varying values that express values changing over time. Emfrp is a domain-specific language based on FRP, designed and developed for small-scale embedded systems. Because the language can statically determine the amount of runtime memory and guarantee the termination of reactive actions, a program written in Emfrp can safely continue reactive behaviors in resource-constrained environments. To ensure these properties, Emfrp disallows the use of recursive data types and functions. However, such restrictions often impose unnatural representations of data structures like lists or trees. The declarative characteristic of FRP and these restrictions impel us to write poorly maintainable redundant codes or deter us from writing certain types of programs. In this paper, we propose EmfrpBCT, an extended Emfrp with size-annotated recursive data types, to overcome this problem. The proposed system is more expressive than Emfrp, yet, it retains the aforementioned static properties. After explaining that through examples, we describe the features of EmfrpBCT, formalize the language, present an algorithm for statically computing the runtime memory bounds, and prove its soundness. Moreover, we implemented a compiler from EmfrpBCT to C, measured the translation time, and evaluated runtime overhead.\n------------------------------\nThis is a preprint of an article intended for publication Journal of\nInformation Processing(JIP). This preprint should not be cited. This\narticle should be cited as: Journal of Information Processing Vol.29(2021) (online)\n------------------------------","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicIssueDates":{"bibliographicIssueDate":"2021-09-30","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"4","bibliographicVolumeNumber":"14"}]},"relation_version_is_last":true,"weko_creator_id":"44499"},"id":213163,"links":{}}