Cristin-prosjekt-ID: 552278
Sist endret: 15. september 2017, 17:47

Cristin-prosjekt-ID: 552278
Sist endret: 15. september 2017, 17:47
Prosjekt

Co-Evolution of Software Languages and Language Processors

prosjektleder

Anya Helene Skrove Bagge
ved Institutt for informatikk ved Universitetet i Bergen

prosjekteier / koordinerende forskningsansvarlig enhet

  • Institutt for informatikk ved Universitetet i Bergen

Finansiering

  • TotalbudsjettNOK 7.000.000
  • Norges forskningsråd
    Prosjektkode: 250683

Klassifisering

Vitenskapsdisipliner

Teoretisk databehandling, programmeringsspråk og -teori

Kategorier

Prosjektkategori

  • Grunnforskning

Tidsramme

Avsluttet
Start: 1. april 2016 Slutt: 31. mars 2020

Beskrivelse Beskrivelse

Tittel

Co-Evolution of Software Languages and Language Processors

Vitenskapelig sammendrag

Software languages play a fundamental role in the development of software. They are used to express programs, algorithms and data, and are used to communicate such things precisely and concisely, for both programmer/computer, computer/computer and programmer/programmer.

 

Both software and software languages tend to change or evolve over time, and live for a long time. Modern society still relies on software and software languages developed in the 50s and 60s.

 

As part of the effort to enable change and flexibility, modern software engineering is increasingly reliant on tool support. Such language processors deal with translating, formatting, editing, visualising, analysing, migrating and evolving software. As languages evolve, corresponding co-evolutionary changes must be made to the language processors to keep them up to date.

 

With this project we aim to tackle this problem, by developing techniques and tools for co-evolving software languages and software language processors. We go beyond the state of the art, in tackling a wider range of changes (including semantic changes), and a wider range of implementation technology (including general-purpose languages).

 

To achieve this, a radically new approach is needed. Instead of focusing on achieving full automation for very limited technologies, we will employ a mix of techniques, including automated, preventative and assistive techniques, and base our research on empirical studies of co-evolution in real systems. We will validate our results by building prototypes and applying them to cases, and manage risk through an iterative and incremental research process.

 

The project will have a strong international connection to the leading research groups in software evolution, software language technology and software transformations. The PI has a long track record in language design and engineering, and has practical experience in tackling rapid language evolution.

Tittel

Co-Evolution of Software Languages and Language Processors

Populærvitenskapelig sammendrag

Programvarespråk er fundamentale for utviklingen av programvare. De brukes til å uttrykke programmer, algoritmer og data på en presis og konsis måte, og brukes for kommunikasjon mellom programmør/datamaskin, datamaskin/datamaskin og programmør/programmør.

 

Både programvare og språk endrer og utvikler seg over tid, og lever gjerne veldig lenge. Vårt moderne samfunn er still avhengig av programvare og programvarespråk utviklet på 50- og 60-tallet. Å ikke kunne tilpasse seg endringer kan ha veldig reelle konsekvenser - som for eksempel innføringen av den «nye» straffeloven fra 2005, som ble mer enn ti år forsinket på grunn av manglende støtte i politiets programvare.

 

For å gjøre det enklere å oppnå endring og fleksibilitet er moderne programutvikling stadig mer avhengig av avanserte utviklingsverktøyr. Slike språkverktøy håndterer oversetting, formattering, editering, visualisering, analyse, migrasjon og evolusjon av programvare. Etterhvert som programvarespråkene utvikler seg og er oppdatert for å holde tritt med tiden, må man gjøre tilsvarende koevolusjonære endringer i verktøyene for at de skal holde seg oppdaterte.

 

I dette prosjektet prøver vi å takle dette problemet, ved å utvikle teknikker og verktøy for koevolusjon av programvarespråk og språkverktøy. Vi går forbi «state of the art» med å takle et bredere spekter av endringer (inkludert semantiske endringer i språket), og et bredere spekter av språkimplementasjonsteknologi (blant annet generelle programmeringsspråk).

 

For å oppnå dette, trenger vi en radikalt ny tilnærming. I stedet for å satse på full automatisering for veldig begrensede teknologier, bruker vi heller en blanding av teknikker, inkludert automatiske, preventative og assistive teknikker, og baserer forskingen på empiriske studier av koevolusjon i virkelige systemer. Vi vil validere forskningsresultatene ved å bygge prototyper å anvende dem i case studies, og håndtere risiko gjennom en iterativ og inkrementell forskningsprosess.

prosjektdeltakere

prosjektleder

Anya Helene Skrove Bagge

  • Tilknyttet:
    Prosjektleder
    ved Institutt for informatikk ved Universitetet i Bergen

Anna Maria Eilertsen

  • Tilknyttet:
    Prosjektdeltaker
    ved Institutt for informatikk ved Universitetet i Bergen
1 - 2 av 2