{"title":"嵌入式实时系统中活动对象的c++框架——弥合了建模和实现之间的差距","authors":"M. Caspersen","doi":"10.1109/TOOLS.1999.809414","DOIUrl":null,"url":null,"abstract":"In research communities it is now well-accepted that the object paradigm provides a good foundation for the challenges of concurrent and distributed computing. For practitioners, however, it is not without problems to combine the concepts of processes and objects. A major reason for this is that the predominant object-oriented programming language in industry, C++, does not support concurrency. In this paper we present a simple and powerful approach to extending C++ with constructs for concurrent programming. We discuss the design, application, and implementation of a framework that supports standard concurrency constructs and, contrary to what is suggested in several books on object oriented modeling techniques for real-time systems, we demonstrate that it is possible to integrate the notions of object and process and maintain a smooth-virtually non-existing-transition from modeling to implementation. The framework has been used at Bang and Olufsen, a major Danish manufacturer of audio and video equipment, to develop software for a CD player; we illustrate the strength of the approach with examples from this project. As a pleasant side benefit, the framework approach results in a considerable reduction of the code size of more than 50% compared to earlier versions of the system.","PeriodicalId":272695,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 32","volume":"72 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-11-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"A C++ framework for active objects in embedded real-time systems-bridging the gap between modeling and implementation\",\"authors\":\"M. Caspersen\",\"doi\":\"10.1109/TOOLS.1999.809414\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"In research communities it is now well-accepted that the object paradigm provides a good foundation for the challenges of concurrent and distributed computing. For practitioners, however, it is not without problems to combine the concepts of processes and objects. A major reason for this is that the predominant object-oriented programming language in industry, C++, does not support concurrency. In this paper we present a simple and powerful approach to extending C++ with constructs for concurrent programming. We discuss the design, application, and implementation of a framework that supports standard concurrency constructs and, contrary to what is suggested in several books on object oriented modeling techniques for real-time systems, we demonstrate that it is possible to integrate the notions of object and process and maintain a smooth-virtually non-existing-transition from modeling to implementation. The framework has been used at Bang and Olufsen, a major Danish manufacturer of audio and video equipment, to develop software for a CD player; we illustrate the strength of the approach with examples from this project. As a pleasant side benefit, the framework approach results in a considerable reduction of the code size of more than 50% compared to earlier versions of the system.\",\"PeriodicalId\":272695,\"journal\":{\"name\":\"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 32\",\"volume\":\"72 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1999-11-22\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 32\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/TOOLS.1999.809414\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 32","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TOOLS.1999.809414","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
摘要
在研究社区中,对象范式为并发和分布式计算的挑战提供了一个良好的基础,这一点现在被广泛接受。然而,对于实践者来说,将过程和对象的概念结合起来并非没有问题。造成这种情况的一个主要原因是工业中占主导地位的面向对象编程语言c++不支持并发性。在本文中,我们提出了一种简单而强大的方法,用并行编程的结构扩展c++。我们讨论了支持标准并发构造的框架的设计、应用和实现,并且,与几本关于实时系统面向对象建模技术的书中所建议的相反,我们证明了将对象和过程的概念集成并保持从建模到实现的平滑(实际上不存在)转换是可能的。该框架已被丹麦主要的音像设备制造商Bang and Olufsen用于开发CD播放机的软件;我们用这个项目中的例子来说明这种方法的优点。作为一个令人愉快的附带好处,与系统的早期版本相比,框架方法使代码大小大大减少了50%以上。
A C++ framework for active objects in embedded real-time systems-bridging the gap between modeling and implementation
In research communities it is now well-accepted that the object paradigm provides a good foundation for the challenges of concurrent and distributed computing. For practitioners, however, it is not without problems to combine the concepts of processes and objects. A major reason for this is that the predominant object-oriented programming language in industry, C++, does not support concurrency. In this paper we present a simple and powerful approach to extending C++ with constructs for concurrent programming. We discuss the design, application, and implementation of a framework that supports standard concurrency constructs and, contrary to what is suggested in several books on object oriented modeling techniques for real-time systems, we demonstrate that it is possible to integrate the notions of object and process and maintain a smooth-virtually non-existing-transition from modeling to implementation. The framework has been used at Bang and Olufsen, a major Danish manufacturer of audio and video equipment, to develop software for a CD player; we illustrate the strength of the approach with examples from this project. As a pleasant side benefit, the framework approach results in a considerable reduction of the code size of more than 50% compared to earlier versions of the system.