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 Emfrp BCT , 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 Emfrp BCT , formalize the language, present an algorithm for statically computing the runtime memory bounds, and prove its soundness. Moreover, we implemented a compiler from Emfrp BCT to C, measured the translation time, and evaluated runtime overhead.
Interactive theorem provers such as Coq are widely used for program verification. However, if one aims to, for example, add a simple feature to an already-verified program, it may require reconstructing the entire proof. In other words, building upon a verified program (a program with its accompanying proofs) while also maintaining its consistency is generally not an easy task.We propose a novel method to support the extension of verified programs by interactively modifying their definitions and proofs. We introduce ECoq, an extended version of Coq, which is equipped with a mechanism to help extend inductive types. When a type is modified, ECoq locates the corresponding areas requiring modification in the program and its proofs. Unfortunately, however, this can produce spurious modifications that may complicate the extension of large programs. Hence, we also introduce the concept of "correction candidates," which are used to reduce the number of spurious modifications semi-automatically.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.