34 research outputs found

    Leveraging Synergy Between Database and Programming Language Courses

    Get PDF
    Undergraduate courses in database systems and programming languages are frequently taught without much overlap. This paper argues that there is a substantial benefit to emphasizing some areas of commonality, both old and new, between the two subjects. Examples of cross-fertilization that may be used to enhance one of both of the courses include query language design and implementation, object-relational mapping, transactional memory, and various aspects of the recent NoSQL movement

    Code Generation Untuk Object Relational Mapping Dengan Menggunakan LINQ Dan Text Templating

    Full text link
    The increase towards Object Oriented Design creates a big gap between OO and relational database. In the other side, relational database still a big favor in designing business-powered application. Developers use Object Relational Mapping (ORM) to fill the gap between OO and RDBMS but still, the problem in the association of RDBMS and OO exists which caused underestimation towards ORM methodology. This research provides a solution to detect relationship inside tables of database, generate LINQ query to map the field of tables to the attribute of the entity classes. Using T4 text templating we are able to generate the whole Data Access Object class which provides transparent encapsulation and relational mapping for the system

    Database Programming in Machiavelli - A Polymorphic Language With Static Type Inference

    Get PDF
    Machiavelli is a polymorphically typed programming language in the spirit of ML, but supports a different type inferencing that makes its polymorphism somewhat more general than that of ML and appropriate for database applications. In particular, a function that selects a field f of a records is polymorphic in the sense that it can be applied to any record which contains a field f with the appropriate type. When combined with a set data type and database operations including join and projection, this provides a natural medium for relational database programming. Moreover, by implementing database objects as reference types and generating the appropriate views - sets of structures with identity - we can achieve a degree of static type checking for object-oriented databases

    Logical and Computational Aspects of Programming With Sets/Bags/Lists

    Get PDF
    We study issues that arise in programming with primitive recursion over non-free datatypes such as lists, bags and sets. Programs written in this style can lack a meaning in the sense that their outputs may be sensitive to the choice of input expression. We are, thus, naturally led to a set-theoretic denotational semantics with partial functions. We set up a logic for reasoning about the definedness of terms and a deterministic and terminating evaluator. The logic is shown to be sound in the model, and its recursion free fragment is shown to be complete for proving definedness of recursion free programs. The logic is then shown to be as strong as the evaluator, and this implies that the evaluator is compatible with the provable equivalence between different set (or bag, or list) expressions. Oftentimes, the same non-free datatype may have different presentations, and it is not clear a priori whether programming and reasoning with the two presentations are equivalent. We formulate these questions, precisely, in the context of alternative presentations of the list, bag, and set datatypes and study some aspects of these questions. In particular, we establish back-and-forth translations between the two presentations, from which it follows that they are equally expressive, and prove results relating proofs of program properties, in the two presentations

    Open environments to support systems engineering tool integration: A study using the Portable Common Tool Environment (PCTE)

    Get PDF
    A study of computer engineering tool integration using the Portable Common Tool Environment (PCTE) Public Interface Standard is presented. Over a 10-week time frame, three existing software products were encapsulated to work in the Emeraude environment, an implementation of the PCTE version 1.5 standard. The software products used were a computer-aided software engineering (CASE) design tool, a software reuse tool, and a computer architecture design and analysis tool. The tool set was then demonstrated to work in a coordinated design process in the Emeraude environment. The project and the features of PCTE used are described, experience with the use of Emeraude environment over the project time frame is summarized, and several related areas for future research are summarized

    Cricket: A Mapped, Persistent Object Store

    Get PDF
    This paper describes Cricket, a new database storage system that is intended to be used as a platform for design environments and persistent programming languages. Cricket uses the memory management primitives of the Mach operating system to provide the abstraction of a shared, transactional single-level store that can be directly accessed by user applications. In this paper, we present the design and motivation for Cricket. We also present some initial performance results which show that, for its intended applications, Cricket can provide better performance than a general-purpose database storage system
    corecore