We propose a demand-driven conditional narrowing calculus in which a variant of definitional trees [2] is used to efficiently control the narrowing strategy. this calculus is sound and strongly complete w.r.t. Constru...
详细信息
ISBN:
(纸本)9781581137057
We propose a demand-driven conditional narrowing calculus in which a variant of definitional trees [2] is used to efficiently control the narrowing strategy. this calculus is sound and strongly complete w.r.t. Constructor-based ReWriting Logic (CRWL) semantics [7] for a wide class of constructor-based conditional term rewriting systems. the calculus mantains the optimality properties of the needed narrowing strategy [5]. Moreover, the treatment of strict equality as a primitive rather than a defined function symbol, leads to an improved behaviour w.r.t. needed narrowing.
One of the central problems of eukaryotic gene regulation is to understand the mechanism(s) by which the activity of enhancer elements is circumscribed such that they only act upon their cognate promoter sequences. St...
详细信息
One of the central problems of eukaryotic gene regulation is to understand the mechanism(s) by which the activity of enhancer elements is circumscribed such that they only act upon their cognate promoter sequences. Studies on the bithorax gene complex (BX-C) in Drosophila have highlighted the potential problem of enhancer promiscuity and detailed molecular and genetic analyses are now providing insight into how this gene complex resolves the problem through the activity of boundary/silencer elements that can block the communication between enhancers and promoters. Analysis of the mouse Igf2-H19 imprinted locus also suggests a role for boundary/silencer elements, but in this case these elements are invoked to account for the preferential expression of Igf2 and H19 from the paternally and maternally inherited chromosomes respectively despite the presence of functional downstream enhancers. We discuss recent work that has illuminated both of these systems and consider what parallels exist between them.
the combination of lightweight and large-scale interoperability of Web services together withthe 24/spl times/7 access of mobile devices represent a powerful platform for the development and delivery of pervasive and...
详细信息
the combination of lightweight and large-scale interoperability of Web services together withthe 24/spl times/7 access of mobile devices represent a powerful platform for the development and delivery of pervasive and cost-effective healthcare applications and systems. We provide practical, step-by-step instruction as well as best practices for developing and deploying enterprise-class Web services and applications using J2EE (Java 2 Enterprise Edition).
An interactive graphical environment for supporting the development and use of Haskell applications programs is described. the environment, named Vital, is particularly intended for supporting the open-ended, incremen...
详细信息
An interactive graphical environment for supporting the development and use of Haskell applications programs is described. the environment, named Vital, is particularly intended for supporting the open-ended, incremental development style often preferred by non-specialist users in which successive steps of program development are motivated and informed by results so far obtained. Significant features of Vital include: the graphical display of data structures in a format defined by a datatype-indexed stylesheet, the way that evaluation of (possibly infinite) values is demand-driven by the action of the user scrolling around an unbounded workspace, and support for copy-and-paste graphical editing of data structures. this latter allows, for example, the user to modify a complex data structure by point-and-click operations, or to create (by functional evaluation) a regular data structure and then edit values or expressions into it: the effect of each editing operation is immediately reflected in the Haskell program source code.
programming languages are the way for a person to express a mental plan in a way that the computer can understand. therefore, it is appropriate to consider properties of people when designing new programming languages...
详细信息
programming languages are the way for a person to express a mental plan in a way that the computer can understand. therefore, it is appropriate to consider properties of people when designing new programming languages. In our research, we are investigating how people think about algorithms, and how programming languages can be made easier to learn and more effective for people to use. By taking human-productivity aspects of programming languages seriously, designers can more effectively match programming language features with human capabilities and problem solving methods. Human factors methods can be used to measure the effects, so unsubstantiated claims can be avoided. this talk will present a quick summary of new and old results in what is known about people and programming;from areas that are sometimes called "empirical studies of programmers" and "psychology of programming." Much is known about what people find difficult, and what syntax and language features are especially tricky and bug-prone. Our new research has discovered how people naturally think about algorithms and data structures, which can help with making programming languages more closely match people's problem solving techniques.
Monads are a useful abstraction of computation, as they model diverse computational effects such as stateful computations, exceptions and I/O in a uniform manner. their potential to provide both a modular semantics an...
详细信息
Monads are a useful abstraction of computation, as they model diverse computational effects such as stateful computations, exceptions and I/O in a uniform manner. their potential to provide both a modular semantics and a modular programming style was soon recognised. However, in general, monads proved difficult to compose and so research focused on special mechanisms for their composition such as distributive monads and monad transformers. We present a new approach to this problem which is general in that nearly all monads compose, mathematically elegant in using the standard categorical tools underpinning monads and computationally expressive in supporting a canonical recursion operator. In a nutshell, we propose that two monads should be composed by taking their coproduct. Although abstractly this is a simple idea, the actual construction of the coproduct of two monads is non-trivial. We outline this construction, show how to implement the coproduct within Haskell and demonstrate its usage with a few examples. We also discuss its relationship with other ways of combining monads, in particular distributive laws for monads and monad transformers.
Meta-programming languages provide infrastructure to generate and execute object programs at run-time. In a typed setting, they contain a modal type constructor which classifies object code. these code types generally...
详细信息
ISBN:
(纸本)9781581134872
Meta-programming languages provide infrastructure to generate and execute object programs at run-time. In a typed setting, they contain a modal type constructor which classifies object code. these code types generally come in two flavors: closed and open. Closed code expressions can be invoked at run-time, but the computations over them are more rigid, and typically produce less efficient residual object programs. Open code provides better inlining and partial evaluation of object programs, but once constructed, expressions of this type cannot in general be evaluated. Recent work in this area has focused on combining the two notions into a sound system. We present a novel way to achieve this. It is based on adding the notion of names from the work on Nominal Logic and FreshML to the lambda(square)-calculus of proof terms for the necessity fragment of modal logic S4. the resulting language provides a more fine-grained control over free variables of object programs when compared to the existing languages for meta-programming. In addition, this approach lends itself well to addition of intensional code analysis, i.e. ability of meta programs to inspect and destruct object programs at run-time in a type-safe manner, which we also undertake.
Compilers for dynamically and statically typed languages ensure safe execution by verifying that all operations are performed on appropriate values. An operation as simple as car in Scheme and hd in SML will include a...
详细信息
ISBN:
(纸本)9781581134872
Compilers for dynamically and statically typed languages ensure safe execution by verifying that all operations are performed on appropriate values. An operation as simple as car in Scheme and hd in SML will include a run time check unless the compiler can prove that the argument is always a non-empty list using some type analysis. We present a demand-driven type analysis that can adapt. the precision of the analysis to various parts of the program being compiled. this approach has the advantage that the analysis effort can be spent where it is justified by the possibility of removing a run time check, and where added precision is needed to accurately analyze complex parts of the program. Like the k-cfa our approach is based on abstract interpretation but it can analyze some important programs more accurately than the k-cfa for any value of k. We have built a prototype of our type analysis and tested it on various programs with higher order functions. It can remove all run time type checks in some nontrivial programs which use map and the Y combinator.
theories and design principles of a general nature will be far too weak to be of much value to the practitioners. We should develop specialized theories that are applicable in specific domains, and we should work on b...
详细信息
ISBN:
(纸本)3540434836
theories and design principles of a general nature will be far too weak to be of much value to the practitioners. We should develop specialized theories that are applicable in specific domains, and we should work on binding these theories and principles much like the way we structure large systems today. functionalprogramming, for instance, provides impressive facilities for modularization, programming in layers and program integration. However, several important areas are not covered by the functional style of programming: non-determinism, persistent storage management, and matrix-based computations, for instance. there seem to be no easy extensions of functional-based system to include these domains. I suggest that we abandon the idea of a Grand Unification theory, and design specialized theories that handle a few things well. We should be studying how the capabilities of functionalprogramming and object-based programming, for instance, can be integrated, different theories being applicable in each domain. the challenge lies in seamless integration. this proposal amounts to a strong prescription for empiricism, that we have to do a large number of experiments to understand where theories can play a role, and which kinds of theories would be most appropriate and when. Examples of a few small theories will be given and their effectiveness and limitations will be illustrated.
In this paper, we propose a hierarchical timing-driven Steiner tree algorithm for global routing which considers the minimization of timing, delay during the tree construction as the goal. the algorithm uses heuristic...
详细信息
ISBN:
(纸本)0769514413
In this paper, we propose a hierarchical timing-driven Steiner tree algorithm for global routing which considers the minimization of timing, delay during the tree construction as the goal. the algorithm uses heuristic approach to decompose the problem of minimum delay Steiner free into hierarchy and to construct the sub-trees respectively based on dynamic programming technique. Taking the net topology into consideration, we build the final routing tree by reconnecting, the sub-trees at each level recursively and then improve the connection withthe objective of minimizing the delay from source to sink pins on the critical path. Meanwhile, some efficient strategies have been proposed to speed up the solving process. Experimental results are given to demonstrate the efficiency of the algorithm.
暂无评论