首页 > 最新文献

Proceedings of the 15th International Conference on Modularity最新文献

英文 中文
Modularity and optimization in synergy 模块化和协同优化
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889445
W. Cazzola, A. Shaqiri
As with traditional software, the complexity of a programming language implementation is faced with modularization which favors the separation of concerns, independent development, maintainability and reuse. However, modularity interferes with language optimization as the latter requires context information that crosses over the single module boundaries and involves other modules. This renders hard to provide the optimization for a single language concept to be reusable with the concept itself. Therefore, the optimization is in general postponed to when all language concepts are available. We defined a model for modular language development with a multiple semantic actions dispatcher based on condition guards that are evaluated at runtime. The optimization can be implemented as context-dependent extensions applied a posteriori to the composed language interpreter without modifying a single component implementation. This renders effective the defined optimization within the language concept boundaries according to the context provided by other language concepts when available and eases its reuse with the language concepts implementation independently of its usage context. The presented model is integrated into the Neverlang development framework and is demonstrated on the optimization of a Javascript interpreter written in Neverlang. We also discuss the applicability of our model to other frameworks for modular language development.
与传统软件一样,编程语言实现的复杂性面临着模块化,模块化有利于分离关注点、独立开发、可维护性和重用。然而,模块化会干扰语言优化,因为后者需要跨越单个模块边界并涉及其他模块的上下文信息。这使得很难为单个语言概念提供可与概念本身一起重用的优化。因此,优化通常被推迟到所有语言概念都可用的时候。我们定义了一个用于模块化语言开发的模型,该模型使用基于运行时评估的条件守卫的多语义动作调度程序。优化可以作为上下文相关的扩展来实现,后向组合语言解释器应用,而无需修改单个组件实现。这使得根据可用的其他语言概念提供的上下文在语言概念边界内有效地定义优化,并简化了独立于其使用上下文的语言概念实现的重用。所提出的模型集成到Neverlang开发框架中,并在使用Neverlang编写的Javascript解释器的优化上进行了演示。我们还讨论了我们的模型对其他模块化语言开发框架的适用性。
{"title":"Modularity and optimization in synergy","authors":"W. Cazzola, A. Shaqiri","doi":"10.1145/2889443.2889445","DOIUrl":"https://doi.org/10.1145/2889443.2889445","url":null,"abstract":"As with traditional software, the complexity of a programming language implementation is faced with modularization which favors the separation of concerns, independent development, maintainability and reuse. However, modularity interferes with language optimization as the latter requires context information that crosses over the single module boundaries and involves other modules. This renders hard to provide the optimization for a single language concept to be reusable with the concept itself. Therefore, the optimization is in general postponed to when all language concepts are available. We defined a model for modular language development with a multiple semantic actions dispatcher based on condition guards that are evaluated at runtime. The optimization can be implemented as context-dependent extensions applied a posteriori to the composed language interpreter without modifying a single component implementation. This renders effective the defined optimization within the language concept boundaries according to the context provided by other language concepts when available and eases its reuse with the language concepts implementation independently of its usage context. The presented model is integrated into the Neverlang development framework and is demonstrated on the optimization of a Javascript interpreter written in Neverlang. We also discuss the applicability of our model to other frameworks for modular language development.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116498658","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Fault tolerance with aspects: a feasibility study 容错与方面:可行性研究
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889453
Sven Karol, Norman A. Rink, Bálint Gyapjas, J. Castrillón
To enable correct program execution on unreliable hardware, software can be made fault-tolerant by adding program statements or machine instructions for fault detection and recovery. Manually modifying programs does not scale, and extending compilers to emit additional machine instructions lacks flexibility. However, since software-implemented hardware fault tolerance (SIHFT) can be understood as a cross-cutting concern, we propose aspect-oriented programming as a suitable implementation technique. We prove this proposition by implementing an AN encoder based on AspectC++. In terms of performance and fault coverage, we achieve comparable results to existing compiler-based solutions.
为了在不可靠的硬件上正确执行程序,可以通过添加程序语句或机器指令来进行故障检测和恢复,从而使软件具有容错性。手动修改程序不能扩展,扩展编译器以发出额外的机器指令缺乏灵活性。然而,由于软件实现的硬件容错(SIHFT)可以理解为横切关注点,我们建议将面向方面的编程作为合适的实现技术。我们通过实现一个基于aspectc++的an编码器来证明这一命题。在性能和故障覆盖率方面,我们获得了与现有的基于编译器的解决方案相当的结果。
{"title":"Fault tolerance with aspects: a feasibility study","authors":"Sven Karol, Norman A. Rink, Bálint Gyapjas, J. Castrillón","doi":"10.1145/2889443.2889453","DOIUrl":"https://doi.org/10.1145/2889443.2889453","url":null,"abstract":"To enable correct program execution on unreliable hardware, software can be made fault-tolerant by adding program statements or machine instructions for fault detection and recovery. Manually modifying programs does not scale, and extending compilers to emit additional machine instructions lacks flexibility. However, since software-implemented hardware fault tolerance (SIHFT) can be understood as a cross-cutting concern, we propose aspect-oriented programming as a suitable implementation technique. We prove this proposition by implementing an AN encoder based on AspectC++. In terms of performance and fault coverage, we achieve comparable results to existing compiler-based solutions.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"97 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115162893","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Modular architecture for code and metadata sharing 用于代码和元数据共享的模块化架构
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889455
Tomás Tauber, B. C. D. S. Oliveira
Every fragment of code we write has dependencies and associated metadata. Code dependencies range from local references and standard library definitions to external third party libraries. Metadata spans from within source code files (hierarchical names and code comments) to external files and database servers (package-level dependency configurations, build and test results, code reviews etc.). This scattered storage and non-uniform access limits our programming environments in their functionality and extensibility. In this paper, we propose a modular system architecture, Haknam, better suited for code and related metadata sharing. Haknam precisely tracks code interdependencies, allows flexible naming and querying of code references, and collects code fragments and their related metadata as messages in a distributed log-centric pipeline. We argue that this setting brings considerable advantages. In particular, we focus on modular development of tools and services that can assist in programming-related tasks. Every new functionality can be simply added by creating and processing messages from the distributed pipeline.
我们编写的每个代码片段都有依赖关系和相关的元数据。代码依赖的范围从本地引用和标准库定义到外部第三方库。元数据从源代码文件内部(层次名称和代码注释)到外部文件和数据库服务器(包级依赖配置、构建和测试结果、代码审查等)。这种分散的存储和不统一的访问限制了我们的编程环境的功能和可扩展性。在本文中,我们提出了一个模块化的系统架构,Haknam,更适合于代码和相关元数据的共享。Haknam精确地跟踪代码的相互依赖关系,允许灵活地命名和查询代码引用,并在以日志为中心的分布式管道中收集代码片段及其相关元数据作为消息。我们认为这种设置带来了相当大的优势。特别地,我们专注于工具和服务的模块化开发,这些工具和服务可以帮助完成与编程相关的任务。每个新功能都可以通过创建和处理来自分布式管道的消息来简单地添加。
{"title":"Modular architecture for code and metadata sharing","authors":"Tomás Tauber, B. C. D. S. Oliveira","doi":"10.1145/2889443.2889455","DOIUrl":"https://doi.org/10.1145/2889443.2889455","url":null,"abstract":"Every fragment of code we write has dependencies and associated metadata. Code dependencies range from local references and standard library definitions to external third party libraries. Metadata spans from within source code files (hierarchical names and code comments) to external files and database servers (package-level dependency configurations, build and test results, code reviews etc.). This scattered storage and non-uniform access limits our programming environments in their functionality and extensibility. In this paper, we propose a modular system architecture, Haknam, better suited for code and related metadata sharing. Haknam precisely tracks code interdependencies, allows flexible naming and querying of code references, and collects code fragments and their related metadata as messages in a distributed log-centric pipeline. We argue that this setting brings considerable advantages. In particular, we focus on modular development of tools and services that can assist in programming-related tasks. Every new functionality can be simply added by creating and processing messages from the distributed pipeline.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116220498","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
The expression problem, trivially! 表达式问题,琐碎!
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889448
Yanlin Wang, B. C. D. S. Oliveira
This paper presents a novel and simple solution to Wadler’s Expression Problem that works in conventional object-oriented languages. Unlike all existing solutions in Java-like languages, this new solution does not use any kind of generics: it relies only on subtyping. The key to the solution is the use of covariant type refinement of return types (or fields): a simple feature available in many object-oriented languages, but not as widely known or used as it should be. We believe that our results present valuable insights for researchers and programming language designers interested in extensibility. Furthermore our results have immediate applicability as practical design patterns for programmers interested in improving extensibility of their programs.
本文提出了一种新颖而简单的解决Wadler表达式问题的方法,该方法适用于传统的面向对象语言。与所有现有的类java语言解决方案不同,这个新解决方案不使用任何类型的泛型:它只依赖于子类型。该解决方案的关键是使用返回类型(或字段)的协变类型细化:这是许多面向对象语言中都有的一个简单特性,但并没有得到应有的广泛了解或使用。我们相信,我们的结果为对可扩展性感兴趣的研究人员和编程语言设计者提供了有价值的见解。此外,我们的结果作为实用的设计模式对那些对提高程序的可扩展性感兴趣的程序员具有直接的适用性。
{"title":"The expression problem, trivially!","authors":"Yanlin Wang, B. C. D. S. Oliveira","doi":"10.1145/2889443.2889448","DOIUrl":"https://doi.org/10.1145/2889443.2889448","url":null,"abstract":"This paper presents a novel and simple solution to Wadler’s Expression Problem that works in conventional object-oriented languages. Unlike all existing solutions in Java-like languages, this new solution does not use any kind of generics: it relies only on subtyping. The key to the solution is the use of covariant type refinement of return types (or fields): a simple feature available in many object-oriented languages, but not as widely known or used as it should be. We believe that our results present valuable insights for researchers and programming language designers interested in extensibility. Furthermore our results have immediate applicability as practical design patterns for programmers interested in improving extensibility of their programs.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125227052","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 23
On ordering problems in message passing software 论消息传递软件中的排序问题
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889444
Yuheng Long, M. Bagherzadeh, Eric Lin, Ganesha Upadhyaya, Hridesh Rajan
The need for concurrency in modern software is increasingly fulfilled by utilizing the message passing paradigm because of its modularity and scalability. In the message passing paradigm, concurrently running processes communicate by sending and receiving messages. Asynchronous messaging introduces the possibility of message ordering problems: two messages with a specific order in the program text could take effect in the opposite order in the program execution and lead to bugs that are hard to find and debug. We believe that the engineering of message passing software could be easier if more is known about the characteristics of message ordering problems in practice. In this work, we present an analysis to study and quantify the relation between ordering problems and semantics variations of their underlying message passing paradigm in over 30 applications. Some of our findings are as follows: (1) semantic variations of the message passing paradigm can cause ordering problems exhibited by applications in different programming patterns to vary greatly; (2) some semantic features such as in-order messaging are critical for reducing ordering problems; (3) modular enforcement of aliasing in terms of data isolation allows small test configurations to trigger the majority of ordering problems.
由于消息传递范式的模块化和可伸缩性,现代软件中对并发性的需求越来越多地通过使用消息传递范式来满足。在消息传递范例中,并发运行的进程通过发送和接收消息进行通信。异步消息传递引入了消息排序问题的可能性:程序文本中具有特定顺序的两条消息在程序执行中可能以相反的顺序生效,从而导致难以查找和调试的错误。我们相信,如果在实践中更多地了解消息排序问题的特征,那么消息传递软件的工程设计将会更加容易。在这项工作中,我们提出了一项分析,以研究和量化30多个应用程序中排序问题与其底层消息传递范式的语义变化之间的关系。我们的一些发现如下:(1)消息传递范式的语义变化会导致不同编程模式下的应用程序所表现出的排序问题差异很大;(2)一些语义特征,如有序消息传递,对于减少排序问题至关重要;(3)数据隔离方面的混叠模块化实施允许小的测试配置触发大多数排序问题。
{"title":"On ordering problems in message passing software","authors":"Yuheng Long, M. Bagherzadeh, Eric Lin, Ganesha Upadhyaya, Hridesh Rajan","doi":"10.1145/2889443.2889444","DOIUrl":"https://doi.org/10.1145/2889443.2889444","url":null,"abstract":"The need for concurrency in modern software is increasingly fulfilled by utilizing the message passing paradigm because of its modularity and scalability. In the message passing paradigm, concurrently running processes communicate by sending and receiving messages. Asynchronous messaging introduces the possibility of message ordering problems: two messages with a specific order in the program text could take effect in the opposite order in the program execution and lead to bugs that are hard to find and debug. We believe that the engineering of message passing software could be easier if more is known about the characteristics of message ordering problems in practice. In this work, we present an analysis to study and quantify the relation between ordering problems and semantics variations of their underlying message passing paradigm in over 30 applications. Some of our findings are as follows: (1) semantic variations of the message passing paradigm can cause ordering problems exhibited by applications in different programming patterns to vary greatly; (2) some semantic features such as in-order messaging are critical for reducing ordering problems; (3) modular enforcement of aliasing in terms of data isolation allows small test configurations to trigger the majority of ordering problems.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130181140","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 19
Segregating feature interfaces to support software product line maintenance 分离功能接口以支持软件产品线维护
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889451
B. Cafeo, Claus Hunsen, Alessandro F. Garcia, S. Apel, Jaejoon Lee
Although software product lines are widely used in practice, their maintenance is challenging. Features as units of behaviour can be heavily scattered across the source code of a product line, hindering modular reasoning. To alleviate this problem, feature interfaces aim at enhancing modular reasoning about features. However, considering all members of a feature interface is often cumbersome, especially due to the large number of members arising in practice. To address this problem, we present an approach to group members of a feature interface based on their mutual dependencies. We argue that often only a subset of all interface members is relevant to a maintenance task. Therefore, we propose a graph representation that is able to capture the collaboration between members and apply a clustering algorithm to it to group highly-related members and segregate non-related members. On a set of ten versions of a real-world product line, we evaluate the effectiveness of our approach, by comparing the two types of feature interfaces (segregated vs. original interfaces) with co-change information from the version-control system. We found a potential reduction of 62% of the interface members to be considered during maintenance. This way, the effort to reason about features can be reduced.
尽管软件产品线在实践中被广泛使用,但它们的维护是具有挑战性的。作为行为单元的特性可能严重分散在产品线的源代码中,阻碍了模块化推理。为了缓解这一问题,特征接口旨在增强对特征的模块化推理。然而,考虑一个特征接口的所有成员往往是麻烦的,特别是由于在实践中出现了大量的成员。为了解决这个问题,我们提出了一种基于相互依赖关系对功能接口的成员进行分组的方法。我们认为,通常只有所有接口成员的一个子集与维护任务相关。因此,我们提出了一种能够捕获成员之间协作的图表示,并对其应用聚类算法对高相关成员进行分组并分离非相关成员。在一组实际产品线的十个版本中,我们通过比较两种类型的特性接口(分离的与原始的接口)和来自版本控制系统的共同变更信息来评估我们方法的有效性。我们发现在维护期间要考虑的接口成员可能减少62%。通过这种方式,可以减少对特征进行推理的工作量。
{"title":"Segregating feature interfaces to support software product line maintenance","authors":"B. Cafeo, Claus Hunsen, Alessandro F. Garcia, S. Apel, Jaejoon Lee","doi":"10.1145/2889443.2889451","DOIUrl":"https://doi.org/10.1145/2889443.2889451","url":null,"abstract":"Although software product lines are widely used in practice, their maintenance is challenging. Features as units of behaviour can be heavily scattered across the source code of a product line, hindering modular reasoning. To alleviate this problem, feature interfaces aim at enhancing modular reasoning about features. However, considering all members of a feature interface is often cumbersome, especially due to the large number of members arising in practice. To address this problem, we present an approach to group members of a feature interface based on their mutual dependencies. We argue that often only a subset of all interface members is relevant to a maintenance task. Therefore, we propose a graph representation that is able to capture the collaboration between members and apply a clustering algorithm to it to group highly-related members and segregate non-related members. On a set of ten versions of a real-world product line, we evaluate the effectiveness of our approach, by comparing the two types of feature interfaces (segregated vs. original interfaces) with co-change information from the version-control system. We found a potential reduction of 62% of the interface members to be considered during maintenance. This way, the effort to reason about features can be reduced.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116262704","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
A type-and-effect system for asynchronous, typed events 用于异步、类型化事件的类型和效果系统
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889446
Yuheng Long, Hridesh Rajan
Implicit concurrency between handlers is important for event driven systems because it helps simultaneously promote modularity and scalability. Knowing the side-effect of the handlers is critical in these systems to avoid concurrency hazards such as data races. As event systems are dynamic because statically known and unknown handlers can register at almost any time during program execution, static effect analyses must reconcile over competing goals such as precision, soundness and modularity. We recently developed asynchronous, typed events, a system that can analyze the effects of the handlers at runtime. This mechanism utilizes runtime information to enable precise effect computation and greatly improves concurrency between handlers. In this paper, we present the formal underpinnings of asynchronous, typed events, and examine the concurrency safety properties it provides. The technical innovations of our system include a novel effect system to soundly approximate the dynamism introduced by runtime handlers registration, a static analysis to precompute the effects and a dynamic analysis that uses the precomputed effects to improve concurrency. Our design simplifies modular concurrency reasoning and avoids concurrency hazards.
处理程序之间的隐式并发对于事件驱动系统非常重要,因为它有助于同时提高模块化和可伸缩性。在这些系统中,了解处理程序的副作用对于避免并发性危险(如数据竞争)至关重要。由于事件系统是动态的,因为静态已知和未知处理程序几乎可以在程序执行期间的任何时间注册,因此静态效果分析必须在精度、稳健性和模块化等相互竞争的目标之间进行协调。我们最近开发了异步、类型化事件,这是一个可以在运行时分析处理程序效果的系统。该机制利用运行时信息来实现精确的效果计算,并极大地提高了处理程序之间的并发性。在本文中,我们介绍了异步、类型化事件的形式化基础,并研究了它提供的并发性安全属性。我们系统的技术创新包括一个新的效果系统,可以很好地近似运行时处理程序注册所引入的动态,一个静态分析来预计算效果,一个动态分析来使用预计算的效果来提高并发性。我们的设计简化了模块化并发推理,避免了并发危害。
{"title":"A type-and-effect system for asynchronous, typed events","authors":"Yuheng Long, Hridesh Rajan","doi":"10.1145/2889443.2889446","DOIUrl":"https://doi.org/10.1145/2889443.2889446","url":null,"abstract":"Implicit concurrency between handlers is important for event driven systems because it helps simultaneously promote modularity and scalability. Knowing the side-effect of the handlers is critical in these systems to avoid concurrency hazards such as data races. As event systems are dynamic because statically known and unknown handlers can register at almost any time during program execution, static effect analyses must reconcile over competing goals such as precision, soundness and modularity. We recently developed asynchronous, typed events, a system that can analyze the effects of the handlers at runtime. This mechanism utilizes runtime information to enable precise effect computation and greatly improves concurrency between handlers. In this paper, we present the formal underpinnings of asynchronous, typed events, and examine the concurrency safety properties it provides. The technical innovations of our system include a novel effect system to soundly approximate the dynamism introduced by runtime handlers registration, a static analysis to precompute the effects and a dynamic analysis that uses the precomputed effects to improve concurrency. Our design simplifies modular concurrency reasoning and avoids concurrency hazards.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126656474","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
On structuring holistic fault tolerance 论整体容错结构
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889458
Rem Gensh, A. Romanovsky, A. Yakovlev
Computer systems are developed taking into account that they should be easily maintained in the future. It is one of the main requirements for the sound architectural design. The existing approaches to introducing fault tolerance rely on recursive system structuring out of functional components – this typically results in non-optimal fault tolerance. The paper proposes a vision of structuring complex many-core systems by introducing a special component supporting system-wide fault tolerance coordination. The component acts as a central module making decisions about fault tolerance strategies to be implemented by individual system components depending on the performance and energy requirements specified as system operating modes.
计算机系统的发展考虑到它们将来应该易于维护。这是良好建筑设计的主要要求之一。现有的引入容错的方法依赖于功能组件的递归系统结构——这通常会导致非最优容错。通过引入支持全系统容错协调的特殊组件,提出了构建复杂多核系统的设想。该组件充当中央模块,根据系统操作模式指定的性能和能源需求,对由各个系统组件实现的容错策略做出决策。
{"title":"On structuring holistic fault tolerance","authors":"Rem Gensh, A. Romanovsky, A. Yakovlev","doi":"10.1145/2889443.2889458","DOIUrl":"https://doi.org/10.1145/2889443.2889458","url":null,"abstract":"Computer systems are developed taking into account that they should be easily maintained in the future. It is one of the main requirements for the sound architectural design. The existing approaches to introducing fault tolerance rely on recursive system structuring out of functional components – this typically results in non-optimal fault tolerance. The paper proposes a vision of structuring complex many-core systems by introducing a special component supporting system-wide fault tolerance coordination. The component acts as a central module making decisions about fault tolerance strategies to be implemented by individual system components depending on the performance and energy requirements specified as system operating modes.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"89 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127042738","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Constraints as polymorphic connectors 约束作为多态连接器
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889456
Marcel Weiher, R. Hirschfeld
The architecture of interactive systems does not match the procedural decomposition mechanisms available in most programming languages, leading to architectural mismatch. Constraint systems have been used only as black boxes for computing with primitive values of a specific type and for specific domains such as user interface layouts or program compilation. We propose constraints as a general purpose architectural connector for both describing the large-scale structure of interactive systems and matching that description with the actual implementation.
交互系统的体系结构与大多数编程语言中可用的过程分解机制不匹配,从而导致体系结构不匹配。约束系统仅被用作黑盒,用于使用特定类型的原始值和特定领域(如用户界面布局或程序编译)进行计算。我们建议将约束作为通用架构连接器,用于描述交互系统的大规模结构,并将该描述与实际实现相匹配。
{"title":"Constraints as polymorphic connectors","authors":"Marcel Weiher, R. Hirschfeld","doi":"10.1145/2889443.2889456","DOIUrl":"https://doi.org/10.1145/2889443.2889456","url":null,"abstract":"The architecture of interactive systems does not match the procedural decomposition mechanisms available in most programming languages, leading to architectural mismatch. Constraint systems have been used only as black boxes for computing with primitive values of a specific type and for specific domains such as user interface layouts or program compilation. We propose constraints as a general purpose architectural connector for both describing the large-scale structure of interactive systems and matching that description with the actual implementation.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"633 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123962420","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Matriona: class nesting with parameterization in Squeak/Smalltalk Matriona: Squeak/Smalltalk中带有参数化的类嵌套
Pub Date : 2016-03-14 DOI: 10.1145/2889443.2889457
M. Springer, Fabio Niephaus, R. Hirschfeld, H. Masuhara
We present Matriona, a module system for Squeak, a Smalltalk dialect. It supports class nesting and parameterization and is based on a hierarchical name lookup mechanism. Matriona solves a range of modularity issues in Squeak. Instead of a flat class organization, it provides a hierarchical namespace, that avoids name clashes and allows for shorter local names. Furthermore, it provides a way to share behavior among classes and modules using mixins and class hierarchy inheritance (a form of inheritance that subclasses an entire class family), respectively. Finally, it allows modules to be externally configurable, which is a form of dependency management decoupling a module from the actual implementation of its dependencies. Matriona is implemented on top of Squeak by introducing a new keyword for run-time name lookups through a reflective mechanism, without modifying the underlying virtual machine. We evaluate Matriona with a series of small applications and will demonstrate how its features can benefit modularity when porting a simple application written in plain Squeak to Matriona.
我们介绍了Matriona,一个用于Squeak(一种Smalltalk方言)的模块系统。它支持类嵌套和参数化,并基于分层名称查找机制。Matriona解决了Squeak中的一系列模块化问题。它提供了一个层次命名空间,而不是平面类组织,从而避免了名称冲突,并允许使用更短的本地名称。此外,它还提供了一种在类和模块之间共享行为的方法,分别使用mixin和类层次继承(继承的一种形式,继承整个类族的子类)。最后,它允许对模块进行外部配置,这是一种将模块与其依赖项的实际实现解耦的依赖项管理形式。Matriona是在Squeak之上实现的,它通过反射机制为运行时名称查找引入了一个新的关键字,而无需修改底层虚拟机。我们用一系列小型应用程序评估Matriona,并将演示其功能如何在将用普通Squeak编写的简单应用程序移植到Matriona时受益于模块化。
{"title":"Matriona: class nesting with parameterization in Squeak/Smalltalk","authors":"M. Springer, Fabio Niephaus, R. Hirschfeld, H. Masuhara","doi":"10.1145/2889443.2889457","DOIUrl":"https://doi.org/10.1145/2889443.2889457","url":null,"abstract":"We present Matriona, a module system for Squeak, a Smalltalk dialect. It supports class nesting and parameterization and is based on a hierarchical name lookup mechanism. Matriona solves a range of modularity issues in Squeak. Instead of a flat class organization, it provides a hierarchical namespace, that avoids name clashes and allows for shorter local names. Furthermore, it provides a way to share behavior among classes and modules using mixins and class hierarchy inheritance (a form of inheritance that subclasses an entire class family), respectively. Finally, it allows modules to be externally configurable, which is a form of dependency management decoupling a module from the actual implementation of its dependencies. Matriona is implemented on top of Squeak by introducing a new keyword for run-time name lookups through a reflective mechanism, without modifying the underlying virtual machine. We evaluate Matriona with a series of small applications and will demonstrate how its features can benefit modularity when porting a simple application written in plain Squeak to Matriona.","PeriodicalId":225551,"journal":{"name":"Proceedings of the 15th International Conference on Modularity","volume":"248 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124732070","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
期刊
Proceedings of the 15th International Conference on Modularity
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1