首页 > 最新文献

International Workshop on Smalltalk Technologies最新文献

英文 中文
Efficient proxies in Smalltalk Smalltalk中的高效代理
Pub Date : 2011-08-23 DOI: 10.1145/2166929.2166937
Mariano Martinez Peck, N. Bouraqadi, M. Denker, Stéphane Ducasse, L. Fabresse
A proxy object is a surrogate or placeholder that controls access to another target object. Proxy objects are a widely used solution for different scenarios such as remote method invocation, future objects, behavioral reflection, object databases, inter-languages communications and bindings, access control, lazy or parallel evaluation, security, among others. Most proxy implementations support proxies for regular objects but they are unable to create proxies for classes or methods. Proxies can be complex to install, have a significant overhead, be limited to certain type of classes, etc. Moreover, most proxy implementations are not stratified at all and there is no separation between proxies and handlers. In this paper, we present Ghost, a uniform, light-weight and stratified general purpose proxy model and its Smalltalk implementation. Ghost supports proxies for classes or methods. When a proxy takes the place of a class it intercepts both, messages received by the class and lookup of methods for messages received by instances. Similarly, if a proxy takes the place of a method, then the method execution is intercepted too.
代理对象是控制对另一个目标对象的访问的代理或占位符。代理对象是一种广泛用于不同场景的解决方案,例如远程方法调用、未来对象、行为反射、对象数据库、语言间通信和绑定、访问控制、延迟或并行计算、安全性等。大多数代理实现都支持常规对象的代理,但它们无法为类或方法创建代理。代理的安装可能很复杂,开销很大,仅限于某些类型的类,等等。此外,大多数代理实现根本没有分层,代理和处理程序之间没有分离。在本文中,我们提出了Ghost,一个统一的、轻量级的、分层的通用代理模型及其Smalltalk实现。Ghost支持类或方法的代理。当代理代替类时,它会拦截类接收的消息和实例接收的消息的方法查找。类似地,如果代理代替了方法,那么方法的执行也会被拦截。
{"title":"Efficient proxies in Smalltalk","authors":"Mariano Martinez Peck, N. Bouraqadi, M. Denker, Stéphane Ducasse, L. Fabresse","doi":"10.1145/2166929.2166937","DOIUrl":"https://doi.org/10.1145/2166929.2166937","url":null,"abstract":"A proxy object is a surrogate or placeholder that controls access to another target object. Proxy objects are a widely used solution for different scenarios such as remote method invocation, future objects, behavioral reflection, object databases, inter-languages communications and bindings, access control, lazy or parallel evaluation, security, among others.\u0000 Most proxy implementations support proxies for regular objects but they are unable to create proxies for classes or methods. Proxies can be complex to install, have a significant overhead, be limited to certain type of classes, etc. Moreover, most proxy implementations are not stratified at all and there is no separation between proxies and handlers.\u0000 In this paper, we present Ghost, a uniform, light-weight and stratified general purpose proxy model and its Smalltalk implementation. Ghost supports proxies for classes or methods. When a proxy takes the place of a class it intercepts both, messages received by the class and lookup of methods for messages received by instances. Similarly, if a proxy takes the place of a method, then the method execution is intercepted too.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"113 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124326303","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
Clustered serialization with fuel 带燃料的集群序列化
Pub Date : 2011-08-23 DOI: 10.1145/2166929.2166930
M. Dias, Mariano Martinez Peck, Stéphane Ducasse, G. Arévalo
Serializing object graphs is an important activity since objects should be stored and reloaded on different environments. There is a plethora of frameworks to serialize objects based on recursive parsing of the object graphs. However such approaches are often too slow. Most approaches are limited in their provided features. For example, several serializers do not support class shape changes, global references, transient references or hooks to execute something before or after being stored or loaded. Moreover, to be faster, some serializers are not written taking into account the object-oriented paradigm and they are sometimes even implemented in the Virtual Machine hampering code portability. VM-based serializers such as ImageSegment are difficult to understand, maintain, and fix. For the final user, it means a serializer which is difficult to customize, adapt or extend to his own needs. In this paper we present a general purpose object graph serializer based on a pickling format and algorithm. We implement and validate this approach in the Pharo Smalltalk environment. We demonstrate that we can build a really fast serializer without specific VM support, with a clean object-oriented design, and providing most possible required features for a serializer. We show that our approach is faster that traditional serializers and compare favorably with ImageSegment as soon as serialized objects are not in isolation.
序列化对象图是一项重要的活动,因为对象应该在不同的环境中存储和重新加载。有很多框架可以基于对象图的递归解析来序列化对象。然而,这种方法往往太慢。大多数方法所提供的功能都是有限的。例如,一些序列化器不支持在存储或加载之前或之后执行的类形状更改、全局引用、瞬态引用或钩子。此外,为了更快,一些序列化器在编写时没有考虑到面向对象范例,有时甚至在虚拟机中实现,从而阻碍了代码的可移植性。基于虚拟机的序列化器(如imagessegment)很难理解、维护和修复。对于最终用户来说,这意味着序列化器很难定制、调整或扩展到他自己的需求。本文提出了一种基于pickle格式和算法的通用对象图序列化器。我们在Pharo Smalltalk环境中实现并验证了这种方法。我们演示了我们可以构建一个真正快速的序列化器,而不需要特定的VM支持,使用干净的面向对象设计,并提供序列化器所需的大多数可能的特性。我们表明,只要序列化的对象不是隔离的,我们的方法比传统的序列化器更快,并且与ImageSegment相比更具优势。
{"title":"Clustered serialization with fuel","authors":"M. Dias, Mariano Martinez Peck, Stéphane Ducasse, G. Arévalo","doi":"10.1145/2166929.2166930","DOIUrl":"https://doi.org/10.1145/2166929.2166930","url":null,"abstract":"Serializing object graphs is an important activity since objects should be stored and reloaded on different environments. There is a plethora of frameworks to serialize objects based on recursive parsing of the object graphs. However such approaches are often too slow. Most approaches are limited in their provided features. For example, several serializers do not support class shape changes, global references, transient references or hooks to execute something before or after being stored or loaded. Moreover, to be faster, some serializers are not written taking into account the object-oriented paradigm and they are sometimes even implemented in the Virtual Machine hampering code portability. VM-based serializers such as ImageSegment are difficult to understand, maintain, and fix. For the final user, it means a serializer which is difficult to customize, adapt or extend to his own needs.\u0000 In this paper we present a general purpose object graph serializer based on a pickling format and algorithm. We implement and validate this approach in the Pharo Smalltalk environment. We demonstrate that we can build a really fast serializer without specific VM support, with a clean object-oriented design, and providing most possible required features for a serializer. We show that our approach is faster that traditional serializers and compare favorably with ImageSegment as soon as serialized objects are not in isolation.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131285158","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
Klotz: an agile 3D visualization engine Klotz:一个灵活的3D可视化引擎
Pub Date : 2011-08-23 DOI: 10.1145/2166929.2166933
Ricardo Jacas, Alexandre Bergel
Klotz is an agile 3D visualization engine. Visualizations are produced from an arbitrary model described in terms of objects and interconnections. Any arbitrary model may be visualized. Klotz uses a semi-descriptive scripting language to easily and interactively build visualizations. Klotz, on its current version, offers four layouts to easily exploit the third dimension when visualizing data. Klotz is entirely implemented in Pharo. The engine is fully based on the facilities offered by Morphic.
Klotz是一个灵活的3D可视化引擎。可视化是根据对象和相互联系描述的任意模型产生的。任何任意模型都可以可视化。Klotz使用一种半描述性脚本语言来轻松交互式地构建可视化。在其当前版本中,Klotz提供了四种布局,以便在可视化数据时轻松利用第三维度。Klotz完全在Pharo中实现。该引擎完全基于Morphic提供的设施。
{"title":"Klotz: an agile 3D visualization engine","authors":"Ricardo Jacas, Alexandre Bergel","doi":"10.1145/2166929.2166933","DOIUrl":"https://doi.org/10.1145/2166929.2166933","url":null,"abstract":"Klotz is an agile 3D visualization engine. Visualizations are produced from an arbitrary model described in terms of objects and interconnections. Any arbitrary model may be visualized. Klotz uses a semi-descriptive scripting language to easily and interactively build visualizations.\u0000 Klotz, on its current version, offers four layouts to easily exploit the third dimension when visualizing data. Klotz is entirely implemented in Pharo. The engine is fully based on the facilities offered by Morphic.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"87 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117300101","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
Talents: dynamically composable units of reuse 天赋:可动态组合的重用单元
Pub Date : 2011-08-23 DOI: 10.1145/2166929.2166940
J. Ressia, Tudor Gîrba, Oscar Nierstrasz, F. Perin, L. Renggli
Reuse in object-oriented languages typically focuses on inheritance. Numerous techniques have been developed to provide finer-grained reuse of methods, such as flavors, mixins and traits. These techniques, however, only deal with reuse at the level of classes. Class-based reuse is inherently static. Increasing use of reflection and meta-programming techniques in real world applications underline the need for more dynamic approaches. New approaches have shifted to object-specific reuse. However, these techniques fail to provide a complete solution to the composition issues arising during reuse. We propose a new approach that deals with reuse at the object level and that supports behavioral composition. We introduce a new abstraction called a talent which models features that are shared between objects of different class hierarchies. Talents provide a composition mechanism that is as flexible as that of traits but which is dynamic.
面向对象语言中的重用通常侧重于继承。已经开发了许多技术来提供更细粒度的方法重用,例如flavor、mixins和trait。然而,这些技术只处理类级别上的重用。基于类的重用本质上是静态的。在实际应用程序中越来越多地使用反射和元编程技术,强调了对更动态方法的需求。新的方法已经转向对象特定的重用。然而,这些技术无法为重用期间出现的组合问题提供完整的解决方案。我们提出了一种新的方法来处理对象级别的重用,并支持行为组合。我们引入了一种新的抽象,称为天赋,它对不同类层次的对象之间共享的特征进行建模。天赋提供了一种与特质一样灵活但又动态的构成机制。
{"title":"Talents: dynamically composable units of reuse","authors":"J. Ressia, Tudor Gîrba, Oscar Nierstrasz, F. Perin, L. Renggli","doi":"10.1145/2166929.2166940","DOIUrl":"https://doi.org/10.1145/2166929.2166940","url":null,"abstract":"Reuse in object-oriented languages typically focuses on inheritance. Numerous techniques have been developed to provide finer-grained reuse of methods, such as flavors, mixins and traits. These techniques, however, only deal with reuse at the level of classes.\u0000 Class-based reuse is inherently static. Increasing use of reflection and meta-programming techniques in real world applications underline the need for more dynamic approaches. New approaches have shifted to object-specific reuse. However, these techniques fail to provide a complete solution to the composition issues arising during reuse.\u0000 We propose a new approach that deals with reuse at the object level and that supports behavioral composition. We introduce a new abstraction called a talent which models features that are shared between objects of different class hierarchies. Talents provide a composition mechanism that is as flexible as that of traits but which is dynamic.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127031845","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
Towards structural decomposition of reflection with mirrors 用镜子进行反射的结构分解
Pub Date : 2011-08-23 DOI: 10.1145/2166929.2166941
Nick Papoulias, N. Bouraqadi, M. Denker, Stéphane Ducasse, L. Fabresse
Mirrors are meta-level entities introduced to decouple reflection from the base-level system. Current mirror-based systems focus on functional decomposition of reflection. In this paper we advocate that mirrors should also address structural decomposition. Mirrors should not only be the entry points of reflective behavior but also be the storage entities of metainformation. This decomposition can help resolve issues in terms of resource constraints (e.g. embedded systems and robotics) or security. Indeed, structural decomposition enables discarding meta-information.
镜像是元级实体,用于将反射与基础级系统解耦。目前基于镜像的系统关注的是反射的功能分解。在本文中,我们主张镜像也应该处理结构分解。镜像不仅应该是反射行为的入口点,还应该是元信息的存储实体。这种分解可以帮助解决资源约束(例如嵌入式系统和机器人)或安全性方面的问题。实际上,结构分解允许丢弃元信息。
{"title":"Towards structural decomposition of reflection with mirrors","authors":"Nick Papoulias, N. Bouraqadi, M. Denker, Stéphane Ducasse, L. Fabresse","doi":"10.1145/2166929.2166941","DOIUrl":"https://doi.org/10.1145/2166929.2166941","url":null,"abstract":"Mirrors are meta-level entities introduced to decouple reflection from the base-level system. Current mirror-based systems focus on functional decomposition of reflection. In this paper we advocate that mirrors should also address structural decomposition. Mirrors should not only be the entry points of reflective behavior but also be the storage entities of metainformation. This decomposition can help resolve issues in terms of resource constraints (e.g. embedded systems and robotics) or security. Indeed, structural decomposition enables discarding meta-information.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125252094","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
Smalltalk debug lives in the matrix Smalltalk调试存在于矩阵中
Pub Date : 2010-08-13 DOI: 10.1145/1942790.1942792
Loïc Lagadec, Damien Picard
Agile programming aware computer scientists know how much productivity they owe to their development environments, and more precisely to advanced debuggers. Indeed, debuggers are mandatory to support an optimistic do-fix-rerun approach. This development scheme does not make sense in hardware design where agile has a different meaning; it refers to reconfigurable architectures. Despite such architectures support tailoring and refactoring application circuits and promote short development cycles, the overall programing scheme still conforms to waterfall models and component based integration. This paper presents a path to offer probe-based development to hardware designers, and introduces our Red Pill environment that merges several abstraction levels ranging from C like parallel coding to hardware realization embedding debug facility. Red Pill is developed using VisualWorks and reproduces some of Cincom Smalltalk browser well known features that traditionally lack when validating circuits.
了解敏捷编程的计算机科学家知道他们的开发环境有多大的生产力,更准确地说是高级调试器。实际上,为了支持乐观的“修复-重新运行”方法,调试器是强制性的。这种开发方案在硬件设计中没有意义,因为敏捷有不同的含义;它指的是可重构的体系结构。尽管这样的体系结构支持裁剪和重构应用程序电路,并促进较短的开发周期,但总体编程方案仍然遵循瀑布模型和基于组件的集成。本文提出了一种为硬件设计人员提供基于探测的开发的途径,并介绍了我们的Red Pill环境,该环境合并了几个抽象级别,从C语言的并行编码到硬件实现嵌入调试设施。Red Pill是使用VisualWorks开发的,它重现了Cincom Smalltalk浏览器的一些众所周知的特性,这些特性在验证电路时通常是缺乏的。
{"title":"Smalltalk debug lives in the matrix","authors":"Loïc Lagadec, Damien Picard","doi":"10.1145/1942790.1942792","DOIUrl":"https://doi.org/10.1145/1942790.1942792","url":null,"abstract":"Agile programming aware computer scientists know how much productivity they owe to their development environments, and more precisely to advanced debuggers. Indeed, debuggers are mandatory to support an optimistic do-fix-rerun approach.\u0000 This development scheme does not make sense in hardware design where agile has a different meaning; it refers to reconfigurable architectures. Despite such architectures support tailoring and refactoring application circuits and promote short development cycles, the overall programing scheme still conforms to waterfall models and component based integration.\u0000 This paper presents a path to offer probe-based development to hardware designers, and introduces our Red Pill environment that merges several abstraction levels ranging from C like parallel coding to hardware realization embedding debug facility. Red Pill is developed using VisualWorks and reproduces some of Cincom Smalltalk browser well known features that traditionally lack when validating circuits.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"2013 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-08-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114514203","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
Web Pontoon: a method for reflective web applications Web Pontoon:一种用于反射Web应用程序的方法
Pub Date : 2010-08-13 DOI: 10.1145/1942790.1942791
Reza Razavi
Network-based provisioning of custom-made and adaptive services offers unlimited opportunities for service development. Examples include ICT-based information, assistance, coordination, and remote monitoring services for senior citizens. Addressing diversity and unpredictable changeability requirements of such service platforms entails novel design solutions. I present Web Pontoon, a method tailored specifically for handling these requirements by a combination of web content management, client-side end-user programming, closed-loop management of object lifecycles, and domain-driven design. Opportunities for massive deployment of relevant applications are being studied.
基于网络的定制和自适应服务的提供为服务开发提供了无限的机会。例如,为老年人提供基于信息通信技术的信息、援助、协调和远程监测服务。解决这种服务平台的多样性和不可预测的可变性需求需要新颖的设计解决方案。我介绍了Web Pontoon,这是一种专门通过结合Web内容管理、客户端最终用户编程、对象生命周期闭环管理和领域驱动设计来处理这些需求的方法。正在研究大规模部署相关应用程序的机会。
{"title":"Web Pontoon: a method for reflective web applications","authors":"Reza Razavi","doi":"10.1145/1942790.1942791","DOIUrl":"https://doi.org/10.1145/1942790.1942791","url":null,"abstract":"Network-based provisioning of custom-made and adaptive services offers unlimited opportunities for service development. Examples include ICT-based information, assistance, coordination, and remote monitoring services for senior citizens. Addressing diversity and unpredictable changeability requirements of such service platforms entails novel design solutions. I present Web Pontoon, a method tailored specifically for handling these requirements by a combination of web content management, client-side end-user programming, closed-loop management of object lifecycles, and domain-driven design. Opportunities for massive deployment of relevant applications are being studied.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"195 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-08-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132289804","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
Dynamic synchronization: a synchronization model through behavioral reflection 动态同步:通过行为反射实现的同步模型
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735952
J. Ressia, Oscar Nierstrasz
In conventional software applications, synchronization code is typically interspersed with functional code, thereby impacting understandability and maintainability of the code base. At the same time, the synchronization defined statically in the code is not capable of adapting to different runtime situations. We propose a new approach to synchronization which strictly separates the functional code from the synchronization requirements to be used and which adapts objects to be synchronized dynamically to their environment. First-class synchronization specifications express safety requirements, and a Dynamic Synchronization System dynamically adapts objects to different runtime situations. We present an overview of a prototype of our approach together with several classical concurrency problems, and we discuss open issues for further research.
在传统的软件应用程序中,同步代码通常与功能代码穿插在一起,从而影响代码库的可理解性和可维护性。同时,代码中静态定义的同步不能适应不同的运行时情况。我们提出了一种新的同步方法,该方法严格地将功能代码与要使用的同步需求分离开来,并使对象根据其环境动态地进行同步。一级同步规范表达了安全需求,动态同步系统动态地调整对象以适应不同的运行时情况。我们概述了我们的方法的原型以及几个经典的并发问题,并讨论了有待进一步研究的开放问题。
{"title":"Dynamic synchronization: a synchronization model through behavioral reflection","authors":"J. Ressia, Oscar Nierstrasz","doi":"10.1145/1735935.1735952","DOIUrl":"https://doi.org/10.1145/1735935.1735952","url":null,"abstract":"In conventional software applications, synchronization code is typically interspersed with functional code, thereby impacting understandability and maintainability of the code base. At the same time, the synchronization defined statically in the code is not capable of adapting to different runtime situations. We propose a new approach to synchronization which strictly separates the functional code from the synchronization requirements to be used and which adapts objects to be synchronized dynamically to their environment. First-class synchronization specifications express safety requirements, and a Dynamic Synchronization System dynamically adapts objects to different runtime situations. We present an overview of a prototype of our approach together with several classical concurrency problems, and we discuss open issues for further research.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-08-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132764457","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
Experiments with pro-active declarative meta-programming 使用主动声明性元编程的实验
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735947
Verónica Uquillas Gómez, Andy Kellens, K. Gybels, T. D'Hondt
Program querying has become a valuable asset in the programmer's toolbox. Using dedicated querying languages, developers can reason about their source code in order to find errors, refactoring opportunities and so on. Within Smalltalk, the SOUL language has been proposed as one such language that offers a declarative and expressive means to query the source code of object-oriented programs. Ever since its inception, SOUL has been used as the underlying technique for a number of academic software engineering tools. Despite its success, one of the problems of SOUL is that, due to its backward chained implementation, it is less suited as a basis for such pro-active software tools. Using SOUL, a developer has to launch the queries over the system manually, rather than automatically receiving feedback whenever the underlying source code is changed. In this paper we present PARACHUT, an alternative logic query language that is based on forward chaining and temporal logic and that allows developers to express queries over the change history of the system. Furthermore, PARACHUT's data-driven nature makes it possible to provide instant feedback to developers when the source code is changed, thus providing better support for pro-active software tools.
程序查询已经成为程序员工具箱中的一项宝贵资产。使用专用查询语言,开发人员可以对源代码进行推理,以便发现错误、重构机会等等。在Smalltalk中,已经提出了SOUL语言作为这样一种语言,它提供了一种声明性和表达性的方法来查询面向对象程序的源代码。从一开始,SOUL就被用作许多学术软件工程工具的基础技术。尽管取得了成功,但SOUL的一个问题是,由于它的后链实现,它不太适合作为这种主动软件工具的基础。使用SOUL,开发人员必须在系统上手动启动查询,而不是在底层源代码更改时自动接收反馈。在本文中,我们介绍了PARACHUT,这是一种基于前向链和时态逻辑的替代逻辑查询语言,它允许开发人员在系统的变更历史上表达查询。此外,PARACHUT的数据驱动特性使得在源代码更改时向开发人员提供即时反馈成为可能,从而为主动软件工具提供更好的支持。
{"title":"Experiments with pro-active declarative meta-programming","authors":"Verónica Uquillas Gómez, Andy Kellens, K. Gybels, T. D'Hondt","doi":"10.1145/1735935.1735947","DOIUrl":"https://doi.org/10.1145/1735935.1735947","url":null,"abstract":"Program querying has become a valuable asset in the programmer's toolbox. Using dedicated querying languages, developers can reason about their source code in order to find errors, refactoring opportunities and so on. Within Smalltalk, the SOUL language has been proposed as one such language that offers a declarative and expressive means to query the source code of object-oriented programs.\u0000 Ever since its inception, SOUL has been used as the underlying technique for a number of academic software engineering tools. Despite its success, one of the problems of SOUL is that, due to its backward chained implementation, it is less suited as a basis for such pro-active software tools. Using SOUL, a developer has to launch the queries over the system manually, rather than automatically receiving feedback whenever the underlying source code is changed. In this paper we present PARACHUT, an alternative logic query language that is based on forward chaining and temporal logic and that allows developers to express queries over the change history of the system. Furthermore, PARACHUT's data-driven nature makes it possible to provide instant feedback to developers when the source code is changed, thus providing better support for pro-active software tools.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-08-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125438226","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
Meteoroid towards a real MVC for the web 面向web的真正MVC的流星体
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735941
J. Fernández, Santiago Robles, Andrés Fortier, Stéphane Ducasse, G. Rossi, S. Gordillo
Web development has moved from simple static pages to complex web applications, some of them resembling desktop ones. In most of these applications the web browser acts as thin-client (or a view) of the model that sits on the server. Despite the technological evolution of the web, there is still no standard mechanism to send data or events from the server to the client without an explicit request from the later, thus forcing the web browser to constantly poll the server for updates. To solve this problem a set of techniques under the name of Comet were proposed, allowing to send information from the server to the web browser without an explicit client request. In this paper we introduce Meteoroid, a Comet approach to make "live" Seaside applications. Our framework exploits the Model-View-Controller (MVC) paradigm for building simple yet scalable web applications, requiring very little programming effort.
Web开发已经从简单的静态页面转向复杂的Web应用程序,其中一些类似于桌面应用程序。在大多数这些应用程序中,web浏览器充当位于服务器上的模型的瘦客户端(或视图)。尽管web技术不断发展,但仍然没有标准的机制可以在没有客户端的明确请求的情况下将数据或事件从服务器发送到客户端,从而迫使web浏览器不断轮询服务器以获取更新。为了解决这个问题,提出了一组以Comet命名的技术,允许从服务器向web浏览器发送信息,而无需显式的客户端请求。在本文中,我们介绍了Meteoroid,这是一种Comet方法来制作“实时”Seaside应用程序。我们的框架利用模型-视图-控制器(MVC)范式来构建简单但可扩展的web应用程序,只需要很少的编程工作。
{"title":"Meteoroid towards a real MVC for the web","authors":"J. Fernández, Santiago Robles, Andrés Fortier, Stéphane Ducasse, G. Rossi, S. Gordillo","doi":"10.1145/1735935.1735941","DOIUrl":"https://doi.org/10.1145/1735935.1735941","url":null,"abstract":"Web development has moved from simple static pages to complex web applications, some of them resembling desktop ones. In most of these applications the web browser acts as thin-client (or a view) of the model that sits on the server. Despite the technological evolution of the web, there is still no standard mechanism to send data or events from the server to the client without an explicit request from the later, thus forcing the web browser to constantly poll the server for updates. To solve this problem a set of techniques under the name of Comet were proposed, allowing to send information from the server to the web browser without an explicit client request. In this paper we introduce Meteoroid, a Comet approach to make \"live\" Seaside applications. Our framework exploits the Model-View-Controller (MVC) paradigm for building simple yet scalable web applications, requiring very little programming effort.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-08-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122802864","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
期刊
International Workshop on Smalltalk Technologies
全部 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