1350141
Polymorphic lambda calculus and subtyping
We present a denotational model for F, the extension of second-order lambda calculus with subtyping defined in Cardelli and Wegner (ACM Comput. Surveys 17(4) (1985) 471-522.) Types are interpreted as arbitrary cpos and elements of types as natural transformations. We prove the soundness of our model with respect to the equational theory of F (Cardelli et al. (Internat. Conf. on Theoretical Aspects of Computer Software, Lecture Notes in Computer Science, vol. 526, Springer, Berlin, 1991, pp. 750-770)) and show coherence. Our model is of independent interest, because it integrates ad hoc and parametric polymorphism in an elegant fashion, admits nontrivial records and record update operations, and formalizes an "order faithfulness" criterion for well-behaved multiple subtyping.
6204500
Underapproximating Predicate Transformers
We study the underapproximation of the predicate transformers used to give semantics to the modalities in dynamic and temporal logic. Because predicate transformers operate on state sets, we define appropriate powerdomains for sound approximation. We study four such domains — two are based on “set inclusion” approximation, and two are based on “quantification” approximation — and we apply the domains to synthesize the most precise, underapproximating $\widetilde{pre}$ and pre transformers, in the latter case, introducing a focus operation. We also show why the expected abstractions of post and $\widetilde{post}$ are unsound, and we use the powerdomains to guide us to correct, sound underapproximations.
16028114
Modal Transition Systems: A Foundation for Three-Valued Program Analysis
We present Kripke modal transition systems (Kripke MTSs), a generalization of modal transition systems [27, 26], as a foundation for three-valued program analysis. The semantics of Kripke MTSs are presented by means of a mixed power domain of states; soundness and consistency are proved. Two major applications, model checking partial state spaces and three-valued program shape analysis, are presented as evidence of the suitability of Kripke MTSs as a foundation for three-valued analyses.
105294
Structure-Preserving Binary Relations for Program Abstraction
An abstraction is a property-preserving contraction of a program's model into a smaller one that is suitable for automated analysis. An abstraction must be sound, and ideally, complete. Soundness and completeness arguments are intimately connected to the abstraction process, and approaches based on homomorphisms and Galois connections are commonly employed to define abstractions and prove their soundness and completeness.This paper develops Mycroft and Jones's proposal that an abstraction should be stated as a form of structure-preserving binary relation. Mycroft-Jones-style relations are defined, developed, and employed in characterizations of the homomorphism and Galois-connection approaches to abstraction.
7872163
Closed and Logical Relations for Over- and Under-Approximation of Powersets
We redevelop and extend Dams’s results on over- and under-approximation with higher-order Galois connections:
37519260
Trace-Based Abstract Interpretation of Operational Semantics
We present trace-based abstract interpretation, a unification of severallines of research on applying Cousot-Cousot-style abstract interpretation a.i. tooperational semantics definitions (such as flowchart, big-step, and small-step semantics)that express a program‘s semantics as a concrete computation tree of trace paths. Aprogram‘s trace-based a.i. is also a computation tree whose nodes contain abstractions ofstate and whose paths simulate the paths in the program‘s concrete computation tree.Using such computation trees, we provide a simple explanation of the central concept of collecting semantics, and we distinguish concrete from abstract collectingsemantics and state-based from path-based collecting semantics. We also expose therelationship between collecting semantics extraction and results garnered from flow-analytic and model-checking-based analysis techniques. We adapt concepts fromconcurrency theory to formalize “safe” and “live” a.i.‘s for computation trees; in particular, coinduction techniques help extend fundamental results to infinite computation trees.Problems specific to the various operational semantics methodologies are discussed: Big-step semantics cannot express divergence, so we employ a mixture of induction andcoinduction in response; small-step semantics generate sequences of programconfigurations unbounded in size, so we abstractly interpret source language syntax.Applications of trace-based a.i. to data-flow analysis, model checking, closure analysis,and concurrency theory are demonstrated.
207157628
Introducing embedded software and systems education and advanced learning technology in an engineering curriculum
Embedded software and systems are at the intersection of electrical engineering, computer engineering, and computer science, with, increasing importance, in mechanical engineering. Despite the clear need for knowledge of systems modeling and analysis (covered in electrical and other engineering disciplines) and analysis of computational processes (covered in computer science), few academic programs have integrated the two disciplines into a cohesive program of study. This paper describes the efforts conducted at Vanderbilt University to establish a curriculum that addresses the needs of embedded software and systems. Given the compartmentalized nature of traditional engineering schools, where each discipline has an independent program of study, we have had to devise innovative ways to bring together the two disciplines. The paper also describes our current efforts in using learning technology to construct, manage, and deliver sophisticated computer-aided learning modules that can supplement the traditional course structure in the individual disciplines through out-of-class and in-class use.
1160729
Applying model intelligence frameworks for deployment problem in real-time and embedded systems
There are many application domains, such as distributed real-time and embedded (DRE) systems, where the domain constraints are so restrictive and the solution spaces so large that it is infeasible for modelers to produce correct solution manually using a conventional graphical model-based approach. In DRE systems the available resources, such as memory, CPU, and bandwidth, must be managed carefully to ensure a certain level of quality of service. This paper provides three contributions to simplify modeling of complex application domains: (1) we present our approach of combining model intelligence and domain-specific solvers with model-driven engineering (MDE) environments, (2) we show techniques for automatically guiding modelers to correct solutions and how to support the specification of large and complex systems using intelligent mechanisms to complete partially specified models, and (3) we present the results of applying an MDE tool that maps software components to Electronic Control Units (ECUs) using the typical automotive modeling and middleware infrastructure.
209399239
Model driven development for distributed real-time and embedded systems
Despite advances in standards-based commercial-off-the-shelf (COTS) technologies, key challenges must be addressed before COTS software can be used to build mission-critical DRE systems effectively and productively. For example, developers of DRE systems continue to use ad hoc means to develop, configure, and deploy their applications and middleware due to the lack of formally analyzable and verifiable building block components. This talk will describe how Model Driven Development (MDD) techniques and tools can be used to specify, analyze, optimize, synthesize, validate, and deploy product-line architectures (PLAs) and standards-compliant middleware platforms that can be customized for the needs of next-generation DRE systems. MDD is an emerging paradigm that combines: - Domain-specific modeling languages (DSMLs), which provide programming notations that formalize the process of specifying application logic and quality of service (QoS)-related requirements in a PLA. - Metamodeling, which define type systems that precisely express key characteristics and constraints associated with DSMLs for PLAs in particular application domains, such as software defined radios, avionics, vehtronics, and process automation. - Model transformations and synthesis techniques that automate and ensure the consistency of software implementations with analysis information associated with functional and QoS requirements captured by models of PLA structure and behavior. This talk will compare and contrast various model-based approaches (e.g., MIC, MDD, MDA, etc) to developing PLA-based DRE systems. It will also illustrate how MDD techniques and tools have been successfully integrated with standards-based QoS-enabled component middleware to develop PLAs that significantly improve the quality and productivity associated with developing next-generation mission-critical DRE systems. Concrete examples from avionics, process control, software defined radios, and warehouse management systems will be used to illustrate key points.
15949052
Towards highly configurable real-time object request brokers
This paper discusses the software architecture of a real-time CORBA object request broker (ORB), called ZEN, written in real-time Java, which is designed to eliminate common sources of overhead and non-determinism in ORB implementations. We illustrate how ZEN can be configured to select the minimal set of components used by an application. Our experience with ZEN indicates that combining real-time Java with real-time CORBA is a major step forward towards simplifying the development and maintenance of distributed middleware and applications with stringent quality of service requirements.
946223
Evaluating the performance of middleware load balancing strategies
This work presents three contributions to research on middleware load balancing. First, it describes the design of Cygnus, which is an extensible open-source middleware framework developed to support adaptive and nonadaptive load balancing strategies. Key features of Cygnus are its ability to make load balancing decisions based on application-defined load metrics, dynamically (re)configure load balancing strategies at run-time, and transparently add load balancing support to client and server applications. Second, it describes the design of LBPerf, an open-source middleware load balancing benchmarking toolkit developed to evaluate load balancing strategies at the middleware level. Third, it presents the results of experiments that systematically evaluate the performance of adaptive load balancing strategies implemented using the Cygnus middleware framework using workloads generated by LBPerf. The workloads used in our experiments are based on models of CPU-bound requests that are representative of a broad range of distributed applications. Our experiments with LBPerf illustrate the need for evaluating different adaptive and nonadaptive load balancing strategies under different workload conditions. In addition to assisting in choosing a suitable load balancing strategy for a particular class of distributed applications, our empirical results help configure run-time parameters properly and analyze their behavior in the presence of different workloads. Our results also indicate that integrating Cygnus into distributed applications can improve their scalability, while incurring minimal run-time overhead. As a result, developers can concentrate on their core application behavior, rather than wrestling with complex middleware mechanisms needed to enhance the scalability of their distributed applications.