6 research outputs found

    Automatic Non-functional Testing of Code Generators Families

    Get PDF
    International audienceThe intensive use of generative programming techniques provides an elegant engineering solution to deal with the heterogeneity of platforms and technological stacks. The use of domain-specific languages for example, leads to the creation of numerous code generators that automatically translate highlevel system specifications into multi-target executable code. Producing correct and efficient code generator is complex and error-prone. Although software designers provide generally high-level test suites to verify the functional outcome of generated code, it remains challenging and tedious to verify the behavior of produced code in terms of non-functional properties. This paper describes a practical approach based on a runtime monitoring infrastructure to automatically check the potential inefficient code generators. This infrastructure, based on system containers as execution platforms, allows code-generator developers to evaluate the generated code performance. We evaluate our approach by analyzing the performance of Haxe, a popular high-level programming language that involves a set of cross-platform code generators. Experimental results show that our approach is able to detect some performance inconsistencies that reveal real issues in Haxe code generators

    Funktionaalinen ohjelmointiparadigma web-käyttöliittymäkehityksessä

    Get PDF
    Tiivistelmä. Nykyaikaisten web-sovellusten lisääntynyt interaktiivisuus ja uudenlaiset teknologiat — kuten mobiili- ja muut älylaitteet — ovat lisänneet web-käyttöliittymiin kohdistuvia vaatimuksia, mikä on lisännyt tarvetta kehittää uusia näkökulmia, lähestymistapoja ja teknologioita web-käyttöliittymäkehitykseen. Funktionaalinen ohjelmointi on lambdakalkyyliin perustuva ohjelmointiparadigma. Paradigmalla on pitkä historia, ja siitä on tehty lukuisia tieteellisiä tutkimuksia. Yleinen vertailukohde on imperatiivinen ohjelmointiparadigma, johon suurin eroavaisuus löytyy sivuvaikutuksien puutteesta ja siitä seuraavista eduista ja haitoista. Tässä tutkielmassa tarkastellaan kirjallisuuskatsauksen keinoin, mitä funktionaalisen ohjelmointiparadigman tärkeimpiä ominaisuuksia voidaan hyödyntää web-käyttöliittymäkehityksessä, ja millä tavalla niitä voidaan hyödyntää. Vastauksena tutkimuskysymykseen tutkielma osoittaa kaikkien funktionaalisen ohjelmoinnin tärkeimpien ominaisuuksien hyödyntämisen olevan web-käyttöliittymäkehityksessä mahdollista, mutta osoittaa myös tarpeen JavaScript-kirjastojen tai vaihtoehtoisten ohjelmointikielten käytölle. Tutkielma esittää myös tarjottavien ratkaisujen seuraukset, ja tarpeen uusien teknologioiden ja esitettyjen ratkaisujen soveltuvuuden lisätutkimukselle

    Automatic Non-functional Testing of Code Generators Families

    Get PDF
    International audienceThe intensive use of generative programming techniques provides an elegant engineering solution to deal with the heterogeneity of platforms and technological stacks. The use of domain-specific languages for example, leads to the creation of numerous code generators that automatically translate highlevel system specifications into multi-target executable code. Producing correct and efficient code generator is complex and error-prone. Although software designers provide generally high-level test suites to verify the functional outcome of generated code, it remains challenging and tedious to verify the behavior of produced code in terms of non-functional properties. This paper describes a practical approach based on a runtime monitoring infrastructure to automatically check the potential inefficient code generators. This infrastructure, based on system containers as execution platforms, allows code-generator developers to evaluate the generated code performance. We evaluate our approach by analyzing the performance of Haxe, a popular high-level programming language that involves a set of cross-platform code generators. Experimental results show that our approach is able to detect some performance inconsistencies that reveal real issues in Haxe code generators

    Actes des Sixièmes journées nationales du Groupement De Recherche CNRS du Génie de la Programmation et du Logiciel

    Get PDF
    National audienceCe document contient les actes des Sixièmes journées nationales du Groupement De Recherche CNRS du Génie de la Programmation et du Logiciel (GDR GPL) s'étant déroulées au CNAM à Paris du 11 au 13 juin 2014. Les contributions présentées dans ce document ont été sélectionnées par les différents groupes de travail du GDR. Il s'agit de résumés, de nouvelles versions, de posters et de démonstrations qui correspondent à des travaux qui ont déjà été validés par les comités de programmes d'autres conférences et revues et dont les droits appartiennent exclusivement à leurs auteurs

    Efficient high-level abstractions for web programming

    Get PDF
    International audienceWriting large Web applications is known to be difficult. One challenge comes from the fact that the application's logic is scattered into heterogeneous clients and servers, making it difficult to share code between both sides or to move code from one side to the other. Another challenge is performance: while Web applications rely on ever more code on the client-side, they may run on smart phones with limited hardware capabilities. These two challenges raise the following problem: how to benefit from high-level languages and libraries making code complexity easier to manage and abstracting over the clients and servers differences without trading this ease of engineering for performance? This article presents high-level abstractions defined as deep embedded DSLs in Scala that can generate efficient code leveraging the characteristics of both client and server environments. We compare performance on client-side against other candidate technologies and against hand written low-level JavaScript code. Though code written with our DSL has a high level of abstraction, our benchmark on a real world application reports that it runs as fast as hand tuned low-level JavaScript code
    corecore