Lättviktsisolering för mjukvara via flödeskänsliga förmågor i Scala

Autor: Reimers, Erik
Jazyk: angličtina
Rok vydání: 2017
Předmět:
Popis: Aliasing is a potential source of problems in software development and can, for example,lead to data races in concurrent programs. More recent programming languages includealiasing control in order to catch more errors at compile time. However, this does notexist for most widely-used languages.LaCasa introduces aliasing control to Scala. LaCasa is a type system and program-ming model that provides lightweight unique and affine (consumable) object referencesin Scala. The unique references provided by LaCasa enable messages to be passed effi-ciently by reference. They also guarantee a deep-copy semantic which makes it possible tomore easily port a concurrent program from running on a single machine to being dis-tributed and running on a large cluster of machines.One aspect that makes LaCasa inconvenient to use is the fact that code needs to bewritten in an explicit continuation-passing style (CPS), different to how code is usuallywritten, which makes programs harder to write, understand and maintain.This project presents a flow-sensitive version of LaCasa which avoids the use of con-tinuations. Flow-sensitivity is achieved by adding an extra compiler phase that performsa static analysis, enforcing LaCasa’s type-checking rules. The flow-sensitive version wasevaluated by measuring the code complexity compared to the original flow-insensitiveLaCasa. A few case studies were performed, as part of the evaluation, to show how flow-sensitive LaCasa can be used to extend LaCasa into other fields of application.The evaluation showed that a flow-sensitive LaCasa can reduce the complexity of ap-plications using LaCasa. It allows programmers to write code in a more usual way whichmakes LaCasa easier to use. Aliasing är en potentiell källa till problem inom mjukvaruutveckling och can till exempelleda till data races i samtidiga program. Nyare programmeringsspråk inkluderar aliasing-kontroller för att kunna fånga fel vid kompilering. Sådana kontroller existerar inte för deflesta utbredda språken.LaCasa introducerar aliasing-kontroll till Scala. LaCasa är ett typsystem och program-meringsmodell som tillhandahåller unika och affina (förbrukningsbara) objektreferenser iScala. De unika references som tillhandahålls av LaCasa gör det möjligt att effektivt skic-ka meddelanden via referenser. De garanterar också en djup-kopierings-semantik som gördet möjligt att mer enkelt konvertera ett samtidigt program från att köras på en endamaskin till att distribueras och köras på ett stort maskinkluster.En aspekt som gör LaCasa obekvämt att använda är att kod måste skrivas i en ex-plicit continuation-passing-stil (CPS), olik det vanliga sättet att skriva kod, som gör pro-gram svårare att skriva, förstå och underhålla.Det här projektet presenterar en flödeskänslig version av LaCasa som unviker an-vändningen av continuations. Flödeskänslighet uppnås genom att lägga till en extra kom-pileringsfas som utför en statisk analys som upprätthåller LaCasas typ-regler. Den flö-deskänsliga versionen utvärderades genom att mäta kodkomplexitet jämfört med denursprungliga flödesokänsliga LaCasa. Några fallstudier utfördes, som en del av utvär-deringen, för att visa hur flödekänsliga LaCasa kan användas för att utöka LaCasa tillandra användningsområden.Utvärdering visade att ett flödeskänsligt LaCasa kan reducera komplexiteten hos ap-plikationer som använder LaCasa. Det tillåter programmerare att skriva kod på ett mervanligt sätt som gör LaCasa enklare att använda.
Databáze: OpenAIRE