299 research outputs found

    Towards Practical Gradual Typing

    Get PDF
    Over the past 20 years, programmers have embraced dynamically-typed programming languages. By now, they have also come to realize that programs in these languages lack reliable type information for software engineering purposes. Gradual typing addresses this problem; it empowers programmers to annotate an existing system with sound type information on a piecemeal basis. This paper presents an implementation of a gradual type system for a full-featured class-based language as well as a novel performance evaluation framework for gradual typing

    Design Features for the Social Web: The Architecture of Deme

    Full text link
    We characterize the "social Web" and argue for several features that are desirable for users of socially oriented web applications. We describe the architecture of Deme, a web content management system (WCMS) and extensible framework, and show how it implements these desired features. We then compare Deme on our desiderata with other web technologies: traditional HTML, previous open source WCMSs (illustrated by Drupal), commercial Web 2.0 applications, and open-source, object-oriented web application frameworks. The analysis suggests that a WCMS can be well suited to building social websites if it makes more of the features of object-oriented programming, such as polymorphism, and class inheritance, available to non-programmers in an accessible vocabulary.Comment: Appeared in Luis Olsina, Oscar Pastor, Daniel Schwabe, Gustavo Rossi, and Marco Winckler (Editors), Proceedings of the 8th International Workshop on Web-Oriented Software Technologies (IWWOST 2009), CEUR Workshop Proceedings, Volume 493, August 2009, pp. 40-51; 12 pages, 2 figures, 1 tabl

    Refinement type contracts for verification of scientific investigative software

    Full text link
    Our scientific knowledge is increasingly built on software output. User code which defines data analysis pipelines and computational models is essential for research in the natural and social sciences, but little is known about how to ensure its correctness. The structure of this code and the development process used to build it limit the utility of traditional testing methodology. Formal methods for software verification have seen great success in ensuring code correctness but generally require more specialized training, development time, and funding than is available in the natural and social sciences. Here, we present a Python library which uses lightweight formal methods to provide correctness guarantees without the need for specialized knowledge or substantial time investment. Our package provides runtime verification of function entry and exit condition contracts using refinement types. It allows checking hyperproperties within contracts and offers automated test case generation to supplement online checking. We co-developed our tool with a medium-sized (≈\approx3000 LOC) software package which simulates decision-making in cognitive neuroscience. In addition to helping us locate trivial bugs earlier on in the development cycle, our tool was able to locate four bugs which may have been difficult to find using traditional testing methods. It was also able to find bugs in user code which did not contain contracts or refinement type annotations. This demonstrates how formal methods can be used to verify the correctness of scientific software which is difficult to test with mainstream approaches

    Flexible Relational Data Model: A Common Ground for Schema-Flexible Database Systems

    Get PDF
    An increasing number of application fields represent dynamic and open discourses characterized by high mutability, variety, and pluralism in data. Data in dynamic and open discourses typically exhibits an irregular schema. Such data cannot be directly represented in the traditional relational data model. Mapping strategies allow representation but increase development and maintenance costs. Likewise, NoSQL systems offer the required schema flexibility but introduce new costs by not being directly compatible with relational systems that still dominate enterprise information systems. With the Flexible Relational Data Model (FRDM) we propose a third way. It allows the direct representation of data with irregular schemas. It combines tuple-oriented data representation with relation-oriented data processing. So that, FRDM is still relational, in contrast to other flexible data models currently in vogue. It can directly represent relational data and builds on the powerful, well-known, and proven set of relational operations for data retrieval and manipulation. In addition to FRDM, we present the flexible constraint framework FRDM-C. It explicitly allows restricting the flexibility of FRDM when and where needed. All this makes FRDM backward compatible to traditional relational applications and simplifies the interoperability with existing pure relational databases

    Use Of Functional Strengthening, Balance Training, And Stretching In The Treatment Of A Patient Following A T11-L5 Spinal Fusion: A Case Report

    Get PDF
    Background and Purpose: Lumbar spinal fusion surgery has been utilized to manage levels of low back pain and instability. However, pain often persists post-operatively. Evidence supports the use of Transverse Abdominis recruitment in patients with LBP. Research demonstrates strengthening the hip musculature may allow for improved outcomes for those who experience LBP. There is limited research focusing on lower extremity strengthening, flexibility, and balance training in a patient following a T11-L5 spinal fusion. Case Description: The patient was a 68-year-old male presenting to physical therapy eight weeks’ status post T11-L5 spinal fusion with ~45 degrees forward-flexed posture, weak lower extremity musculature, and restricted muscle lengths. Post operatively, the patient smoked and did not engage in exercise prior to surgery. Interventions consisted of TA recruitment, lower extremity/glute strengthening, stretching, and balance training. Outcome measures included Numeric Pain Rating Scale (NPRS), Oswestry Disability Index (ODI), Dynamic Gait Index (DGI), and Berg Balance Scale (BBS). Outcomes: Results from initial evaluation to discharge: ODI 54% to 36%, NPRS 3-8/10 to 0-5/10, DGI 16/24 to 16/24, and BBS 43/54 to 43/56, demonstrating improved function and decreased pain, but similar balance scores. Discussion: These interventions may be beneficial in improving functional strength and posture s/p spinal fusion. Cigarette smoking and lack of previous exercise may have contributed to lack of large improvements in balance and MMT, and inability for the patient to return to work. Further research is needed to report upon the outcomes of this approach in managing individuals with LBP after spinal fusion surgery

    Row and Bounded Polymorphism via Disjoint Polymorphism

    Get PDF
    Polymorphism and subtyping are important features in mainstream OO languages. The most common way to integrate the two is via ?_{< :} style bounded quantification. A closely related mechanism is row polymorphism, which provides an alternative to subtyping, while still enabling many of the same applications. Yet another approach is to have type systems with intersection types and polymorphism. A recent addition to this design space are calculi with disjoint intersection types and disjoint polymorphism. With all these alternatives it is natural to wonder how they are related. This paper provides an answer to this question. We show that disjoint polymorphism can recover forms of both row polymorphism and bounded polymorphism, while retaining key desirable properties, such as type-safety and decidability. Furthermore, we identify the extra power of disjoint polymorphism which enables additional features that cannot be easily encoded in calculi with row polymorphism or bounded quantification alone. Ultimately we expect that our work is useful to inform language designers about the expressive power of those common features, and to simplify implementations and metatheory of feature-rich languages with polymorphism and subtyping

    DEVELOPING AN EXPANDABLE GUI TOOL TO ENHANCE NETWORKING EDUCATION: GRAPHICAL USER INTERFACE FOR SHELL ENTRY (GUISE)

    Get PDF
    The lack of systemic education dedicated to computer networks and the general inadequacy of students' comprehension of the structure and the dynamics of the networks are arguably issues in most public schools. In the situation where the internet is a commodity, the increase in the threat of global attacks on many computing resources is exceptionally high, and so is the consequential importance of the global cyber workforce. Most people achieve their basic understanding through their routine use of computers at home, and it is both pragmatic and more effective to consider using basic home tools because of their didactic benefits. We designed and developed GUISE (GUI for Shell Entry) as an intuitive interface that makes command entry and network analysis easier for masses of users. GUISE leverages the operating system's capabilities and allows inexperienced users with no expertise in the computer networking domain to acquire enhanced network situational awareness in a competent manner. The ultimate benefit of the GUISE tool is providing its users with an educational aspect focused on the networking elements of their home computer infrastructure. That approach has the potential to directly support the growth of their networking literacy and proficiency, and their navigation of the networking landscape with enhanced confidence and safety.Outstanding ThesisCivilian, SFSApproved for public release. Distribution is unlimited
    • …
    corecore