首页 > 最新文献

International Workshop on Smalltalk Technologies最新文献

英文 中文
Supporting incremental change in large system models 支持大型系统模型中的增量变更
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735937
Jannik Laval, S. Denier, Stéphane Ducasse, Andy Kellens
When reengineering large systems, software developers would like to assess and compare the impact of multiple change scenarios without actually performing these changes. A change can be effected by applying a tool to the source code, or by a manual refactoring. In addition, tools run over a model are costly to redevelop. It raises an interesting challenge for tools implementors: how to support modification of large source code models to enable comparison of multiple versions. One naive approach is to copy the entire model after each modification. However, such an approach is too expensive in memory and execution time. In this paper we explore different implementations that source code metamodels support multiple versions of a system. We propose a solution based on dynamic binding of entities between multiple versions, providing good access performance while minimizing memory consumption.
当重新设计大型系统时,软件开发人员希望在不实际执行这些更改的情况下评估和比较多个更改场景的影响。更改可以通过对源代码应用工具或手动重构来实现。此外,在模型上运行的工具的重新开发成本很高。这给工具实现者提出了一个有趣的挑战:如何支持对大型源代码模型的修改,以便对多个版本进行比较。一种幼稚的方法是在每次修改后复制整个模型。但是,这种方法在内存和执行时间上的开销太大。在本文中,我们探讨了源代码元模型支持一个系统的多个版本的不同实现。我们提出了一个基于多个版本之间实体的动态绑定的解决方案,在提供良好的访问性能的同时最小化内存消耗。
{"title":"Supporting incremental change in large system models","authors":"Jannik Laval, S. Denier, Stéphane Ducasse, Andy Kellens","doi":"10.1145/1735935.1735937","DOIUrl":"https://doi.org/10.1145/1735935.1735937","url":null,"abstract":"When reengineering large systems, software developers would like to assess and compare the impact of multiple change scenarios without actually performing these changes. A change can be effected by applying a tool to the source code, or by a manual refactoring. In addition, tools run over a model are costly to redevelop. It raises an interesting challenge for tools implementors: how to support modification of large source code models to enable comparison of multiple versions. One naive approach is to copy the entire model after each modification. However, such an approach is too expensive in memory and execution time. In this paper we explore different implementations that source code metamodels support multiple versions of a system. We propose a solution based on dynamic binding of entities between multiple versions, providing good access performance while minimizing memory consumption.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"125 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":"127478545","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
NXTalk: dynamic object-oriented programming in a constrained environment 受限环境中的动态面向对象编程
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735942
M. Beck, M. Haupt, R. Hirschfeld
Dynamic programming languages offer high expressiveness and flexibility, improving programmer productivity. Still, making dynamic programming languages available for embedded systems is challenging because such environments are often constrained in terms of memory or computational power. For this, it is necessary to reduce the size of language implementations (virtual machines, VMs) while at the same time retaining good performance and robustness. Automatic memory management deserves special attention because its performance and space overhead have noticeable impact on overall system usability. In this paper, we present NXTalk, a VM and programming environment for the Smalltalk programming language, making high-level object-oriented programming available on Lego Mindstorms NXT robots. We describe its VM implementation and evaluate its size and performance characteristics.
动态编程语言提供了高表现力和灵活性,提高了程序员的工作效率。然而,为嵌入式系统提供动态编程语言是一项挑战,因为此类环境通常受到内存或计算能力的限制。为此,有必要减少语言实现(虚拟机,vm)的大小,同时保持良好的性能和健壮性。自动内存管理值得特别注意,因为它的性能和空间开销对整个系统的可用性有明显的影响。在本文中,我们介绍了NXTalk,一个用于Smalltalk编程语言的虚拟机和编程环境,在Lego Mindstorms NXT机器人上实现了高级面向对象的编程。我们描述了它的VM实现,并评估了它的大小和性能特征。
{"title":"NXTalk: dynamic object-oriented programming in a constrained environment","authors":"M. Beck, M. Haupt, R. Hirschfeld","doi":"10.1145/1735935.1735942","DOIUrl":"https://doi.org/10.1145/1735935.1735942","url":null,"abstract":"Dynamic programming languages offer high expressiveness and flexibility, improving programmer productivity. Still, making dynamic programming languages available for embedded systems is challenging because such environments are often constrained in terms of memory or computational power. For this, it is necessary to reduce the size of language implementations (virtual machines, VMs) while at the same time retaining good performance and robustness. Automatic memory management deserves special attention because its performance and space overhead have noticeable impact on overall system usability. In this paper, we present NXTalk, a VM and programming environment for the Smalltalk programming language, making high-level object-oriented programming available on Lego Mindstorms NXT robots. We describe its VM implementation and evaluate its size and performance characteristics.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"82 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":"132250690","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
Diagnosis and semi-automatic correction of detected design inconsistencies in source code 源代码中检测到的设计不一致的诊断和半自动纠正
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735938
Sergio Castro, J. Brichau, K. Mens
In order to alleviate design decay, different program design documentation techniques are used for the specification and detection of design inconsistencies in code. However, these design documentation techniques do not always provide support for the diagnosis and (semi-) automatic correction of such inconsistencies. In case they do, corrective solutions are typically targeted to a reduced set of pre-defined inconsistency problems, and they are not easily customizable to new kinds of consistency checks defined by a user. In particular, they cannot infer possible corrective actions to solve new user-defined inconsistency problems. In this paper, we present a technique for the diagnosis and (semi-) automatic correction of inconsistencies in the context of an existing tool for inconsistency management: IntensiVE. Our technique uses logic abductive reasoning to infer solutions to detected user-defined inconsistencies, starting from basic composable corrective actions. A first prototype implementing our technique on top of IntensiVE is shown.
为了减轻设计衰减,不同的程序设计文档技术被用于规范和检测代码中的设计不一致。然而,这些设计文档技术并不总是为这种不一致的诊断和(半)自动纠正提供支持。在这种情况下,纠正解决方案通常针对预定义的不一致问题的减少集,并且它们不容易定制到用户定义的新类型的一致性检查中。特别是,它们不能推断可能的纠正操作来解决新的用户定义的不一致问题。在本文中,我们提出了一种在现有的不一致管理工具的背景下诊断和(半)自动纠正不一致的技术:IntensiVE。我们的技术使用逻辑溯因推理来推断检测到的用户定义的不一致的解决方案,从基本的可组合的纠正操作开始。下面展示了在IntensiVE之上实现我们技术的第一个原型。
{"title":"Diagnosis and semi-automatic correction of detected design inconsistencies in source code","authors":"Sergio Castro, J. Brichau, K. Mens","doi":"10.1145/1735935.1735938","DOIUrl":"https://doi.org/10.1145/1735935.1735938","url":null,"abstract":"In order to alleviate design decay, different program design documentation techniques are used for the specification and detection of design inconsistencies in code. However, these design documentation techniques do not always provide support for the diagnosis and (semi-) automatic correction of such inconsistencies. In case they do, corrective solutions are typically targeted to a reduced set of pre-defined inconsistency problems, and they are not easily customizable to new kinds of consistency checks defined by a user. In particular, they cannot infer possible corrective actions to solve new user-defined inconsistency problems. In this paper, we present a technique for the diagnosis and (semi-) automatic correction of inconsistencies in the context of an existing tool for inconsistency management: IntensiVE. Our technique uses logic abductive reasoning to infer solutions to detected user-defined inconsistencies, starting from basic composable corrective actions. A first prototype implementing our technique on top of IntensiVE is shown.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"172 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":"116018694","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
Tackling software navigation issues of the Smalltalk IDE 解决Smalltalk IDE的软件导航问题
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735945
David Röthlisberger, Oscar Nierstrasz, Alexandre Bergel, Stéphane Ducasse
The IDE used in most Smalltalk dialects, including Pharo, Squeak and Cincom Smalltalk, did not evolve significantly over the last years, if not to say decades. For other languages, for instance Java, the available IDEs made tremendous progress as Eclipse and Net-Beans illustrate. While the Smalltalk IDE served as an exemplar for many years, other IDEs caught up or even overtook the erstwhile leader in terms of feature-richness, usability and code navigation facilities. In this paper we first analyze the difficulty of software navigation in the Smalltalk IDE and second illustrate with concrete examples the features we added to the Smalltalk IDE to fill the gap to modern IDEs and to provide novel, improved means to navigate source space. We show that thanks to the agility and dynamics of Smalltalk, we are able to extend and enhance with reasonable effort the Smalltalk IDE to better support software navigation, program comprehension, and software maintenance in general. One such support is the integration of dynamic information into the static source views we are familiar with. Other means include easing the access to static information (for instance by better arranging important packages) or helping developers locating artifacts of interest.
大多数Smalltalk方言(包括Pharo、Squeak和Cincom Smalltalk)中使用的IDE在过去几年中(如果不是几十年的话)没有显著的发展。对于其他语言,例如Java,可用的ide取得了巨大的进步,Eclipse和Net-Beans说明了这一点。虽然Smalltalk IDE多年来一直是一个典范,但其他IDE在功能丰富、可用性和代码导航设施方面赶上甚至超过了昔日的领导者。在本文中,我们首先分析了Smalltalk IDE中软件导航的难度,然后用具体的例子说明了我们为Smalltalk IDE添加的功能,以填补现代IDE的空白,并提供新颖的、改进的方法来导航源代码空间。我们展示了由于Smalltalk的敏捷性和动态性,我们能够通过合理的努力扩展和增强Smalltalk IDE,从而更好地支持软件导航、程序理解和软件维护。这样的支持之一就是将动态信息集成到我们熟悉的静态源视图中。其他方法包括简化对静态信息的访问(例如,通过更好地安排重要的包)或帮助开发人员定位感兴趣的工件。
{"title":"Tackling software navigation issues of the Smalltalk IDE","authors":"David Röthlisberger, Oscar Nierstrasz, Alexandre Bergel, Stéphane Ducasse","doi":"10.1145/1735935.1735945","DOIUrl":"https://doi.org/10.1145/1735935.1735945","url":null,"abstract":"The IDE used in most Smalltalk dialects, including Pharo, Squeak and Cincom Smalltalk, did not evolve significantly over the last years, if not to say decades. For other languages, for instance Java, the available IDEs made tremendous progress as Eclipse and Net-Beans illustrate. While the Smalltalk IDE served as an exemplar for many years, other IDEs caught up or even overtook the erstwhile leader in terms of feature-richness, usability and code navigation facilities. In this paper we first analyze the difficulty of software navigation in the Smalltalk IDE and second illustrate with concrete examples the features we added to the Smalltalk IDE to fill the gap to modern IDEs and to provide novel, improved means to navigate source space. We show that thanks to the agility and dynamics of Smalltalk, we are able to extend and enhance with reasonable effort the Smalltalk IDE to better support software navigation, program comprehension, and software maintenance in general. One such support is the integration of dynamic information into the static source views we are familiar with. Other means include easing the access to static information (for instance by better arranging important packages) or helping developers locating artifacts of interest.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"2 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":"131131883","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
Object-relational mapping with SqueakSave 使用SqueakSave的对象关系映射
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735951
T. Kowark, R. Hirschfeld, M. Haupt
Object persistence is an important aspect of application architectures and development processes. Different solutions in this field evolved over the last decades and new approaches are still subject to research. While object-oriented databases become increasingly popular, the usage of relational databases through an object-relational mapping layer is still one of the most widely adopted techniques. However, most object-relational frameworks require a considerable amount of mapping descriptions between object models and relational database schemas. This additional layer has to be maintained by developers along with the object model itself. In this paper, we present an approach to object-relational mapping that utilizes the introspection and intercession features of Smalltalk to free developers from manually creating those mapping descriptions. The presented framework analyzes the existing models and automatically deduces suitable database schemas. Thus, it aids development processes by neglecting the need for a separate mapping layer. A detailed introduction of the programming interface is followed by a description of the framework's internal implementation details. Additionally, the performance of the framework is evaluated through a comparison against a comparable system for the same programming environment.
对象持久性是应用程序体系结构和开发过程的一个重要方面。在过去的几十年里,这一领域的不同解决方案不断发展,新的方法仍在研究中。虽然面向对象数据库变得越来越流行,但通过对象-关系映射层使用关系数据库仍然是最广泛采用的技术之一。然而,大多数对象-关系框架需要在对象模型和关系数据库模式之间进行大量的映射描述。这个附加层必须由开发人员与对象模型本身一起维护。在本文中,我们提出了一种对象关系映射的方法,该方法利用Smalltalk的自省和代理特性,使开发人员不必手动创建这些映射描述。该框架对现有模型进行分析,并自动推导出合适的数据库模式。因此,它通过忽略对单独映射层的需求来帮助开发过程。详细介绍了编程接口,然后描述了框架的内部实现细节。此外,通过与相同编程环境下的可比系统进行比较来评估框架的性能。
{"title":"Object-relational mapping with SqueakSave","authors":"T. Kowark, R. Hirschfeld, M. Haupt","doi":"10.1145/1735935.1735951","DOIUrl":"https://doi.org/10.1145/1735935.1735951","url":null,"abstract":"Object persistence is an important aspect of application architectures and development processes. Different solutions in this field evolved over the last decades and new approaches are still subject to research. While object-oriented databases become increasingly popular, the usage of relational databases through an object-relational mapping layer is still one of the most widely adopted techniques. However, most object-relational frameworks require a considerable amount of mapping descriptions between object models and relational database schemas. This additional layer has to be maintained by developers along with the object model itself.\u0000 In this paper, we present an approach to object-relational mapping that utilizes the introspection and intercession features of Smalltalk to free developers from manually creating those mapping descriptions. The presented framework analyzes the existing models and automatically deduces suitable database schemas. Thus, it aids development processes by neglecting the need for a separate mapping layer.\u0000 A detailed introduction of the programming interface is followed by a description of the framework's internal implementation details. Additionally, the performance of the framework is evaluated through a comparison against a comparable system for the same programming environment.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"18 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":"132872714","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
Object spaces for safe image surgery 用于安全图像手术的对象空间
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735948
Gwenaël Casaccio, Damien Pollet, M. Denker, Stéphane Ducasse
Long-lived systems rely on reflective self-modification to evolve. Unfortunately, since such a system is at both ends of a causal loop, this means modifications that impact the reflective layer itself can be overly difficult to apply. This paper introduces ObjectSpaces, a reification of the familiar Smalltalk image as a first-class entity. By confining the system inside an ObjectSpace, we isolate the evolution tools from it, while still giving them reflective access to the confined system. We describe the ObjectSpaces idea, the interface to communicate, inspect, and debug objects contained inside and ObjectSpace, based on a prototype implementation in GNU Smalltalk.
长寿的系统依靠反射性的自我修正来进化。不幸的是,由于这样的系统处于因果循环的两端,这意味着影响反射层本身的修改可能非常难以应用。本文介绍了ObjectSpaces,它是我们熟悉的Smalltalk映像作为一级实体的具体化。通过将系统限制在ObjectSpace中,我们将进化工具从系统中隔离出来,同时仍然给予它们对受限系统的反射访问。我们基于GNU Smalltalk中的一个原型实现,描述了ObjectSpace的思想、用于通信、检查和调试ObjectSpace内部包含的对象的接口。
{"title":"Object spaces for safe image surgery","authors":"Gwenaël Casaccio, Damien Pollet, M. Denker, Stéphane Ducasse","doi":"10.1145/1735935.1735948","DOIUrl":"https://doi.org/10.1145/1735935.1735948","url":null,"abstract":"Long-lived systems rely on reflective self-modification to evolve. Unfortunately, since such a system is at both ends of a causal loop, this means modifications that impact the reflective layer itself can be overly difficult to apply.\u0000 This paper introduces ObjectSpaces, a reification of the familiar Smalltalk image as a first-class entity. By confining the system inside an ObjectSpace, we isolate the evolution tools from it, while still giving them reflective access to the confined system. We describe the ObjectSpaces idea, the interface to communicate, inspect, and debug objects contained inside and ObjectSpace, based on a prototype implementation in GNU Smalltalk.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"22 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":"116545104","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
Lumière: a novel framework for rendering 3D graphics in Smalltalk lumi<e:1>:一个在Smalltalk中渲染3D图形的新框架
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735940
F. Olivero, Michele Lanza, R. Robbes
To render 3D graphics there is a number of different frameworks written in Smalltalk. While most of them provide powerful facilities, many of them are outdated, abandoned, undocumented or heavyweight. In this paper we present Lumière, a novel lightweight framework for rendering 3D graphics using OpenGL based on a stage metaphor. Lumière is implemented using the Pharo IDE. In its current state it supports basic and composite shapes to populate 3D scenes, features a camera, and a lighting model. We illustrate the usage of Lumière with Gaucho, an environment for visual programming we are currently building.
为了渲染3D图形,Smalltalk中编写了许多不同的框架。虽然它们中的大多数都提供了强大的功能,但其中许多都是过时的、被抛弃的、未归档的或重量级的。在本文中,我们提出了lumi,一个新的轻量级框架,用于使用基于舞台隐喻的OpenGL渲染3D图形。lumi是使用Pharo IDE实现的。在目前的状态下,它支持基本和复合形状来填充3D场景,具有相机和照明模型。我们用Gaucho来说明lumi的用法,Gaucho是我们目前正在构建的一个可视化编程环境。
{"title":"Lumière: a novel framework for rendering 3D graphics in Smalltalk","authors":"F. Olivero, Michele Lanza, R. Robbes","doi":"10.1145/1735935.1735940","DOIUrl":"https://doi.org/10.1145/1735935.1735940","url":null,"abstract":"To render 3D graphics there is a number of different frameworks written in Smalltalk. While most of them provide powerful facilities, many of them are outdated, abandoned, undocumented or heavyweight.\u0000 In this paper we present Lumière, a novel lightweight framework for rendering 3D graphics using OpenGL based on a stage metaphor. Lumière is implemented using the Pharo IDE. In its current state it supports basic and composite shapes to populate 3D scenes, features a camera, and a lighting model.\u0000 We illustrate the usage of Lumière with Gaucho, an environment for visual programming we are currently building.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"137 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":"122339143","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
Maispion: a tool for analysing and visualising open source software developer communities Maispion:用于分析和可视化开源软件开发人员社区的工具
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735944
François Stephany, T. Mens, Tudor Gîrba
We present Maispion, a tool for analysing software developer communities. The tool, developed in Smalltalk, mines mailing list and version repositories, and provides visualisations to provide insights into the ecosystem of open source software (OSS) development. We show how Maispion can analyze the history of medium to large OSS communities, by applying our tool to three well-known open source projects: Moose, Drupal and Python.
我们介绍了Maispion,一个分析软件开发人员社区的工具。该工具由Smalltalk开发,挖掘邮件列表和版本库,并提供可视化,以提供对开源软件(OSS)开发生态系统的见解。通过将我们的工具应用于三个著名的开源项目:Moose、Drupal和Python,我们展示了Maispion如何分析中型到大型开源社区的历史。
{"title":"Maispion: a tool for analysing and visualising open source software developer communities","authors":"François Stephany, T. Mens, Tudor Gîrba","doi":"10.1145/1735935.1735944","DOIUrl":"https://doi.org/10.1145/1735935.1735944","url":null,"abstract":"We present Maispion, a tool for analysing software developer communities. The tool, developed in Smalltalk, mines mailing list and version repositories, and provides visualisations to provide insights into the ecosystem of open source software (OSS) development. We show how Maispion can analyze the history of medium to large OSS communities, by applying our tool to three well-known open source projects: Moose, Drupal and Python.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"82 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":"126890876","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}
引用次数: 11
Why Smalltalk wins the host languages shootout 为什么Smalltalk赢得了宿主语言的争夺战
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735954
L. Renggli, Tudor Gîrba
Integration of multiple languages into each other and into an existing development environment is a difficult task. As a consequence, developers often end up using only internal DSLs that strictly rely on the constraints imposed by the host language. Infrastructures do exist to mix languages, but they often do it at the price of losing the development tools of the host language. Instead of inventing a completely new infrastructure, our solution is to integrate new languages deeply into the existing host environment and reuse the infrastructure offered by it. In this paper we show why Smalltalk is the best practical choice for such a host language.
将多种语言相互集成并集成到现有的开发环境中是一项艰巨的任务。因此,开发人员通常最终只使用严格依赖于宿主语言施加的约束的内部dsl。混合语言的基础设施确实存在,但这样做的代价往往是失去宿主语言的开发工具。我们的解决方案不是发明一个全新的基础设施,而是将新的语言深度集成到现有的主机环境中,并重用它提供的基础设施。在本文中,我们将说明为什么Smalltalk是这种宿主语言的最佳实际选择。
{"title":"Why Smalltalk wins the host languages shootout","authors":"L. Renggli, Tudor Gîrba","doi":"10.1145/1735935.1735954","DOIUrl":"https://doi.org/10.1145/1735935.1735954","url":null,"abstract":"Integration of multiple languages into each other and into an existing development environment is a difficult task. As a consequence, developers often end up using only internal DSLs that strictly rely on the constraints imposed by the host language. Infrastructures do exist to mix languages, but they often do it at the price of losing the development tools of the host language. Instead of inventing a completely new infrastructure, our solution is to integrate new languages deeply into the existing host environment and reuse the infrastructure offered by it. In this paper we show why Smalltalk is the best practical choice for such a host language.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"67 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":"131493214","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}
引用次数: 12
Language-shifting objects from Java to Smalltalk: an exploration using JavaConnect 从Java到Smalltalk的语言转换对象:使用JavaConnect的探索
Pub Date : 2009-08-31 DOI: 10.1145/1735935.1735956
J. Brichau, Coen De Roover
Foreign-function interfaces enable programs in a host language to interoperate with programs written in another language and vice-versa. Two languages that feature such an interface to a common language can even interoperate by means of this common intermediate language. Smalltalk and Java, for example, both offer an interface to C and can therefore interoperate through a connection of these interfaces. However, the resulting interactions will need to occur at the level of abstraction offered by the (low-level) C interfaces, although both Java and Smalltalk are object-oriented languages. In this paper, we describe how the dynamic and reflective facilities of the Smalltalk language permits us to raise the level of abstraction of these inter-language interactions to seamless message passing between objects. In addition, we introduce and explore the concept of language shifting objects where Java objects are not only represented in Smalltalk but can partially or completely migrate from Java to Smalltalk. Language-shifting effectively migrates Java methods to Smalltalk methods such that original Java objects can end up "living" in the Smalltalk environment without needing a connection to their originating Java environment.
外部函数接口使用宿主语言编写的程序能够与用另一种语言编写的程序进行互操作,反之亦然。具有这种公共语言接口的两种语言甚至可以通过这种公共中间语言进行互操作。例如,Smalltalk和Java都提供了到C的接口,因此可以通过这些接口的连接进行互操作。然而,尽管Java和Smalltalk都是面向对象的语言,但是最终的交互需要发生在(低级)C接口提供的抽象级别上。在本文中,我们描述了Smalltalk语言的动态和反射功能如何允许我们提高这些语言间交互的抽象级别,从而在对象之间无缝传递消息。此外,我们还介绍并探讨了语言转移对象的概念,其中Java对象不仅在Smalltalk中表示,而且可以部分或完全从Java迁移到Smalltalk。语言转换有效地将Java方法迁移到Smalltalk方法中,这样原始Java对象就可以“活”在Smalltalk环境中,而不需要连接到它们的原始Java环境。
{"title":"Language-shifting objects from Java to Smalltalk: an exploration using JavaConnect","authors":"J. Brichau, Coen De Roover","doi":"10.1145/1735935.1735956","DOIUrl":"https://doi.org/10.1145/1735935.1735956","url":null,"abstract":"Foreign-function interfaces enable programs in a host language to interoperate with programs written in another language and vice-versa. Two languages that feature such an interface to a common language can even interoperate by means of this common intermediate language. Smalltalk and Java, for example, both offer an interface to C and can therefore interoperate through a connection of these interfaces. However, the resulting interactions will need to occur at the level of abstraction offered by the (low-level) C interfaces, although both Java and Smalltalk are object-oriented languages. In this paper, we describe how the dynamic and reflective facilities of the Smalltalk language permits us to raise the level of abstraction of these inter-language interactions to seamless message passing between objects. In addition, we introduce and explore the concept of language shifting objects where Java objects are not only represented in Smalltalk but can partially or completely migrate from Java to Smalltalk. Language-shifting effectively migrates Java methods to Smalltalk methods such that original Java objects can end up \"living\" in the Smalltalk environment without needing a connection to their originating Java environment.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"40 39","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-08-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131500055","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
期刊
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