5 research outputs found

    JavaFX as a Domain-Specific Language in Scala / Groovy

    Get PDF
    Domain-Specific Languages (DSLs) are optimized for developing applications in a particular domain. JavaFX is such a DSL for creating rich graphical user interfaces.One method to create a DSL is to implement it in an existing language. This offers the advantage that existing users of the language do not need to learn a new language to work in the DSL. Scala and Groovy are two upcoming Java based languages which boast a feature set that can be used to extend existing languages and facilitate DSL creation. In this project my goal was to evaluate the ability of Scala and Groovy to be DSL hosts. To this end, I implemented my own JavaFX like DSLs in Scala and Groovy and assessed their capability for constructing a DSL

    Automatic Program Verification and Test Case Generation of Ruby Programs

    Get PDF
    The Ruby programming language is typically not seen as a language that can be formally verified. Our research attempts to bridge this gap by introducing novel techniques to annotate Ruby programs with type specifications, contracts, and translate them to statically verifiable components. We introduce a novel tool, RubyCorrect, which uses these techniques to perform extended static checking (ESC) on Ruby programs, as well as to generate executable test cases through symbolic execution. These analyses serve to improve code quality and development productivity. We aim to show that Ruby programs can benefit from existing static verification tools and techniques if they are simply made available to Ruby developers

    Contributions à la sécurité des Java Card

    Get PDF
    La Java Card est aujourd’hui le type de cartes Ă  puce le plus dĂ©ployĂ© dans le milieu bancaire ou dans la tĂ©lĂ©phonie mobile. Outres la prĂ©sence de nombreuses contre-mesures physiques pour protĂ©ger le microprocesseur contre les attaques externes, la machine virtuelle Java Card possĂšde un ensemble de mĂ©canismes (comme le vĂ©rificateur de bytecode et le pare-feu) qui, combinĂ©s avec le typage du langage Java, offrent des propriĂ©tĂ©s d’isolation forte des applications (applets) vis-Ă -vis de l’exĂ©cution de la machine virtuelle Java Card.Mais l’évolution des attaques logicielles par confusion de type et par des moyens physiques a montrĂ© des limitations au modĂšle d’isolation de la machine virtuelle. Dans un premier temps, plusieurs travaux montrent des nouvelles menaces logiques, physiques et hybrides afin de lever des secrets enfouis dans des instances de Java Card en exploitant les applications chargĂ©es comme cibles et vecteurs d’attaque. Par la suite, plusieurs stratĂ©gies de contre-mesures sont construites selon deux points de vue. D’une part des protections rĂ©actives (contre les attaques en fautes) et proactives (par mise Ă  jour dynamique) sont intĂ©grĂ©es dans la machine virtuelle Java Card. D’autre part, des solutions d’analyse de code permettant d’aider le dĂ©veloppeur sont Ă©valuĂ©es afin de renforcer la sĂ©curitĂ© des applets contre des faiblesses de dĂ©veloppement ou les exploitations possibles du bytecode par des attaques en faute
    corecore