299 research outputs found
Towards Practical Gradual Typing
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
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
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 (3000 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
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
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
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)
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
- …