18847301
A Typeful Approach to Object-Oriented Programming with Multiple Inheritance
The wide practice of objected oriented programming (OOP) in current software practice is evident. Despite extensive studies on typing programming objects, it is still undeniably a challenging research task to design a type system that can satisfactorily account for a variety of features (e.g., binary methods and multiple inheritance) in OOP. In this paper, we present a typeful approach to implementing objects that makes use of a recently introduced notion of guarded datatypes. In particular, we demonstrate how the feature of multiple inheritance can be supported with this approach, presenting a simple and general account for multiple inheritance in a typeful manner.
61965299
Implementing typeful program transformations
The notion of program transformation is ubiquitous in programming language studies on interpreters, compilers, partial evaluators, etc. In order to implement a program transformation, we need to choose a representation in the meta language, that is, the programming language in which we construct programs, for representing object programs, that is, the programs in the object language on which the program transformation is to be performed. In practice, most representations chosen for typed object programs are typeless in the sense that the type of an object program cannot be reflected in the type of its representation. This is unsatisfactory as such typeless representations make it impossible to capture in the type system of the meta language various invariants in a program transformation that are related to the types of object programs. In this paper, we propose an approach to implementing program transformations that makes use of a first-order typeful program representation formed in Dependent ML (DML), where the type of an object program as well as the types of the free variables in the object program can be reflected in the type of the representation of the object program. We introduce some programming techniques needed to handle this typeful program representation, and then present an implementation of a CPS transform function where the relation between the type of an object program and that of its CPS transform is captured in the type system of DML. In a broader context, we claim to have taken a solid step along the line of research on constructing certifying compilers.
820529
Combining programming with theorem proving
Applied Type System (ATS) is recently proposed as a framework for designing and formalizing (advanced) type systems in support of practical programming. In ATS, the definition of type equality involves a constraint relation, which may or may not be algorithmically decidable. To support practical programming, we adopted a design in the past that imposes certain restrictions on the syntactic form of constraints so that some effective means can be found for solving constraints automatically. Evidently, this is a rather em ad hoc design in its nature. In this design, which we claim to be both novel and practical. Instead of imposing syntactical restrictions on constraints, we provide a means for the programmer to construct proofs that attest to the validity of constraints. In particular, we are to accommodate a programming paradigm that enables the programmer to combine programming with theorem proving. Also we present some concrete examples in support of the practicality of this design.
41922638
Guarded recursive datatype constructors
5896784
Implementing typeful program transformations
The notion of program transformation is ubiquitous in programming language studies on interpreters, compilers, partial evaluators, etc. In order to implement a program transformation, we need to choose a representation in the meta language, that is, the programming language in which we construct programs, for representing object programs, that is, the programs in the object language on which the program transformation is to be performed. In practice, most representations chosen for typed object programs are typeless in the sense that the type of an object program cannot be reflected in the type of its representation. This is unsatisfactory as such typeless representations make it impossible to capture in the type system of the meta language various invariants in a program transformation that are related to the types of object programs. In this paper, we propose an approach to implementing program transformations that makes use of a first-order typeful program representation formed in Dependent ML (DML), where the type of an object program as well as the types of the free variables in the object program can be reflected in the type of the representation of the object program. We introduce some programming techniques needed to handle this typeful program representation, and then present an implementation of a CPS transform function where the relation between the type of an object program and that of its CPS transform is captured in the type system of DML. In a broader context, we claim to have taken a solid step along the line of research on constructing certifying compilers.
11896625
Distributed meta-programming
Distributed meta-programming (DMP), which allows code to be generated and distributed at run-time, has already become a common practice. However, code generation currently often relies on rather ad hoc approaches that represent code as plain text, making DMP notoriously error-prone. This unfortunate situation is further exacerbated due to issues such as mobility (of code) and locality and heterogeneity (of resources), which complicate testing and debugging drastically.In this paper, we study distributed meta-programming from a type-theoretic perspective, presenting a language to facilitate the construction of programs that may generate and distribute code at run-time. The approach we take makes use of a form of typeful code representation developed in a previous study on meta-programming, and it guarantees statically that only well-typed code (according to some chosen type discipline) can be constructed at run-time and sent to proper locations for execution. We also mention a prototype implementation in support of the practicality of our approach to DMP, providing a solid proof of concept.
14147651
Understanding the evolution of NSAID: a knowledge domain visualization approach to evidence-based medicine
Finding the most rigorous, updated, and well received clinical evidence is a crucial and challenging task in the practice of evidence-based medicine (EBM). In this article, we describe a knowledge domain visualization-based quantitative approach that is designed to support the task of searching for high-quality clinical evidence in the medical literature. We illustrate the use of this new approach with the knowledge domain of non-steroidal anti-inflammatory drugs (NSAIDs). A sample of the literature is visualized in a base map depicting structural and temporal properties of emerging themes and references made by such themes over time. In addition, the visualization highlights the rigorousness of a published clinical trial in terms of the type of study design retrieved dynamically from PubMed. The contribution of this approach is that it offers users an integrated search environment so that the rigorousness, recentness, and consensus of clinical evidence can be assessed with the support of visual exploration facilities.
2867815
Matchings and matching extensions in graphs
Abstract Let G be a graph with a perfect matching and k be an integer such that 1 ⩽ k vbV ( G ) vb /2. Then G is said to be k -extendable if every matching of size k in G extends to a perfect matching of G . Plummer (1994) proved that every (2 k + 1)-connected K 1,3 -free graph of even order is k -extendable. In this paper, it was proved that every (2 k + n − 2)-connected K 1, n -free graph of even order is k -extendable. Also, an answer to the problem of characterizing maximal k -extendable graphs posted by Plummer (1994) and Saito (1989/90) is given. Besides, we show that a regular graph of even order belongs to the first class if its any two odd cycles have at least a vertex in common.
16940810
Vertex and Tree Arboricities of Graphs
This paper studies the following variations of arboricity of graphs. The vertex (respectively, tree) arboricity of a graph G is the minimum number va(G) (respectively, ta(G)) of subsets into which the vertices of G can be partitioned so that each subset induces a forest (respectively, tree). This paper studies the vertex and the tree arboricities on various classes of graphs for exact values, algorithms, bounds, hamiltonicity and NP-completeness. The graphs investigated in this paper include block-cactus graphs, series-parallel graphs, cographs and planar graphs.
205000421
A Simple Approach to Implementing Multiplication with Small Tables
Abstract A new approach for implementing multiplication with a small table is presented. This approach is much simpler and thus easier to be implemented.
198001
Proper interval graphs and the guard problem
This paper is a study of the hamiltonicity of proper interval graphs with applications to the guard problem in spiral polygons. We prove that proper interval graphs with ?2 vertices have hamiltonian paths, those with ?3 vertices have hamiltonian cycles, and those with ?4 vertices are hamiltonian-connected if and only if they are, respectively, 1-, 2-, or 3-connected. We also study the guard problem in spiral polygons by connecting the class of nontrivial connected proper interval graphs with the class of stick-intersection graphs of spiral polygons.