The SCOOP model extends Eiffel to support the construction of concurrent applications with little more effort than sequential ones. The model provides strong safety guarantees: mutual exclusion and atomicity at the ro...
详细信息
The SCOOP model extends Eiffel to support the construction of concurrent applications with little more effort than sequential ones. The model provides strong safety guarantees: mutual exclusion and atomicity at the routine level, and FIFO scheduling of clients' calls. Unfortunately, in the original proposal of the model (SCOOP_97) these guarantees come at a high price: they entail locking all the arguments of a feature call, even if the corresponding objects are never used by the feature. In most cases, the amount of locking is higher than necessary. Additionally, a client that holds a lock on a given processor cannot relinquish it temporarily when the lock is needed by one of its suppliers. This increases the likelihood of deadlocks;additionally, some interesting synchronisation scenarios, e.g. separate callbacks, cannot be implemented. We propose two refinements of the access control policy for SCOOP: a type-based mechanism to specify which arguments of a routine call should be locked, and a lock passing mechanism for safe handling of complex synchronisation scenarios with mutual locking of several separate objects. When combined, these refinements increase the expressive power of the model, give programmers more control over the computation, and enable more potential parallelism, thus reducing the risk of deadlock.
The SCOOP model extends the Eiffel programming language to provide support for concurrent programming. The model is based on the principles of Design by Contract. The semantics of contracts used in the original propos...
详细信息
The SCOOP model extends the Eiffel programming language to provide support for concurrent programming. The model is based on the principles of Design by Contract. The semantics of contracts used in the original proposal (SCOOP_97) is not suitable for concurrent programming because it restricts parallelism and complicates reasoning about program correctness. This article outlines a new contract semantics which applies equally well in concurrent and sequential contexts and permits a flexible use of contracts for specifying the mutual rights and obligations of clients and suppliers while preserving the potential for parallelism. We argue that it is indeed a generalisation of the traditional correctness semantics. We also propose a proof technique for concurrent programs which supports proofs-similar to those for traditional non-concurrent programs-of partial correctness and loop termination in the presence of asynchrony.
Dependency Injection is an in-depth guide to the current best practices for using the Dependency Injection pattern-the key concept in Spring and the rapidly-growing Google Guice. It explores Dependency Injection, some...
详细信息
ISBN:
(纸本)9781933988559
Dependency Injection is an in-depth guide to the current best practices for using the Dependency Injection pattern-the key concept in Spring and the rapidly-growing Google Guice. It explores Dependency Injection, sometimes called Inversion of Control, in fine detail with numerous practical examples. Developers will learn to apply important techniques, focusing on their strengths and limitations, with a particular emphasis on pitfalls, corner-cases, and best practices. This book is written for developers and architects who want to understand Dependency Injection and successfully leverage popular DI technologies such as Spring, Google Guice, PicoContainer, and many others. The book explores many small examples of anchor concepts and unfolds a larger example to show the big picture. Written primarily from a Java point-of-view, this book is appropriate for any developer with a working knowledge of object-oriented programming in Java, Ruby, or C#.
The need for fast and reliable remote sensing algorithms is continuously growing. Remote sensing libraries are scarce and sometimes are difficult to use. The Orfeo Toolbox (OTB) is one such library that stands apart w...
详细信息
ISBN:
(纸本)9781424433940
The need for fast and reliable remote sensing algorithms is continuously growing. Remote sensing libraries are scarce and sometimes are difficult to use. The Orfeo Toolbox (OTB) is one such library that stands apart with its robust development scheme and programming concepts. Not all remote sensing researchers have a strong programming background. Programmers need to find ways of giving easier access to desired algorithms without the need of cumbersome programming overheard. This paper compares the actual parameter management class of OTB with a proposed dynamic graphical interface to replace it The programming concepts used will first be presented This work will lead to creating a visual programming environment for OTB.
object composition is often advocated as a more flexible alternative to standard class inheritance since it takes place at run-time, thus permitting the behavior of objects to be specialized dynamically. In this paper...
详细信息
ISBN:
(纸本)9783642026546
object composition is often advocated as a more flexible alternative to standard class inheritance since it takes place at run-time, thus permitting the behavior of objects to be specialized dynamically. In this paper we present I-Java, an extension of the Java language with a form of incomplete objects, i.e., objects with some missing methods which can be provided at run-time by composition with another (complete) object. Therefore, we can exploit object composition as a linguistic construct, instead of resorting to a manual implementation. This work builds on our theoretical model of incomplete objects, which was proved type-safe.
KEY BENEFIT: The Deitels groundbreaking How to Program series offers unparalleled breadth and depth of object-oriented programming concepts and intermediate-level topics for further study. This revision is current wit...
详细信息
ISBN:
(纸本)0136123716;9780136123712
KEY BENEFIT: The Deitels groundbreaking How to Program series offers unparalleled breadth and depth of object-oriented programming concepts and intermediate-level topics for further study. This revision is current with the Java SE 6 revisions that have occurred since the book was last published. The Late objects Version delays coverage of class development until Chapter 8, presenting the control structures, methods and arrays material in a non-object-oriented, procedural programming context. KEY TOPICS: Introduction and Basic Java programming; Control Statements: Part 1; Control Statements: Part 2; Methods and Introduction to Recursion; Arrays; Introduction to Strings and Files; Introduction to Classes and objects; Classes and objects: A Deeper Look; object-oriented programming: Inheritance; object-oriented programming: Polymorphism; Exception Handling; (Optional) ATM Case Study, Part 1: object-oriented Design with the UML; (Optional) ATM Case Study, Part 2: Implementing an object-oriented Design; GUI Components: Part 1; Graphics and Java 2D; Applets and Java Web Start; Multimedia: Applets and Applications; GUI Components: Part 2; Strings, Characters and Regular Expressions; Files, Streams and object Serialization; Recursion; Searching, Sorting and Big O; Generic Collections; Generics; Data Structures; Multithreading; Networking; Accessing Databases with JDBC; JavaServer Faces (JSF) Web Applications; Ajax-Enabled JSF Web Applications; JAX-WS Web Services. MARKET: A useful reference for programmers who need to brush up their Java skills.
Frameworks are a fundamental reuse technique, but they are often hard to learn and reuse. Documentation approaches and tools supporting instantiation have been the main research subjects for addressing framework reuse...
详细信息
ISBN:
(纸本)9781424447794
Frameworks are a fundamental reuse technique, but they are often hard to learn and reuse. Documentation approaches and tools supporting instantiation have been the main research subjects for addressing framework reuse difficulties. This paper introduces a new approach that starts from a more fundamental level - framework characteristics. These are shaped by programming and design techniques, and their impact on reuse difficulties is analysed. From there, a framework model making a congruent combination of characteristics is defined. The results are demonstrated with a case study framework. Both the problem analysis and the proposed solution are relevant for the conference topics, namely framework reuse and design methods.
To allow the creation of truly modular software, OOP has evolved into aspect-orientedprogramming. AspectJ is a mature AOP implementation for Java, now integrated with Spring. AspectJ in Action, Second Edition is a fu...
详细信息
ISBN:
(纸本)9781933988054
To allow the creation of truly modular software, OOP has evolved into aspect-orientedprogramming. AspectJ is a mature AOP implementation for Java, now integrated with Spring. AspectJ in Action, Second Edition is a fully updated, major revision of Ramnivas Laddad's best-selling first edition. It's a hands-on guide for Java developers. After introducing the core principles of AOP, it shows you how to create reusable solutions using AspectJ 6 and Spring 3. You'll master key features including annotation-based syntax, load-time weaver, annotation-based crosscutting, and Spring-AspectJ integration. Building on familiar technologies such as JDBC, Hibernate, JPA, Spring Security, Spring MVC, and Swing, you'll apply AOP to common problems encountered in enterprise applications. This book requires no previous experience in AOP and AspectJ, but it assumes you're familiar with OOP, Java, and the basics of Spring. "Clear, concisely worded, well-organized ... a pleasure to read." -From the Foreword by Rod Johnson, Creator of the Spring Framework "This book teaches you how to think in aspects. It is essential reading for both beginners who know nothing about AOP and experts who think they know it all." - Andrew Eisenberg, AspectJ Development Tools Project Committer "Ramnivas showcases how to get the best out of AspectJ and Spring." -Andy Clement, AspectJ Project Lead "One of the best Java books in years." -Andrew Rhine, Software Engineer, eSecLending "By far the best reference for Spring AOP and AspectJ." -Paul Benedict, Software Engineer, Argus Health Systems "Ramnivas expertly demystifies the awesome power of aspect-orientedprogramming." -Craig Walls, author of Spring in Action
Automatic test engineers are faced with replacing obsolete software and hardware in systems that remain in operation longer than individual components are supported. Replacing obsolete hardware can be especially chall...
详细信息
ISBN:
(纸本)9781424449804
Automatic test engineers are faced with replacing obsolete software and hardware in systems that remain in operation longer than individual components are supported. Replacing obsolete hardware can be especially challenging because of the need to modify test software in order to support new instrumentation. Changes to test software in order to support new instrumentation might affect multiple areas of the application and require time-consuming development or costly revalidation. This paper explains how you can mitigate hardware obsolescence with the use of well-designed hardware abstraction layers.
This paper describes a proof outline logic that covers most typical object-oriented language constructs in the presence of inheritance and subtyping. The logic is based on a weakest precondition calculus for assignmen...
详细信息
This paper describes a proof outline logic that covers most typical object-oriented language constructs in the presence of inheritance and subtyping. The logic is based on a weakest precondition calculus for assignments and object allocation which takes field shadowing into account. Dynamically bound method calls are tackled with a variant of Hoare's rule of adaptation that deals with the dynamic allocation of objects in object-oriented programs. The logic is based on an assertion language that is closely tailored to the abstraction level of the programming language. (c) 2005 Elsevier B.V. All rights reserved.
暂无评论