11350926
A Generative Approach to Aspect-Oriented Programming
Aspect-Oriented Software Development (AOSD) offers new insights and tools for the modular development of systems with cross-cutting features. Current tool support for AOSD is provided mainly in the form of code-level constructs. This paper presents a way to express cross-cutting features as logical invariants and to use generative techniques to produce the kind of code that is usually written manually in AOSD. In order to state invariants that express cross-cutting features, we often need to reify certain extra-computational values such as history or the runtime call stack. The generative approach is illustrated by a variety of examples.
17878068
Guarded Transitions in Evolving Specifications
We represent state machines in the category of specifications, where assignment statements correspond exactly to interpretations between theories [7, 8]. However, the guards on an assignment require a special construction. In this paper we raise guards to the same level as assignments by treating each as a distinct category over a shared set of objects. A guarded assignment is represented as a pair of arrows, a guard arrow and an assignment arrow. We give a general construction for combining arrows over a factorization system, and show its specialization to the category of specifications. This construction allows us to define the fine structure of state machine morphisms with respect to guards. Guards define the flow of control in a computation, and how they may be translated under refinement is central to the formal treatment of safety, liveness, concurrency, and determinism.
7947888
Constructing Specification Morphisms
Specification morphisms underlie the refinement of algebraic specifications and provide the logical foundations for algorithm and data structure design. We present four techniques for formally, even mechanically, constructing specification morphisms. The first two techniques, verifying a manually constructed signature morphism and composition of specification morphisms are well-known. The remaining two techniques exploit the axioms of the source specification to help infer the translation of sort and function symbols from the source specification. The third, unskolemization, finds the translation of a function symbol by replacing occurrences of it in an axiom by an existentially quantified variable. A constructive proof of the translated axiom yields a witness to the existential that serves as the desired translation of the function symbol. The fourth technique, connections between specifications, allows the transfer of structure from one specification morphism to another. The unskolemization and connection techniques arose as abstractions from the algorithm design tactics implemented in the KIDS program transformation system (Smith (1990)). They suggest a more general approach to providing mechanized support for applying design knowledge expressed axiomatically.
12681881
Synthesis of Constraint Algorithms
44957593
Toward a Classification Approach to Design
This paper addresses the problem of how to construct refinements of specifications formally and incrementally. The key idea is to use a taxonomy of abstract design concepts, each represented by a design theory An abstract design concept is applied by constructing a specification morphism from its design theory to a requirement specification. Procedures for propagating constraints, computing colimits, and constructing specification morphisms provide computational support for this approach. Although we conjecture that classification generally applies to the incremental application of knowledge represented in a taxonomy of design theories, this paper mainly focuses on algorithm design theories and presents several examples of design by classification.
206511487
Composition and refinement of behavioral specifications
This paper presents a mechanizable framework for specifying, developing, and reasoning about complex systems. The framework combines features from algebraic specifications, abstract state machines, and refinement calculus, all couched in a categorical setting. In particular, we show how to extend algebraic specifications to evolving specifications (especs) in such a way that composition and refinement operations extend to capture the dynamics of evolving, adaptive, and self-adaptive software development, while remaining efficiently computable. The framework is partially implemented in the Epoxi system.
45395534
A Study of Permutation Crossover Operators on the Traveling Salesman Problem
30879884
Generation of lower bounds for minimum span frequency assignment
Minimum span frequency assignment problems require lower bounds for the span in order to assess the quality of individual assignments, and to effectively compare different meta-heuristic algorithms. The generation of good lower bounds requires the identification of critical subproblems. These subproblems are subgraphs of a constraint graph. Sometimes clique subgraphs lead to good lower bounds. However for some problems the clique must be modified in order to obtain the best possible bound. This can be time consuming, requires manual intervention and is dependent on the initial clique obtained and the specific problem. For practical use, a simple bounding technique is needed that can be universally applied to all problems without modification. Two algorithms based on meta-heuristics are presented that aim to find a subproblem that gives the best possible lower bound. This avoids the need for clique detection routines and manual intervention, and gives a robust and automatic method for generating lower bounds for all minimum span problems. These algorithms use mathematical programming formulations of the frequency assignment problem. Extensive testing on a wide range of problems shows that bounds from the new algorithms match those using previous techniques, and in some cases are significantly better.
11953962
Detecting events with date and place information in unstructured text
Digital libraries of historical documents provide a wealth of information about past events, often in unstructured form. Once dates and place names are identified and disambiguated, using methods that can differ by genre, we examine collocations to detect events. Collocations can be ranked by several measures, which vary in effectiveness according to type of events, but the log-likelihood measure (-2 log λ) offers a reasonable balance between frequently and infrequently mentioned events and between larger and smaller spatial and temporal ranges. Significant date-place collocations can be displayed on timelines and maps as an interface to digital libraries. More detailed displays can highlight key names and phrases associated with a given event.
17019446
A two-echelon inventory model with lost sales
Abstract This paper considers a single-item, two-echelon, continuous-review inventory model. A number of retailers have their stock replenished from a central warehouse. The warehouse in turn replenishes stock from an external supplier. The demand processes on the retailers are independent Poisson. Demand not met at a retailer is lost. The order quantity from each retailer on the warehouse and from the warehouse on the supplier takes the same fixed value Q , an exogenous variable determined by packaging and handling constraints. Retailer i follows a ( Q ,  R i ) control policy. The warehouse operates an ( SQ , ( S  − 1) Q ) policy, with non-negative integer S . If the warehouse is in stock then the lead time for retailer i is the fixed transportation time L i from the warehouse to that retailer. Otherwise retailer orders are met, after a delay, on a first-come first-served basis. The lead time on a warehouse order is fixed. Two further assumptions are made: that each retailer may only have one order outstanding at any time and that the transportation time from the warehouse to a retailer is not less than the warehouse lead time. The performance measures of interest are the average total stock in the system and the fraction of demand met in the retailers. Procedures for determining these performance measures and optimising the behaviour of the system are developed.
44972038
Project CALC: Calculus as a Laboratory Course
Calculus is the study of change. The concepts of calculus enable us to model processes that change and to describe properties of these processes that remain constant in the midst of change. Now change has come to the learning of calculus -change driven by the need to respond to the revolution in technology and fueled by funds from the United States National Science Foundation. What should be changed? How and how fast? What should remain constant? In this paper we describe one answer to these questions: Project CALC, a new calculus course developed at Duke University. The key features of our approach are real-world problems, hands-on activities, discovery learning, writing and revision of writing, teamwork, and intelligent use of available tools.