The Javatime Approach to Mixed Hardware-Software System Design [chapter]

James Shin Young, Josh MacDonald, Michael Shilman, Abdallah Tabbara, Paul Hilfinger, A. Richard Newton
1999 System-Level Synthesis  
We describe an approach for using Java as a basis for a design and specification language for embedded systems and use our JavaTime system to illustrate many of the aspects of the approach. Java is a pragmatic choice for several reasons. Since it is a member of the C "family" of languages, it is familiar to designers. Unlike C and C++, it has standard support for concurrency. Its treatment of arrays permits better static and dynamic error checking than is conveniently feasible in C and C++.
more » ... lly, while Java's expressive power is comparable to C++, it is a much simpler language, which greatly eases the task of introducing additional analysis into compilers. Successive, formal refinement is an approach we have developed for specification of embedded systems using a general-purpose programming language. Systems are formally modeled as Abstractable Reactive systems, and Java is used as the design input language. A policy-of-use is applied to Java, in the form of language usage restrictions and class-library extensions, to ensure consistency with the formal model. A process of incremental, userguided program transformation is used to refine a Java program until it is consistent with the policy-of-use. This approach allows systems design to begin with the flexibility of a general-purpose language, followed by gradual refinement into a more restricted form necessary for specification.
doi:10.1007/978-94-011-4698-2_11 fatcat:czxjdsuimjduvaaxfn2o5ro5ou