1998 · 64 citations · 10 references
EngineeringGeneral-purpose Programming Language.systemsSoftware EngineeringEmbedded SystemsSoftware AnalysisFormal VerificationLanguageusage RestrictionsSystems EngineeringFormal TechniqueFormal RefinementProgramming LanguagesFormal SpecificationComputer EngineeringComputer ScienceReal-time JavaSoftware DesignProgramming Language DesignSpecification LanguageProgram AnalysisFormal MethodsSystem SoftwareSystem Specification
Successive, formal refinement is a new approach for specificationof embedded systems using a general-purpose programming language.Systems are formally modeled as Abstractable SynchronousReactive systems, and Java is used as the design inputlanguage. A policy of use is applied to Java, in the form of languageusage restrictions and class-library extensions, to ensureconsistency with the formal model. A process of incremental,user-guided program transformation is used to refine a Java programuntil it is consistent with the policy of use. The final productis a system specification possessing the properties of the formalmodel, including deterministic behavior, bounded memory usage,and bounded execution time. This approach allows systems designto begin with the flexibility of a general-purpose language, followedby gradual refinement into a more restricted form necessaryfor specification.
10
The synchronous data flow programming language LUSTRE
Nicolas Halbwachs, P. Caspi, Pascal Raymond et al. · Proceedings of the IEEE · 1991 · 1.5K citations · Full text
Efficient Sequential Program, Engineering, Software Systems +21