首页 > 最新文献

Proceedings of the 8th ACM International Workshop on Context-Oriented Programming最新文献

英文 中文
Detecting Invalid Layer Combinations Using Control-Flow Analysis for Android Android控制流分析检测无效层组合
Noriyuki Suzuki, T. Kamina, Katsuhisa Maruyama
In Context-Oriented Programming (COP), it is possible that invalid combinations between layers (a set of activated layers that violates some required properties) occur at runtime. Even though such combinations can be detected using runtime checking, it potentially requires a significant amount of cost for testing. In this paper, we propose a method to detect invalid combinations between layers using state-of-the-art control-flow analysis for Android applications. Using Android specific knowledge, such as the layout file for GUI components, reasonably precise callback sequences in Android applications are actually constructed, and our method applies this fact to the analysis of COP programs. Using a simple example, we demonstrate how our method finds invalid combinations between layers.
在面向上下文的编程(COP)中,层之间的无效组合(一组违反某些必需属性的激活层)可能会在运行时发生。尽管这样的组合可以通过运行时检查来检测,但它可能需要大量的测试成本。在本文中,我们提出了一种方法来检测层之间使用最先进的控制流分析Android应用程序的无效组合。使用Android的特定知识,例如GUI组件的布局文件,可以在Android应用程序中构造相当精确的回调序列,我们的方法将这一事实应用于COP程序的分析。使用一个简单的示例,我们演示了我们的方法如何查找层之间的无效组合。
{"title":"Detecting Invalid Layer Combinations Using Control-Flow Analysis for Android","authors":"Noriyuki Suzuki, T. Kamina, Katsuhisa Maruyama","doi":"10.1145/2951965.2951970","DOIUrl":"https://doi.org/10.1145/2951965.2951970","url":null,"abstract":"In Context-Oriented Programming (COP), it is possible that invalid combinations between layers (a set of activated layers that violates some required properties) occur at runtime. Even though such combinations can be detected using runtime checking, it potentially requires a significant amount of cost for testing. In this paper, we propose a method to detect invalid combinations between layers using state-of-the-art control-flow analysis for Android applications. Using Android specific knowledge, such as the layout file for GUI components, reasonably precise callback sequences in Android applications are actually constructed, and our method applies this fact to the analysis of COP programs. Using a simple example, we demonstrate how our method finds invalid combinations between layers.","PeriodicalId":118660,"journal":{"name":"Proceedings of the 8th ACM International Workshop on Context-Oriented Programming","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128886937","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
Classes as Layers: Rewriting Design Patterns with COP: Alternative Implementations of Decorator, Observer, and Visitor 类作为层:用COP重写设计模式:装饰器、观察者和访问者的替代实现
M. Springer, H. Masuhara, R. Hirschfeld
This paper analyzes and presents alternative implementations of three well-known Gang of Four design patterns: Decorator, Observer, and Visitor. These implementations are more than mere refactorings and take advantage of a variant of context-oriented programming that unifies classes and layers to overcome shortcomings in a conventional, object-oriented implementation.
本文分析并提出了三种著名的四人组设计模式的替代实现:Decorator、Observer和Visitor。这些实现不仅仅是重构,而且利用了面向上下文编程的一种变体,这种变体统一了类和层,以克服传统的面向对象实现中的缺点。
{"title":"Classes as Layers: Rewriting Design Patterns with COP: Alternative Implementations of Decorator, Observer, and Visitor","authors":"M. Springer, H. Masuhara, R. Hirschfeld","doi":"10.1145/2951965.2951968","DOIUrl":"https://doi.org/10.1145/2951965.2951968","url":null,"abstract":"This paper analyzes and presents alternative implementations of three well-known Gang of Four design patterns: Decorator, Observer, and Visitor. These implementations are more than mere refactorings and take advantage of a variant of context-oriented programming that unifies classes and layers to overcome shortcomings in a conventional, object-oriented implementation.","PeriodicalId":118660,"journal":{"name":"Proceedings of the 8th ACM International Workshop on Context-Oriented Programming","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117046928","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}
引用次数: 3
Transaction Layers: Controlling Granularity of Change in Live Programming Environments 事务层:控制实时编程环境中变化的粒度
Toni Mattis, Patrick Rein, R. Hirschfeld
Modifying source code in a live programming environment changes the behavior of currently running programs immediately. When complex changes affect multiple locations in the code before reaching a consistent state, running programs are in danger of "de-railing" when their control flow reaches the yet incomplete "construction site". Context-oriented Programming provides layers, which encapsulate code that would otherwise be scattered over many modules and can be activated to jointly adapt program behavior at run-time. We propose to transparently collect and group changes to the code in a COP layer and defer its activation until the programmer deems its change to be completed. Additionally, layer deactivation serves as immediate undo operation on the group of changes. We present and discuss a Squeak/Smalltalk prototype consisting of a code editor, which provides control over when and where such a group of changes is active, and an extension of Squeak's COP implementation ContextS/2 required for representing most code changes in a layer.
在实时编程环境中修改源代码会立即改变当前运行程序的行为。当复杂的更改在达到一致状态之前影响代码中的多个位置时,当其控制流到达尚未完成的“施工现场”时,正在运行的程序就有“脱轨”的危险。面向上下文的编程提供了层,这些层封装了分散在许多模块上的代码,并且可以在运行时激活以共同适应程序行为。我们建议在COP层中透明地收集和分组对代码的更改,并推迟其激活,直到程序员认为其更改完成。此外,层停用可作为对更改组的立即撤消操作。我们提出并讨论了一个Squeak/Smalltalk原型,它由一个代码编辑器组成,该编辑器提供了对一组更改在何时何地激活的控制,以及Squeak的COP实现ContextS/2的扩展,该扩展用于在一个层中表示大多数代码更改。
{"title":"Transaction Layers: Controlling Granularity of Change in Live Programming Environments","authors":"Toni Mattis, Patrick Rein, R. Hirschfeld","doi":"10.1145/2951965.2951969","DOIUrl":"https://doi.org/10.1145/2951965.2951969","url":null,"abstract":"Modifying source code in a live programming environment changes the behavior of currently running programs immediately. When complex changes affect multiple locations in the code before reaching a consistent state, running programs are in danger of \"de-railing\" when their control flow reaches the yet incomplete \"construction site\". Context-oriented Programming provides layers, which encapsulate code that would otherwise be scattered over many modules and can be activated to jointly adapt program behavior at run-time. We propose to transparently collect and group changes to the code in a COP layer and defer its activation until the programmer deems its change to be completed. Additionally, layer deactivation serves as immediate undo operation on the group of changes. We present and discuss a Squeak/Smalltalk prototype consisting of a code editor, which provides control over when and where such a group of changes is active, and an extension of Squeak's COP implementation ContextS/2 required for representing most code changes in a layer.","PeriodicalId":118660,"journal":{"name":"Proceedings of the 8th ACM International Workshop on Context-Oriented Programming","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123367156","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}
引用次数: 1
A Context-Oriented Software Architecture 面向上下文的软件体系结构
K. Mens, Nicolás Cardozo, Benoît Duhoux
Context-aware systems must manage the dynamic selection, activation, and execution of feature variants according to changing contexts, detected from data gathered from their surrounding execution environment. Many context-oriented programming languages focus only on the implementation level by providing appropriate language abstractions for implementing behavioural variations that can adapt dynamically to changing contexts. They often ignore or presuppose the existence of mechanisms to deal with earlier aspects such as the gathering of sensory input and context discovery. In this paper we propose a layered software architecture that reconciles all these aspects in a single implementation framework, which can be customized by application programmers into actual context-aware applications. This framework is currently being implemented in Ruby on top of a reimplementation of the Phenomenal Gem context-oriented language.
上下文感知系统必须根据上下文的变化来管理特征变量的动态选择、激活和执行,这些变化是从周围执行环境收集的数据中检测到的。许多面向上下文的编程语言通过提供适当的语言抽象来实现能够动态适应不断变化的上下文的行为变化,从而只关注实现级别。他们往往忽略或预设了处理早期方面的机制的存在,如感觉输入的收集和环境发现。在本文中,我们提出了一种分层的软件架构,它在一个实现框架中协调了所有这些方面,应用程序程序员可以将其定制为实际的上下文感知应用程序。这个框架目前是在重新实现了面向上下文的Phenomenal Gem语言的基础上用Ruby实现的。
{"title":"A Context-Oriented Software Architecture","authors":"K. Mens, Nicolás Cardozo, Benoît Duhoux","doi":"10.1145/2951965.2951971","DOIUrl":"https://doi.org/10.1145/2951965.2951971","url":null,"abstract":"Context-aware systems must manage the dynamic selection, activation, and execution of feature variants according to changing contexts, detected from data gathered from their surrounding execution environment. Many context-oriented programming languages focus only on the implementation level by providing appropriate language abstractions for implementing behavioural variations that can adapt dynamically to changing contexts. They often ignore or presuppose the existence of mechanisms to deal with earlier aspects such as the gathering of sensory input and context discovery. In this paper we propose a layered software architecture that reconciles all these aspects in a single implementation framework, which can be customized by application programmers into actual context-aware applications. This framework is currently being implemented in Ruby on top of a reimplementation of the Phenomenal Gem context-oriented language.","PeriodicalId":118660,"journal":{"name":"Proceedings of the 8th ACM International Workshop on Context-Oriented Programming","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127656746","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}
引用次数: 10
Consistent Unanticipated Adaptation for Context-Dependent Applications 上下文相关应用的一致的意外适应
Nguonly Taing, Markus Wutzler, T. Springer, Nicolás Cardozo, A. Schill
Unanticipated adaptation allows context-dependent applications to overcome the limitation of foreseen adaptation by incorporating previously unknown behavior. Introducing this concept in language-based approaches leads to inconsistencies as an object can have different views in different contexts. Existing language-based approaches do not address unanticipated adaptation and its associated run-time inconsistencies. We propose an architecture for unanticipated adaptation at run time based on dynamic instance binding crafted in a loosely manner to asynchronously replace adaptable entities that allow for behavioral changes of objects. To solve inconsistencies, we introduce the notion of transactions at the object level. Transactions guard the changing objects during their execution, ensuring consistent views. This allows for disruption-free, safe updates of adaptable entities by means of consistent unanticipated adaptation.
意想不到的适应允许上下文相关的应用程序通过纳入先前未知的行为来克服可预见的适应的限制。在基于语言的方法中引入此概念会导致不一致,因为对象在不同的上下文中可能具有不同的视图。现有的基于语言的方法不能处理意外的适应及其相关的运行时不一致性。我们提出了一种基于松散方式制作的动态实例绑定的架构,用于在运行时进行意外适应,以异步替换允许对象行为变化的可适应实体。为了解决不一致,我们在对象级别引入了事务的概念。事务在执行过程中保护不断变化的对象,确保视图的一致性。这允许通过一致的意外适应对适应性实体进行无中断、安全的更新。
{"title":"Consistent Unanticipated Adaptation for Context-Dependent Applications","authors":"Nguonly Taing, Markus Wutzler, T. Springer, Nicolás Cardozo, A. Schill","doi":"10.1145/2951965.2951966","DOIUrl":"https://doi.org/10.1145/2951965.2951966","url":null,"abstract":"Unanticipated adaptation allows context-dependent applications to overcome the limitation of foreseen adaptation by incorporating previously unknown behavior. Introducing this concept in language-based approaches leads to inconsistencies as an object can have different views in different contexts. Existing language-based approaches do not address unanticipated adaptation and its associated run-time inconsistencies. We propose an architecture for unanticipated adaptation at run time based on dynamic instance binding crafted in a loosely manner to asynchronously replace adaptable entities that allow for behavioral changes of objects. To solve inconsistencies, we introduce the notion of transactions at the object level. Transactions guard the changing objects during their execution, ensuring consistent views. This allows for disruption-free, safe updates of adaptable entities by means of consistent unanticipated adaptation.","PeriodicalId":118660,"journal":{"name":"Proceedings of the 8th ACM International Workshop on Context-Oriented Programming","volume":"663 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132156153","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}
引用次数: 15
Optimizing Sideways Composition: Fast Context-oriented Programming in ContextPyPy 优化横向组合:快速上下文导向的ContextPyPy编程
Tobias Pape, T. Felgentreff, R. Hirschfeld
The prevalent way of code sharing in many current object systems is static and/or single inheritance; both are limiting in situations that call for multi-dimensional decomposition. Sideways composition provides a technique to reduce their limitations. Context-oriented programming (COP) notably applies sideways composition to achieve better modularity. However, most COP implementations have a substantial performance overhead. This is partly because weaving and execution of layered methods violate assumptions that common language implementations hold about lookup. Meta-tracing just-in-time (JIT) compilers have unique characteristics that can alleviate the performance overhead, as they can treat lookup differently. We show that meta-tracing JIT compilers are good at optimizing sideways composition and give initial, supporting results. Furthermore, we suggest that explicit communication with the JIT compiler in a COP implementation can improve performance further.
在许多当前对象系统中,代码共享的流行方式是静态和/或单继承;在需要多维分解的情况下,两者都是有限的。横向构图提供了一种技术来减少它们的局限性。面向上下文的编程(COP)主要应用横向组合来实现更好的模块化。然而,大多数COP实现都有很大的性能开销。这在一定程度上是因为分层方法的编织和执行违反了公共语言实现对查找的假设。元跟踪即时(JIT)编译器具有独特的特性,可以减轻性能开销,因为它们可以以不同的方式处理查找。我们展示了元跟踪JIT编译器擅长优化横向组合,并给出了初始的支持结果。此外,我们建议在COP实现中与JIT编译器显式通信可以进一步提高性能。
{"title":"Optimizing Sideways Composition: Fast Context-oriented Programming in ContextPyPy","authors":"Tobias Pape, T. Felgentreff, R. Hirschfeld","doi":"10.1145/2951965.2951967","DOIUrl":"https://doi.org/10.1145/2951965.2951967","url":null,"abstract":"The prevalent way of code sharing in many current object systems is static and/or single inheritance; both are limiting in situations that call for multi-dimensional decomposition. Sideways composition provides a technique to reduce their limitations. Context-oriented programming (COP) notably applies sideways composition to achieve better modularity. However, most COP implementations have a substantial performance overhead. This is partly because weaving and execution of layered methods violate assumptions that common language implementations hold about lookup. Meta-tracing just-in-time (JIT) compilers have unique characteristics that can alleviate the performance overhead, as they can treat lookup differently. We show that meta-tracing JIT compilers are good at optimizing sideways composition and give initial, supporting results. Furthermore, we suggest that explicit communication with the JIT compiler in a COP implementation can improve performance further.","PeriodicalId":118660,"journal":{"name":"Proceedings of the 8th ACM International Workshop on Context-Oriented Programming","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129554699","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}
引用次数: 10
Proceedings of the 8th ACM International Workshop on Context-Oriented Programming 第八届ACM面向上下文的编程国际研讨会论文集
{"title":"Proceedings of the 8th ACM International Workshop on Context-Oriented Programming","authors":"","doi":"10.1145/2951965","DOIUrl":"https://doi.org/10.1145/2951965","url":null,"abstract":"","PeriodicalId":118660,"journal":{"name":"Proceedings of the 8th ACM International Workshop on Context-Oriented Programming","volume":"92 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131053695","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
期刊
Proceedings of the 8th ACM International Workshop on Context-Oriented Programming
全部 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