This paper puts forward the Graphical Interactive Diagnosing, Testing and Slicing System (GIDTS) which is a graphical programming environment for PROLOG programs. The IDTS part of the system integrates Shapiro's I...
详细信息
Nested datatypes generalise regular datatypes in much the same way that context-free languages generalise regular ones. Although the categorical semantics of nested types turns out to be similar to the regular case, t...
详细信息
Nested datatypes generalise regular datatypes in much the same way that context-free languages generalise regular ones. Although the categorical semantics of nested types turns out to be similar to the regular case, the fold functions are more limited because they can only describe natural transformations. Practical considerations therefore dictate the introduction of a generalised fold function in which this limitation can be overcome. In the paper we show how to construct generalised folds systematically for each nested datatype, and show that they possess a uniqueness property analogous to that of ordinary folds. As a consequence, generalised folds satisfy fusion properties similar to those developed for regular datatypes. Such properties form the core of an effective calculational theory of inductive datatypes.
A lack of adequate and flexible topology support in the popular message passing systems such as Parallel Virtual Machine was a major factor in the development of our Virtual Process Topology Environment. This parallel...
详细信息
Let G be a connected graph of n vertices. The problem of finding a depth-first spanning tree of G is to find a connected subgraph of G with the n vertices and n - 1 edges by depth-first-search. In this paper, we propo...
详细信息
GUI design isn't simply a matter of putting a nice front-end on a capable program. It requires thought about the way in which people might be expected to use a system, and investigation of the ways that they actua...
详细信息
GUI design isn't simply a matter of putting a nice front-end on a capable program. It requires thought about the way in which people might be expected to use a system, and investigation of the ways that they actually use it. Jape's GUI has been designed to be as simple as possible, so that it will not get in the way of the business of proof. It is designed to be minimal in the information that it displays and the gestures that it requires from the user. In this paper we introduce and give a rationale for the design of Jape's user interface, then note some of its drawbacks.
Genetic programming is known to be capable of creating designs that satisfy prespecified high-level design requirements for analog electrical circuits and other complex structures. However, in the real world, it is of...
详细信息
In modern circuit design, the Shannon decomposition of switching functions is widely used. On the other hand, in information theory of telecommunication, the Shannon entropy used as a measure to represent the informat...
详细信息
This paper puts forward the Graphical Interactive Diagnosing, Testing and Slicing System (GIDTS) which is a graphical programming environment for PROLOG programs. The IDTSpart of the system integrates Shapiro's In...
ISBN:
(纸本)9781581131376
This paper puts forward the Graphical Interactive Diagnosing, Testing and Slicing System (GIDTS) which is a graphical programming environment for PROLOG programs. The IDTSpart of the system integrates Shapiro's Interactive Diagnosis Algorithm with the Category Partition Testing Method (CPM) and a slicing technique performing the algorithmic debugging and functional testing of PROLOG programs. The integration of IDTS with a graphical user interface (GUI) supports the whole functionality of IDTS and provides a user-friendly environment giving the user more information on the state of the debugging process. GIDTS extends IDTS to a complete programming environment. It allows one to handle the debugging of complex programs using the extended syntax and semantics of PROLOG in a very flexible way. A static code diagnosis has also been implemented. In addition GIDTS supports debugging-directed editing of the source program, and a quick source code navigation via any of the tools (for example: the debugger, the static call graph and the information retriever). All these features are supported by the graphical user interface.
A lack of adequate and flexible topology support in the popular message passing systems such as Parallel Virtual Machine was a major factor in the development of our Virtual Process Topology Environment. This parallel...
详细信息
A lack of adequate and flexible topology support in the popular message passing systems such as Parallel Virtual Machine was a major factor in the development of our Virtual Process Topology Environment. This parallel programming environment provides high level abstractions for interprocess communication, relieving the application developer of the cumbersome task of mapping logical neighbours to their task identifiers within message passing systems. The novel approach of separating topological specification from the APIs provided extreme flexibility to the developers of the applications using regular topologies. We believed that the task of supporting process topologies could be made even easier and, in this paper present our new method which uses recurrence relations to define topologies. Within the new environment, the recurrence relationships can be passed to the topology server which then is used in the generation of the topological specification.
de Bruijn notation is a coding of lambda terms in which each occurrence of a bound variable x is replaced by a natural number, indicating the 'distance' from the occurrence to the abstraction that introduced x...
de Bruijn notation is a coding of lambda terms in which each occurrence of a bound variable x is replaced by a natural number, indicating the 'distance' from the occurrence to the abstraction that introduced x. One might suppose that in any datatype for representing de Bruijn terms, the distance restriction on numbers would have to maintained as an explicit datatype invariant. However, by using a nested (or non-regular) datatype, we can define a representation in which all terms are well-formed, so that the invariant is enforced automatically by the type system. programming with nested types is only a little more difficult than programming with regular types, provided we stick to well-established structuring techniques. These involve expressing inductively defined functions in terms of an appropriate fold function for the type, and using fusion laws to establish their properties. In particular, the definition of lambda abstraction and beta reduction is particularly simple, and the proof of their associated properties is entirely mechanical.
暂无评论