24 research outputs found
Runtime bytecode transformation for Smalltalk �
www.elsevier.com/locate/cl Transforming programs to alter their semantics is of wide interest, for purposes as diverse as off-the-shelf component adaptation, optimization, trace generation, and experimentation with new language features.The current wave of interest in advanced technologies for better separation of concerns, such as aspect-oriented programming, is a solid testimony of this fact. Strangely enough, almost all proposals are formulated in the context of Java, in which tool providers encounter severe restrictions due to the rigidity of the environment. This paper presents BYTESURGEON, a library to transform binary code in Smalltalk. BYTESURGEON takes full advantage of the flexibility of the Squeak environment to enable bytecode transformation at runtime, thereby allowing dynamic, on-the-fly modification of applications. BYTESURGEON operates on bytecode in order to cope with situations where the source code is not available, while providing appropriate high-level abstractions so that users do not need to program at the bytecode level. We illustrate the use of BYTESURGEON via the implementation of method wrappers and a simple MOP, and report on its efficiency
PLOMO2 Associate Team Final Report
Performing effective software development and maintenance are best achieved with effective tool support. Provided by a variety of tools, each one presenting a specific kind of information supporting the task at hand. The goal of the first PLOMO was to develop new meta tools to improve and bring synergy in the existing infrastructure of Pharo (for software development) and the Moose software analysis platform (for maintenance). With PLOMO2, we build on top of this work and invent a new generation of tools to navigate and profile programs
Author manuscript, published in "Science of Computer Programming (2013)" DOI: 10.1016/j.scico.2013.06.006 Gradual Typing for Smalltalk
Being able to combine static and dynamic typing within the same language has clear benefits in order to support the evolution of prototypes or scripts into mature robust programs. While being an emblematic dynamic object-oriented language, Smalltalk is lagging behind in this regard. We report on the design, implementation and application of Gradualtalk, a gradually-typed Smalltalk meant to enable incremental typing of existing programs. The main design goal of the type system is to support the features of the Smalltalk language, like metaclasses and blocks, live programming, and to accomodate the programming idioms used in practice. We studied a number of existing projects in order to determine the features to include in the type system. As a result, Gradualtalk is a practical approach to gradual types in Smalltalk, with a novel blend of type system features that accomodate most programming idioms. Keywords: 1
Symbolic Dynamics And Matrices
this article is to give some overview of matrix problems and results in symbolic dynamics. The basic connection is that a nonnegative integral matrix A defines a topological dynamical system known as a shift of finite type. Questions about these systems are often equivalent to questions about "persistent" or "asymptotic" aspects of nonnegative matrices. Conversely, tools of symbolic dynamics can be used to address some of these questions. At the very least, the ideas of conjugacy, shift equivalence and strong shift equivalence give viewpoints on nonnegative matrices and directed graphs which are at some point inevitable and basic (although accessible, and even elementary)