• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Programming as an Experience: The Inspiration for Self (1995)

by Randall B. Smith, David Ungar
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 34
Next 10 →

Concrete Type Inference: Delivering Object-Oriented Applications

by Ole Agesen , 1995
"... Unlimited copying without fee is permitted provided that the copies are not made nor distributed for direct commercial advantage, and credit to the source is given. Otherwise, no part of this work covered by copyright hereon may be reproduced in any form or by any means graphic, electronic, or mecha ..."
Abstract - Cited by 49 (0 self) - Add to MetaCart
Unlimited copying without fee is permitted provided that the copies are not made nor distributed for direct commercial advantage, and credit to the source is given. Otherwise, no part of this work covered by copyright hereon may be reproduced in any form or by any means graphic, electronic, or mechanical, including photocopying, recording, taping, or storage in an information retrieval system, without the prior written permission of the copyright owner. TRADEMARKS Sun, Sun Microsystems, and the Sun logo are trademarks or registered trademarks of Sun Microsystems, Inc. UNIX is a registered trademark in the United States and other countries, exclusively licensed through X/Open Company, Ltd. All SPARC trademarks, including the SCD Compliant Logo, are trademarks or registered trademarks of SPARC International, Inc. SPARCstation, SPARCserver, SPARCengine, SPARCworks, and SPARCompiler are licensed exclusively to Sun Microsystems, Inc. All other product names mentioned herein are the trademarks of their respective owners.

A brief history of just-in-time

by John Aycock - ACM Computing Surveys , 2003
"... Software systems have been using “just-in-time ” compilation (JIT) techniques since the 1960s. Broadly, JIT compilation includes any translation performed dynamically, after a program has started execution. We examine the motivation behind JIT compilation and constraints imposed on JIT compilation s ..."
Abstract - Cited by 42 (1 self) - Add to MetaCart
Software systems have been using “just-in-time ” compilation (JIT) techniques since the 1960s. Broadly, JIT compilation includes any translation performed dynamically, after a program has started execution. We examine the motivation behind JIT compilation and constraints imposed on JIT compilation systems, and present a classification scheme for

Subtext: Uncovering the Simplicity of Programming

by Jonathan Edwards - IN OOPSLA ’05: PROCEEDINGS OF THE 20TH ANNUAL ACM SIGPLAN CONFERENCE ON OBJECT ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES, AND APPLICATIONS , 2005
"... Representing programs as text strings makes programming harder then it has to be. The source text of a program is far removed from its behavior. Bridging this conceptual gulf is what makes programming so inhumanly difficult -- we are not compilers. Subtext is a new medium in which the representation ..."
Abstract - Cited by 20 (2 self) - Add to MetaCart
Representing programs as text strings makes programming harder then it has to be. The source text of a program is far removed from its behavior. Bridging this conceptual gulf is what makes programming so inhumanly difficult -- we are not compilers. Subtext is a new medium in which the representation of a program is the same thing as its execution. Like a spreadsheet, a program is visible and alive, constantly executing even as it is edited. Program edits are coherent semantic transformations. The essence of

Separation of Concerns in Mobile Agent Applications

by Naoyasu Ubayashi, Tetsuo Tamai - Proceedings of the 3rd International Conference Reflection 2001, LNCS 2192 , 2001
"... Abstract. Using mobile agent systems, cooperative distributed applications that run over the Internet can be constructed flexibly. However, there are some problems: it is difficult to understand collaborations among agents and travels of individual agents as a whole because mobility/collaboration fu ..."
Abstract - Cited by 14 (2 self) - Add to MetaCart
Abstract. Using mobile agent systems, cooperative distributed applications that run over the Internet can be constructed flexibly. However, there are some problems: it is difficult to understand collaborations among agents and travels of individual agents as a whole because mobility/collaboration functions tend to be intertwined in the code; it is difficult to define behaviors of agents explicitly because they are influenced by their external context dynamically. Many aspects of mobility/collaboration strategies including traveling, coordination constraints, synchronization constraints and security-checking strategies should be considered when mobile agent applications are constructed. In this paper, the concept of RoleEP(Role Based Evolutionary Programming) is proposed in order to alleviate these problems. In RoleEP, a field where a group of agents roam around hosts and collaborate with each other is regarded as an environment and mobility/collaboration functions that an agent should assume in an environment are defined as roles. An object becomes an agent by binding itself to a role that is defined in an environment, and acquires mobility/collaboration functions dynamically. RoleEP provides a mechanism for separating concerns about mobility/collaboration into environments and a systematic evolutionary programming style. Distributed applications based on mobile agent systems, which may change their functions dynamically in order to adapt themselves to their external context, can be constructed by synthesizing environments dynamically. 1

Demand-Driven Type Inference with Subgoal Pruning: Trading Precision for Scalability

by S. Alexander Spoon, Olin Shivers , 2004
"... After two decades of effort, type inference for dynamically typed languages scales to programs of a few tens of thousands of lines of code, but no further. For larger programs, this paper proposes using a kind of demand-driven analysis where the number of active goals is carefully restricted. To ach ..."
Abstract - Cited by 13 (2 self) - Add to MetaCart
After two decades of effort, type inference for dynamically typed languages scales to programs of a few tens of thousands of lines of code, but no further. For larger programs, this paper proposes using a kind of demand-driven analysis where the number of active goals is carefully restricted. To achieve this restriction, the algorithm occasionally prunes goals by giving them solutions that are trivially true and thus require no further subgoals to be solved; the previous subgoals of a newly pruned goal may often be discarded from consideration, reducing the total number of active goals. A specific algorithm DDP is described which uses this approach. An experiment on DDP shows that it infers precise types for roughly 30 % to 45 % of the variables in a program with hundreds of thousands of lines; the percentage varies with the choice of pruning threshold, a parameter of the algorithm. The time required varies from an average of one-tenth of one second per variable to an unknown maximum, again depending on the pruning threshold. These data suggest that 50 and 2000 are both good choices of pruning threshold, depending on whether speed or precision is more important.

Design and Implementation of Pep, a Java Just-In-Time Translator

by Ole Agesen , 1997
"... Java, a new object-oriented member of the C family of languages, has become popular in part because it emphasizes portability. Portability is achieved by compiling programs to machine-independent bytecodes that can be interpreted on a Java virtual machine. Unfortunately, interpreted performance do ..."
Abstract - Cited by 11 (1 self) - Add to MetaCart
Java, a new object-oriented member of the C family of languages, has become popular in part because it emphasizes portability. Portability is achieved by compiling programs to machine-independent bytecodes that can be interpreted on a Java virtual machine. Unfortunately, interpreted performance does not match native code performance. A just-in-time compiler can regain performance without sacrificing portability by turning the bytecodes into native code at runtime. This idea has a proven track record: Deutsch and Schiffman presented a dynamic Smalltalk compiler in 1984 [5], and the Self system currently sports a dynamic type-feedback based optimizing compiler [12]. To study the performance potential of Java with this state-of-the-art optimization technology, we built Pep, a just-intime compiler from Java bytecodes to Self. Following translation by Pep, Java programs can execute on the Self virtual machine and benefit from the optimizations performed by Self's compiler. We describe the design and implementation of Pep, focusing on concepts and trade-offs, but also compare performance with the JDK 1.0.2 and 1.1 interpreters. 1

An adaptive object model with dynamic role binding

by Tetsuo Tamai - In Proceedings of International Conference on Software Engineering , 2005
"... To achieve the goal of realizing object adaptationto environments, a new role-based model Epsilon and a language EpsilonJ is proposed. In Epsilon, an environment is defined as a field of collaboration between roles and an object adapts to the environment assuming one of the roles. Objects can freely ..."
Abstract - Cited by 10 (0 self) - Add to MetaCart
To achieve the goal of realizing object adaptationto environments, a new role-based model Epsilon and a language EpsilonJ is proposed. In Epsilon, an environment is defined as a field of collaboration between roles and an object adapts to the environment assuming one of the roles. Objects can freely enter or leave environments and belong to multiple environments at a time so that dynamic adaptation or evolution of objects is realized. Environments and roles are the first class constructs at runtime as well as at model description time so that separation of concerns is not only materialized as a static structure but also observed as behaviors. Environments encapsulating collaboration are independent reuse components to be deployed separately from objects. In this paper, the Epsilon model and the language are explained with some examples. The effectiveness of the model is illustrated by a case study on the problem of integrated systems. Implementation of the language is also reported. 1.

Example Centric Programming

by Jonathan Edwards - SIGPLAN Not , 2004
"... Programmers tend to understand programs by thinking of concrete examples. Example Centric Programming seeks to add IDE support for examples throughout the process of programming. Instead of programmers interpreting examples in their head, the examples are written down and the IDE interprets them aut ..."
Abstract - Cited by 10 (1 self) - Add to MetaCart
Programmers tend to understand programs by thinking of concrete examples. Example Centric Programming seeks to add IDE support for examples throughout the process of programming. Instead of programmers interpreting examples in their head, the examples are written down and the IDE interprets them automatically. Advanced UI techniques are used to present the results closely integrated with the code. Traditionally distinct programming tools (the editor, Read-Eval-Print-Loop, debugger, and test runner) are unified into a single tool that might be called an example-enlightened editor. This is expected to benefit a wide spectrum of programming activities, for both novice and experienced programmers. Some novel methods for testing and development are suggested. A prototype has been implemented for Java in Eclipse.

Beyond Objects: Components

by Theo Dirk Meijler, Oscar Nierstrasz , 1998
"... Traditional software development approaches do not cope well with the evolving requirements of open systems. We argue that such systems are best viewed as flexible compositions of "software components" designed to work together as part of a component framework that formalizes a class of applicati ..."
Abstract - Cited by 10 (2 self) - Add to MetaCart
Traditional software development approaches do not cope well with the evolving requirements of open systems. We argue that such systems are best viewed as flexible compositions of "software components" designed to work together as part of a component framework that formalizes a class of applications with a common software architecture.

Encapsulation = Visibility + Accessibility

by Günter Kniesel , 1996
"... This paper reviews the relationship of encapsulation and sharing and proposes a unified notion of encapsulation and sharing. We show that the key to a more flexible and more general encapsulation model is the use of access rights in addition to the traditional visibility-based interpretation of e ..."
Abstract - Cited by 6 (1 self) - Add to MetaCart
This paper reviews the relationship of encapsulation and sharing and proposes a unified notion of encapsulation and sharing. We show that the key to a more flexible and more general encapsulation model is the use of access rights in addition to the traditional visibility-based interpretation of encapsulation. The traditional interpretation prevents "private" variables of an object from being accessed, but it does not protect their values, i.e. the objects referenced by these variables. Thus it permits indirect changes to the state of an object, e.g. implicitly changing an address object by changing the street object that it references. In contrast, the access-right-based model allows prevention of such undesired manipulations of an object's state, without excluding sharing of objects. We also consider the interaction of encapsulation with higher forms of sharing like inheritance and delegation. In particular, we refute the claim that delegation breaches encapsulation. This claim is supported neither by the purely visibility-based view of encapsulation nor by the extended one proposed in this paper. Keywords encapsulation, inheritance, delegation, visibility, accessibility TABLE OF CONTENTS 1
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University