548 research outputs found

    Towards a General Framework for Formal Reasoning about Java Bytecode Transformation

    Full text link
    Program transformation has gained a wide interest since it is used for several purposes: altering semantics of a program, adding features to a program or performing optimizations. In this paper we focus on program transformations at the bytecode level. Because these transformations may introduce errors, our goal is to provide a formal way to verify the update and establish its correctness. The formal framework presented includes a definition of a formal semantics of updates which is the base of a static verification and a scheme based on Hoare triples and weakest precondition calculus to reason about behavioral aspects in bytecode transformationComment: In Proceedings SCSS 2012, arXiv:1307.802

    Customizing Data-plane Processing in Edge Routers

    Get PDF
    While OpenFlow enables the customization of the control plane of a router, currently no solutions are available for the customization of the data plane. This paper presents a prototype that offers to third parties (even end-users) the possibility to install their own applications on the data plane of a router, particularly the ones operating at the edge of the network. This paper presents the motivation of the idea, the reason why we use OpenFlow even if it does not seem appropriate for the data plane, the architecture and the implementation of our prototype, and a first characterization of the system running in our la

    Maya: multiple-dispatch syntax extension in Java

    Get PDF
    technical reportWe have designed and implemented Maya, a version of Java that allows programmers to extend and reinterpret its syntax. Maya generalizes macro systems by treating grammar productions as generic functions, and semantic actions on productions as multimethods on the corresponding generic functions. Programmers can write new generic functions (i.e., grammar productions) and new multimethods (i.e., semantic actions), through which they can extend the grammar of the language and change the semantics of its syntactic constructs, respectively. Maya?s multimethods are compile-time metaprograms that transform abstract syntax: they execute at program compile-time, because they are semantic actions executed by the parser. Maya?s multimethods can be dispatched on the syntactic structure of the input, as well as the static, source-level types of expressions in the input. In this paper we describe what Maya can do and how it works. We describe how its novel parsing techniques work and how Maya can statically detect certain kinds of errors such as hygiene violations. Finally, to demonstrate Maya's expressiveness, we describe how Maya can be used to implement the MultiJava language, which was described by Clifton et al. at OOPSLA 2000

    Beyond annotations: a proposal for extensible java (XJ).

    Get PDF
    The XMF system is based on a bespoke language that includes some features that are key to Language Oriented Programming: grammars; syntax classes; parsers; quasi-quotes. This paper discusses various technologies and approaches for LOP and concludes that standardization is one of the key features that will bring LOP and Domain Specific Languages to the mainstream. The paper proposes an extension to Java that incorporates the key LOP and DSL features of XMF. The essential Java extensions are discussed and the paper concludes with a couple of examples

    Beyond annotations: a proposal for extensible java (XJ).

    Get PDF
    The XMF system is based on a bespoke language that includes some features that are key to Language Oriented Programming: grammars; syntax classes; parsers; quasi-quotes. This paper discusses various technologies and approaches for LOP and concludes that standardization is one of the key features that will bring LOP and Domain Specific Languages to the mainstream. The paper proposes an extension to Java that incorporates the key LOP and DSL features of XMF. The essential Java extensions are discussed and the paper concludes with a couple of examples

    Doctor of Philosophy

    Get PDF
    dissertationI present the design of a parser that adds Scheme-style language extensibility to languages with implicitly delimited and infix syntax. A key element of my design is an enforestation parsing step, which converts a flat stream of tokens into an S-expression-like tree, in addition to the initial "read" phase of parsing and interleaved with the "macro-expand" phase. My parser uses standard lexical scoping rules to communicate syntactic extensions to the parser. In this way extensions naturally compose locally as well as through module boundaries. I argue that this style of communication is better suited towards a useful extension system than tools not directly integrated with the compiler. This dissertation explores the limits of this design in a new language called Honu. I use the extensiblity provided by Honu to develop useful language extensions such as LINQ and a parser generator. I also demonstrate the generality of the parsing techniques by applying them to Java and Python

    Supporting formal expression of eligibility criteria in clinical trials. The implementation and evaluation of the eligibility criteria builder

    Get PDF
    A clinical trial is a study that assesses the effectiveness and safety of a new drug or treatment. To be able to generalize from the findings of the study, the clinical trial requires a representative sample of the target patient population. The target population is defined in terms of eligibility criteria that clearly describe the characteristics of patients enrolled in the study. The eligibility criteria are stated in natural language in its own section in a protocol document, which serves as the plan and detailed description of any prospective clinical trial. Having the eligibility criteria expressed as natural language has several drawbacks. First, it can lead to ambiguities and different interpretations among clinicians responsible for enrolment of patients into the study, which consequently may affect the safety of patients. Second, it provides no means of automatic eligibility checking against patient databases and electronic patient journals. The process of determining the eligibility of each patient therefore becomes a resource demanding and time consuming task. Formally defined computer interpretable eligibility criteria could potentially improve safety of involved patients and efficiency in patient enrolment. This thesis presents the Eligibility Criteria Builder that aims to provide a simple and pragmatic way of defining these rules using a user-friendly graphical user interface. The evaluation of the prototype indicated that the target users in general were positive to, and clearly saw the need for, a tool like this. The evaluation also pointed out weak spots and areas of improvements for the proposed prototype

    Program Analysis Scenarios in Rascal

    Get PDF
    Rascal is a meta programming language focused on the implementation of domain-specific languages and on the rapid construction of tools for software analysis and software transformation. In this paper we focus on the use of Rascal for software analysis. We illustrate a range of scenarios for building new software analysis tools through a number of examples, including one showing integration with an existing Maude-based analysis. We then focus on ongoing work on alias analysis and type inference for PHP, showing how Rascal is being used, and sketching a hypothetical solution in Maude. We conclude with a high-level discussion on the commonalities and differences between Rascal and Maude when applied to program analysis
    corecore