Tailoring native compilation of Java for real-time systems

Detta är en avhandling från Computer Science, Lund University

Sammanfattning: Popular Abstract in Swedish De vardagliga ting som omger oss, allt från leksaker till bilar, såväl som den utrustning som används i tillverkningen av dem innehåller ett växande antal inbyggda datorer. Inbyggda system är ofta ansvariga för kritisk funktionalitet, vilket leder till att en mängd tids- och resurskrav måste uppfyllas. Industriell konkurrens och det ständigt växande förhållandet mellan prestanda och pris för inbyggda datorer leder till exponentiell komplexitetsökning i programvaran, vilket i sin tur leder till ett ökande behov av bättre programmeringsspråk än de idag existerande. Java har valts som ett exempel på ett säkert, objektorienterat programmeringsspråk som skulle kunna leda till effektivare utveckling av programvara i inbyggda system. Ett antal definierade begrepp, som portabilitet, skalbarhet och realtidsprestanda måste uppfyllas för att Java skall kunna användas som programmeringsspråk i hårda realtidssystem. För att dessa krav skall uppfyllas förordas binärkodskompilering av Java samt användning av anpassad automatisk minneshantering. Vi har implementerat en kompilator med runtime-system för Java, och då använt och utvärderat nya forskningsbaserade verktyg för kompilatorkonstruktion som medger ett nytt sätt att implementera optimeringar och andra kodtransformeringar som en mängd transformeringar på ett abstrakt syntaxträd. Såvitt känt för oss är detta den första implementationen av binärkodskompilerad realtidsjava, som klarar hårda realtidskrav. Ett nytt transparent gränssnitt för minneshantering gör det möjligt att generera, eller skriva, C-kod oberoende av vilken specifik minneshanteringsalgoritm som skall användas. Genomförda experiment visar på goda realtidsprestanda. Givet våra bidrag och resultat ser vi kompilerad realtidsjava , eller liknande språk som C#, som ett industriellt acceptabelt alternativ. Vi föreslår också en teknik för flerlagrad drifttagning av inbyggda applikationer, som bygger på det faktum att alla program skrivna i Java har en vädefinierad mening. Samma kompilatorkonstruktionsverktyg och -tekniker som använts för implementation av vår javakompilator ser också ut att kunna underlätta utveckling på högre abstraktionsnivåer. Detta exemplifieras i en prototyp till en kompilatorkompilator på ontologinivå.

  KLICKA HÄR FÖR ATT SE AVHANDLINGEN I FULLTEXT. (PDF-format)