137,092 research outputs found

    Meta-Language Support for Type-Safe Access to External Resources

    Get PDF
    Meta-programming applications often require access to heterogeneous sources of information, often from different technological spaces (grammars, models, ontologies, databases), that have specialized ways of defining their respective data schemas. Without direct language support, obtaining typed access to this external, potentially changing, information is a tedious and error-prone engineering task. The Rascal meta-programming language aims to support the import and manipulation of all of these kinds of data in a type-safe manner. The goal is to lower the engineering effort to build new meta programs that combine information about software in unforeseen ways. In this paper we describe built-in language support, so called \textit{resources}, for incorporating external sources of data and their corresponding data-types while maintaining type safety. We demonstrate the applicability of Rascal resources by example, sho

    The C Object System: Using C as a High-Level Object-Oriented Language

    Full text link
    The C Object System (Cos) is a small C library which implements high-level concepts available in Clos, Objc and other object-oriented programming languages: uniform object model (class, meta-class and property-metaclass), generic functions, multi-methods, delegation, properties, exceptions, contracts and closures. Cos relies on the programmable capabilities of the C programming language to extend its syntax and to implement the aforementioned concepts as first-class objects. Cos aims at satisfying several general principles like simplicity, extensibility, reusability, efficiency and portability which are rarely met in a single programming language. Its design is tuned to provide efficient and portable implementation of message multi-dispatch and message multi-forwarding which are the heart of code extensibility and reusability. With COS features in hand, software should become as flexible and extensible as with scripting languages and as efficient and portable as expected with C programming. Likewise, Cos concepts should significantly simplify adaptive and aspect-oriented programming as well as distributed and service-oriented computingComment: 18

    Evaluations Backgrounder: A Summary of Formal Evaluations of Afterschool Programs' Impact on Academics, Behavior, Safety and Family Life

    Get PDF
    A steady stream of afterschool evaluations are showing important gains for children, not only in terms of academic achievement but also in terms of safety, discipline, attendance and avoidance of risky behaviors. In addition, researchers have found that afterschool programs encourage increased parental involvement, an important building block for student success. This updated evaluations backgrounder focuses on the impact of afterschool programs on academic outcomes, student behavior and parental concerns about children's safety

    Evaluation of the Welsh School-based Counselling Strategy : Final Report

    Get PDF
    The Welsh Government's School-based Counselling Strategy (the Strategy), implemented from April 2008 in secondary schools across Wales and a pilot selection of primary schools, was evaluated. A range of research tools were used, including desk research, analysis of client outcomes, qualitative interviews and surveys of key stakeholders' views. Implementation of the Strategy and its counselling services was generally perceived as successful by all stakeholders, including counselling clients, with evidence that all key recommendations for its development were implemented. Across six terms, 11,043 episodes of counselling were attended. Participation in counselling was associated with large reductions in psychological distress; with levels of improvement that, on average, were somewhat greater than those found in previous evaluations of UK school-based counselling. Key recommendations are that permanent funding mechanisms should be established to embed counselling in the Welsh secondary school sector, with consideration given to its roll-out into primary schools. Service managers and schools should also look to ensuring equal opportunities of participation in school-based counselling from all sectors of the community, that adequate accommodation is available in schools for the delivery of counselling, and that a system of regular outcome monitoring is established

    Acute: high-level programming language design for distributed computation

    No full text
    Existing languages provide good support for typeful programming of standalone programs. In a distributed system, however, there may be interaction between multiple instances of many distinct programs, sharing some (but not necessarily all) of their module structure, and with some instances rebuilt with new versions of certain modules as time goes on. In this paper we discuss programming language support for such systems, focussing on their typing and naming issues. We describe an experimental language, Acute, which extends an ML core to support distributed development, deployment, and execution, allowing type-safe interaction between separately-built programs. The main features are: (1) type-safe marshalling of arbitrary values; (2) type names that are generated (freshly and by hashing) to ensure that type equality tests suffice to protect the invariants of abstract types, across the entire distributed system; (3) expression-level names generated to ensure that name equality tests suffice for type-safety of associated values, e.g. values carried on named channels; (4) controlled dynamic rebinding of marshalled values to local resources; and (5) thunkification of threads and mutexes to support computation mobility. These features are a large part of what is needed for typeful distributed programming. They are a relatively lightweight extension of ML, should be efficiently implementable, and are expressive enough to enable a wide variety of distributed infrastructure layers to be written as simple library code above the byte-string network and persistent store APIs. This disentangles the language runtime from communication intricacies. This paper highlights the main design choices in Acute. It is supported by a full language definition (of typing, compilation, and operational semantics), by a prototype implementation, and by example distribution libraries
    • 

    corecore