131 research outputs found

    Waterfall: Primitives Generation on the Fly

    No full text
    Modern languages are typically supported by managed runtimes (Virtual Machines). Since VMs have to deal with many concepts such as memory management, abstract execution model and scheduling, they tend to be very complex. Additionally, VMs have to meet strong performance requirements. This demand of performance is one of the main reasons why many VMs are built statically. Thus, design decisions are frozen at compile time preventing changes at runtime. One clear example is the impossibility to dynamically adapt or change primitives of the VM once it has been compiled. In this work we present a toolchain that allows for altering and configuring components such as primitives and plug-ins at runtime. The main contribution is Waterfall, a dynamic and reflective translator from Slang, a restricted subset of Smalltalk, to native code. Waterfall generates primitives on demand and executes them on the fly. We validate our approach by implementing dynamic primitive modification and runtime customization of VM plug-ins

    Advanced data management design for autonomous telerobotic systems in space using spaceborne symbolic processors

    Get PDF
    The use of computers in autonomous telerobots is reaching the point where advanced distributed processing concepts and techniques are needed to support the functioning of Space Station era telerobotic systems. Three major issues that have impact on the design of data management functions in a telerobot are covered. It also presents a design concept that incorporates an intelligent systems manager (ISM) running on a spaceborne symbolic processor (SSP), to address these issues. The first issue is the support of a system-wide control architecture or control philosophy. Salient features of two candidates are presented that impose constraints on data management design. The second issue is the role of data management in terms of system integration. This referes to providing shared or coordinated data processing and storage resources to a variety of telerobotic components such as vision, mechanical sensing, real-time coordinated multiple limb and end effector control, and planning and reasoning. The third issue is hardware that supports symbolic processing in conjunction with standard data I/O and numeric processing. A SSP that currently is seen to be technologically feasible and is being developed is described and used as a baseline in the design concept

    Experiments with a Fast Object Swapper

    Get PDF
    International audienceIn object-oriented systems, runtime memory is composed of an object graph in which objects refer to other objects. This graph of objects evolves while the system is running. Graph exporting and swapping are two important object graph operations. Exporting refers to copying the graph to some other memory so that it can be loaded by another system. Swapping refers to moving the graph to a secondary memory (e.g., a hard disk) to temporary release part of the primary memory. While exporting and swapping are achieved in different ways, each of them faces a common and central problem which is the speed of the approach in presence of large object graphs. Nevertheless, most of the existing solutions do not address well this issue. Another challenge is to deal with extremely common situations where objects outside the exported/swapped graph point to objects inside the graph. To correctly load back an exported subgraph, it is necessary to compute and export extra information that is not explicit in the object subgraph. This extra information is needed because certain objects may require to be reinitialized or recreated, to run specific code before or after the loading, to be updated to a new class definition, etc. In this paper, we present most of the general problems of object exporting and swapping. As a case of study, we present an analysis of ImageSegment, a fast solution to export and swap object graphs, developed by Dan Ingalls. ImageSegment addresses the speed problems in an efficient way, as shown by the results of several benchmarks we have conducted using Pharo Smalltalk. However, ImageSegment is not a panacea since it still has other problems that hampers its general use

    Squeak by Example

    Get PDF
    Squeak by Example, intended for both students and developers, will guide you gently through the Squeak language and environment by means of a series of examples and exercises. This book is made available under the Creative Commons Attribution-ShareAlike 3.0 license

    Pharo by Example

    Get PDF
    Pharo is a modern, open source, fully-featured implementation of the Smalltalk programming language and environment. Pharo is derived from Squeak1, a re-implementation of the classic Smalltalk-80 system. Whereas Squeak was developed mainly as a platform for developing experimental educational software, Pharo strives to offer a lean, open-source platform for professional software development, and a robust and stable platform for research and development into dynamic languages and environments. Pharo serves as the reference implementation for the Seaside web development framework

    Efficient Proxies in Smalltalk

    Get PDF
    International audienceA 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

    Confronting science misconceptions with the help of a computer.

    Get PDF

    Impoliteness strategies used by the main character in the Hancock movie

    Get PDF
    This research aims to analyze the impoliteness found in the utterances of the main character of the Hancock movie named John Hancock, a man who deserves to be called a superhero because of his efforts to reduce crimes but tends to be disliked by the public because of his impolite words and cause much damage while performing his heroic actions. The researcher is interested in investigating the impoliteness strategies used by John Hancock because, as far as the researcher knows, it is very little that researches on impoliteness strategies make use of action films the main study. Moreover, no study focuses on examining the utterances of one main character in the movie. There are two problems to be solved in this research, namely: (1) What are the types of impoliteness strategies used by the main character in the Hancock action movie and (2) How do interlocutors respond toward the main character’s impoliteness in the Hancock action movie. This study used a qualitative approach because it gathered non-numerical data. Specifically, this research employed descriptive research in textual analysis to analyze the utterance of the main character through the Hancock movie transcript. The data were collected by first transcribing the Hancock movie. The analysis began with highlighting the utterances that include impolite words and the responses toward the impoliteness, giving the certain code of each type of impoliteness strategies and strategies to counter the face attacks, and classifying them into a data card. The analysis was continued by identifying the impoliteness strategies used by the main character in the Hancock movie and identifying strategies to counter the face attacks used by the interlocutors. Finally, the researcher provides the explanations of why particular strategies were used by looking at the background and conversation situation of the main character with the interlocutors.This research reveals that the impoliteness strategy most used by the main character in the Hancock movie is a positive impoliteness strategy. Most of the choices of impoliteness strategies in the main character are influenced by his personality. The power factor, such as superman who can fly, strong, and bulletproof body that is not possessed by others, affects the main character in the use of impoliteness strategies. In addition, this research also reveals that the strategy to counter the face attacks that are most often found in the Hancock movie is the offensive escalation strategy. Most of the choices of strategy to counter the face attacks that applied by the interlocutors emerged because their disagreement that makes them strike back the main character’s statement. It can be concluded that the power factor is one of the factors that can influence the choice of impoliteness strategies, and strategies to counter the face attacks can emerge when a positive self-image has been attacked by the speaker

    Problems and Challenges when Building a Manager for Unused Objects

    Get PDF
    International audienceLarge object-oriented applications may occupy hundreds of megabytes or even gigabytes of memory. During program execution, a large graph of objects is created and constantly changed. Most object runtimes support some kind of automatic memory management based on garbage collectors (GC) whose idea is the automatic destruction of unreferenced objects. However, there are referenced objects which are not used for a long period of time or that are used just once. These are not garbage-collected because they are still reachable and might be used in the future. Due to these unused objects, applications use much more resources than they actually need. In this paper we present the challenges and possible approaches towards an unused object manager for Pharo. The goal is to use less memory by swapping out the unused objects to secondary memory and only leaving in primary memory only those objects which are needed and used. When one of the unused objects is needed, it is brought back into primary memory
    • 

    corecore