We introduce object ownership profiling, a technique forfinding and fixing memory leaks in object-oriented programs. Object ownership profiling is the first memory profiling technique that reports both a hierarchy of ...
详细信息
ISBN:
(纸本)9781595938824
We introduce object ownership profiling, a technique forfinding and fixing memory leaks in object-oriented programs. Object ownership profiling is the first memory profiling technique that reports both a hierarchy of allocated objects along with size and time information aggregated up that hierarchy. In addition, it reveals the cross-hierarchy interactions that areessential to pinpointing the source of the leak. We identify five memory management anti-patterns, including two that involve rich heap structure and object interactions, and are novel contributions of this work. We apply object ownership profiling to find and fix memory leaks in the Alloy IDE v3 that users had complained about for years, and that had eluded detection by code reviews and type-based commercial memory profilers. Copyright 2007 ACM.
The JastAdd Extensible Java Compiler is a high quality Java that is easy to extend in order to build static analysis for Java, and to extend Java with new language constructs. built modularly, with a Java 1.4 compiler...
详细信息
Learning logical relations from examples expressed as first order facts has been studied extensively by the inductive logicprogramming research. Learning with positive-only data may cause over generalization of examp...
详细信息
Learning logical relations from examples expressed as first order facts has been studied extensively by the inductive logicprogramming research. Learning with positive-only data may cause over generalization of examples leading to inconsistent resulting hypotheses. A learning heuristic inferring specific generalization of strings based on unique match sequences is shown to be capable of learning predicates with string arguments. This paper describes an inductive learner based on the idea of specific generalization of strings, and the given clauses are generalized by considering the background knowledge.
Fundamental electronic structures such as diodes and FETs have been shown to be constructed using selectively doped semiconducting carbon nanotubes or silicon nanowires (CNTs, SiNWs) at nanometer scale. Memory and Log...
详细信息
ISBN:
(纸本)0769528856
Fundamental electronic structures such as diodes and FETs have been shown to be constructed using selectively doped semiconducting carbon nanotubes or silicon nanowires (CNTs, SiNWs) at nanometer scale. Memory andlogic cores have been proposed, that use the configurable junctions in 2D crossbars of CNTs. These memory andlogic arrays at this scale exhibit a significant amount of defects that account for poor a yield. Configuration of these devices in the presence of defects demands an overhead in terms of area andprogramming time. This work introduces a PLA configuration that makes use of fixed and adaptive redundancy in terms of the number of nanowires. This is done in order to simplify the process of programming the PLA, increase the yield, reduce the time complexity, and in turn, reduce the cost of the system.
Monitoring-Oriented programming (MOP1) [21, 18, 22, 19] is a formal framework for software development and analysis, in which the developer specifies desired properties using definable specification formalisms, along ...
详细信息
We explore a means to both model and reason about partial observability within the scope of constraint-based temporal reasoning. Prior studies of uncertainty in Temporal CSPs have required the realization of all exoge...
详细信息
Second Life is a large, on-line virtual world where avatars dance, fly, buy virtual clothing, play games, have meetings...and program. About 256k residents of Second Life write code that runs 24/7 in over 2M simulated...
详细信息
ISBN:
(纸本)9781595938657
Second Life is a large, on-line virtual world where avatars dance, fly, buy virtual clothing, play games, have meetings...and program. About 256k residents of Second Life write code that runs 24/7 in over 2M simulated objects in a continuous 3D landscape twice the size of Montréal. This giant, collaborative development environment is run on a large grid of over 12k CPUs in a grid of "simulators" that run the land of Second Life. The simulators have an integral virtual machine for the scripting language people use. Despite the inherit difficulties, the system demonstrably does enough right to enable development of a huge amount of content in Second Life. As the virtual world grows, we have been evolving its infrastructure for programming in several ways. Integration of the Mono virtual machine presented a huge set of challenges but offers major advantages as Second Life grows. We have also had to architect and extend in light of the fact that Second Life is a continuously running system on which over a million people rely. Finally, apart from the language and run-time environment, Second Life also presents a social environment in which to program collaboratively. Within Linden Lab, we have pioneered the use of Second Life as an integral part of our development methodology even when working on the underlying code of Second Life itself. These experiences point toward a re-imagining of programming as a globally immersive collaborative experience.
Automating the generation of object-oriented unit tests is a challenging task. This is mainly due to the complexity and peculiarities that the principles of object-orientation imply. One of these principles is the enc...
详细信息
ISBN:
(纸本)9781595938824
Automating the generation of object-oriented unit tests is a challenging task. This is mainly due to the complexity and peculiarities that the principles of object-orientation imply. One of these principles is the encapsulation of class members which prevents non-public methods and attributes of the class under test from being freely accessed. This paper suggests an improvement of our automated search-based test generation approach which particularly addresses the test of non-public methods. We extend our objective functions by an additional component that accounts for encapsulation. Additionally, we propose a modification of the search space which increases the efficiency of the approach. The value of the improvement in terms of achieved code coverage is demonstrated by a case study with 7 real-world test objects. In contrast to other approaches which break encapsulation in order to test non-public methods, the tests generated by our approach inherently guarantee that class invariants are not violated. At the same time, refactorings of the encapsulated class members will not break the generated tests. Copyright 2007 ACM.
A new fully CMOS process compatible anti-fuse device with programmable contact has been developed for advanced programmable logic applications. This anti-fuse processed by pure logic process and decoupled with transis...
详细信息
A new fully CMOS process compatible anti-fuse device with programmable contact has been developed for advanced programmable logic applications. This anti-fuse processed by pure logic process and decoupled with transistor gate oxide has a highly stable and extremely wide on/off window. It exhibits superior disturb immunity in program and read operations. The device additionally provides the capability to adapt multiple programmable contacts for the needs of elevated data writing and reading performance. This novel anti-fuse cell is a very promising programmable logic solution with fully CMOS logic compatible process below 0.13μm node.
Programs sometimes crash due to unusable values, for example, Java and C# programs dereference null pointers when C and C++ programs use undefined values to program behavior. A stack trace produced on such a identifie...
详细信息
ISBN:
(纸本)1595937862
Programs sometimes crash due to unusable values, for example, Java and C# programs dereference null pointers when C and C++ programs use undefined values to program behavior. A stack trace produced on such a identifies the effect of the unusable value, not its cause, is often not much help to the programmer. paper presents efficient origin tracking of unusable ; it shows how to record where these values come into, correctly propagate them, and report them if they an error. The key idea is value piggybacking: when original program stores an unusable value, value piggybacking stores origin information in the spare bits of unusable value. Modest compiler support alters the program propagate these modified values through operations as assignments and comparisons. We evaluate two implementations: first tracks null pointer origins in a JVM, the second tracks undefined value origins in a memorychecking built with Valgrind. These implementations that origin tracking via value piggybacking is fast and useful, and in the Java case, has low enough overhead for use in a production environment. Copyright 2007 ACM.
暂无评论