Type inference and type reconstruction derive static types for program elements that have no static type associated with them. They have a wide range of usage, such as helping to eliminate the burden of manually speci...
详细信息
OO languages typically provide one form of object equality, known as reference equality, where two objects are equal only if they are the same object;two objects which are structurally identical are not considered equ...
详细信息
OO languages typically provide one form of object equality, known as reference equality, where two objects are equal only if they are the same object;two objects which are structurally identical are not considered equal. Thus, programmers who require a more refined notion of equality must define their own operator. Programmerimplemented equality operators tend to rely on informal notions of partial and temporal object immutability which are prone to error. This is a particular problem for objects used in collections which depend on equality. This paper discusses Affinity: an untyped, object-oriented language with a powerful equality operator based on EGAL [2] and support for object-keying and immutability. Affinity is designed to provide coherent and elegant support for object equality, reducing programmer burden and error potential. Copyright 2009 ACM.
作者:
Tanter, Éric
University of Chile Santiago Chile
Traditional treatment of scoping in programming languages considers two opposite semantics: static scoping, where the scope of a binding is a block of program text, and dynamic scoping, where a binding is in effect du...
详细信息
Gradual typing, proposed by Siek and Taha, is a framework to combine the benefits of static and dynamic typing. Under gradual typing, some parts of the program are type-checked at compile time, and the other parts are...
详细信息
In order to construct a test-bed for investigating new programming paradigms for future "manycore" systems (i.e. those with at least a thousand cores), we are building a Smalltalk virtual machine that attemp...
详细信息
JavaScript programmers make extensive use of event-driven programming to help build responsive web applications. However, standard approaches to sequencing events are messy, and often lead to code that is difficult to...
详细信息
The paper introduces a novel model for visualization and management of complex hardware architectures. This model settles component oriented environment for both hardware modules and software application. The purpose ...
详细信息
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 di...
详细信息
ISBN:
(纸本)9781605588995
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. Copyright 2009 ACM.
This paper summarizes experiences gained with OO teaching for several years at the Warsaw University. We start with description of students being taught and the impact of their skills and motivation on the chosen teac...
详细信息
Context-sensitive points-to analysis is the current most scalable technology for constructing a precise control-flow graph for large object-oriented programs. One appealing feature of this framework is that it is para...
详细信息
ISBN:
(纸本)9781605585406
Context-sensitive points-to analysis is the current most scalable technology for constructing a precise control-flow graph for large object-oriented programs. One appealing feature of this framework is that it is parametric thus allowing to trade time for precision. Typical instances of this framework are κ-CFAs and Agesen's Cartesian Product Algorithm (CPA). It is common sense that κ-CFAs (for increasing κs) form a hierarchy. Yet, what is the relative precision of κ-CFA and CPA? Grove and Chambers [2] conjecture that CPA is more precise than -CFA. For a core object-oriented language, we formally compare the precision of -CFA and CPA. We prove that CPA is indeed strictly more precise than -CFA. On a theoretical level, this result confirms the findings of empiric studies concluding the superiority of object-sensitivity with respect to call-string sensitivity.
暂无评论