Tilbake til søkeresultatene

FRINATEK-Fri prosj.st. mat.,naturv.,tek

DMPL -- Design of a mouldable programming language

Tildelt: kr 15,6 mill.

Formålet med DMPL-prosjektet var å vise at et lite og kompetent team kunne implementere et nytt, generelt programmeringsspråk med støtteverktøy innen rammen av noen få årsverk. Det har vi klart! - språket Magnolia med kompilator, språkfølsom editor (IDE - i Eclipse) og støttebibliotek med introduksjonsveiviser er tilgjengelig for nedlasting. Vi bruker dette i kursundervisningen ved instituttet. Magnolia skiller seg fra andre programmeringsspråk ved at det er designet med utgangspunkt i Goguen-Burstalls institusjonsteori. Det gir en god ramme for et programmeringsspråk: - presis semantikk for språket og dets støttebibliotek, - kraftig modulsystem for gjenbruk av kode og spesifikasjoner, og - integrert spesifikasjonsspråk med mulighet for verifikasjon og aksiombasert testing. Som resultat gir dette en ny måte å utvikle programmer på, der vekselvirkningen mellom domene-engineering, spesifikasjon, validering og programvare er integrert i arbeidsflyten. Magnolia er laget som et, i dagligtale, sikkert programmeringsspråk (bedre betegnelse: et høyintegritetsspråk). Det gir pålitelighet (programvare kan verifiseres og grundig testes), robusthet (automatisk oppdage og håndtere korrupte data og feil i inndata), trygghet (unngå å produsere data med alvorlige feil), og teknisk sikkerhet (hindre utilsiktede endringer i og lekkasje av data). Et annet resultat er en tilpasning av institusjonsteorien til "constraint systems", en programmeringsmodell egnet blant annet for brukergrensesnittlogikk (UI-logikk). UI-logikk beskriver de ofte komplekse sammenghengene mellom ulike datafelt i brukergrensesnittet til et program eller på en nettside. "Constraint systems" ser ut til å gi en størrelsesorden mer effektiv utvikling av og en størrelsesorden mindre feil i UI-logikk, men mer forskning er nødvendig for å etablere dette. Mye av forskningen på prosjektet har vært innen språkverktøy, der et nytt forskningsprosjekt, Co-Evo, er innvilget finansiering. Et annet hovedtema på prosjektet er programmeringsmodeller for mobile plattformer (nettbrett, smarttelefon) og for tungregning. Det første temaet har vært mye konsentrert om sikker programvare, og et av resultatene er en bedre måte for app-utviklere å kontrollere hvilken informasjon en app egentlig trenger. Det kan gjøre det tryggere for brukere av smarttelefoner og nettbrett ved at appen ikke ber om tilgang til mer personlig informasjon enn nødvendig. Det andre temaet har tatt for seg portabilitet: bruken av samme programvare på ulike plattformer (CPU, flerkjerne, distribuert, GPU, FPGA, mm), en forutsetning for storskala energieffektive beregninger. Her har vi vist teoretisk at det lar seg gjøre. Arbeid for å vise dette i praksis på større demonstrasjonseksempler pågår. Som et biprodukt har vi laget visualiseringsverktøy for algoritmer med komplekse avhengighetsstrukturer. Typiske eksempler er sorteringsnettverk, FFT og endelig differansberegninger. Prosjektet har initiert to vedvarende symposiumserier. Innen språkteknologi ble "International Workshop on Open and Original Problems in Software Language Engineering" (OOPSLE) startet i 2013. OOSPLE avholdes årlig i tilknytning til relevante internasjonale konferanser. Fra 2014 er "High Integrity Systems Symposium" (HISS) en årlig møteplass for norsk industri, forvaltning og akademia innen temaet sikker programvare. HISS arrangeres hver gang av en frivillig aktør med dyp interesse for temaet.

Programs are brittle artifacts. Modification of a program easily tends to break its structure, with dire consequences for its correctness and behaviour. Tool support for doing software reorganisation is below par for most programming Languages. Much of th is relates back to the programming languages themselves. They were mostly designed decades ago, lacking features and support for many of today's programming challenges, such as security, multi-core and modifiability. Over the past few years we have prop osed various language features that address some of these problems. To show what can be achieved, we propose to develop a mouldable programming language where these features are integrated based on a formal understanding of their semantics and interaction . The language needs to be supported by transformation tools for refactoring, optimisation and general maintainance. A few years ago this would have been a momentouos undertaking, but development in language technology this past decade has been significa nt, making it feasible even for smaller, competent groups. We will be cooperating with international research groups in the forefront of language technology tool development to benefit from these advances. The language we develop needs to be validated ag ainst its design criteria. We therefore include the development of sample applications from the high performance domain in the project. Our experience with developing numerical software has shown that it is very challenging in itself, and well structured numerical software seems to put demands on programming langauges pushing the forefront of software technology. We will be cooperating with national and international research groups, also from industry, on this.

Publikasjoner hentet fra Cristin

Ingen publikasjoner funnet

Budsjettformål:

FRINATEK-Fri prosj.st. mat.,naturv.,tek