PROCOL: a protocol-constrained concurrent object-oriented language
Information Processing Letters
Specifications are (preferably) executable
Software Engineering Journal
Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Behavior Protocols for Software Components
IEEE Transactions on Software Engineering
Circular Compositional Reasoning about Liveness
CHARME '99 Proceedings of the 10th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods
Interpreting the Object Constraint Language
APSEC '98 Proceedings of the Fifth Asia Pacific Software Engineering Conference
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Actors: a model of concurrent computation in distributed systems (parallel processing, semantics, open, programming languages, artificial intelligence)
Logical-Time Contracts for Reactive Embedded Components
EUROMICRO '04 Proceedings of the 30th EUROMICRO Conference
Automatic Generation of Schedulings for Improving the Test Coverage of Systems-on-a-Chip
FMCAD '06 Proceedings of the Formal Methods in Computer Aided Design
Transaction-Level Modeling with Systemc: Tlm Concepts and Applications for Embedded Systems
Transaction-Level Modeling with Systemc: Tlm Concepts and Applications for Embedded Systems
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Proceedings of the conference on Design, automation and test in Europe
On the formal verification of systems of synchronous software components
SAFECOMP'12 Proceedings of the 31st international conference on Computer Safety, Reliability, and Security
Hi-index | 0.00 |
Embedded software is intrinsically concurrent, because an embedded system has several computing units. The way the software pieces communicate and synchronize depends on the hardware architecture. If the architecture is regular and fixed, there often exists a programming model that allows software developers to use it. If the architecture is ad hoc, heterogeneous, or changing, such a programming model does not exist, and the software developer has to be provided with a sufficient view of the hardware behavior. We propose a notion of contract associated with a component-based description framework, to help defining such views. The contracts are used to describe and simulate the potentially complex behaviors of the hardware execution platform, but only the situations the embedded software should be aware of. In some sense, the "semantics" of concurrency between the software pieces is given by the structure of the hardware platform, the interface it exposes to the software, and its contract behavior.