Roslyn (.NET Compiler Platform) on Microsoftin kehittämä avoimen lähdekoodin kääntäjäalusta ja ohjelmointirajapintojen kokoelma C#- ja Visual Basic .NET -ohjelmointikielille.

Alusta sisältää itseään isännöivät C#- ja Visual Basic -kääntäjät, jotka on kirjoitettu hallitulla koodilla (managed code), sekä rajapinnat koodin syntaktiseen ja semanttiseen analyysiin, refaktorointiin ja koodigenerointiin. Roslyn on C#:n ja Visual Basic .NET:n virallinen kääntäjä .NET-ekosysteemissä ja se toimitetaan osana Visual Studio -kehitysympäristöä sekä itsenäisenä SDK:na.

Historia Roslyn-projekti käynnistyi Microsoftin sisäisenä hankkeena 2010-luvun alussa tavoitteena korvata aiemmat C++-pohjaiset kääntäjät hallittuun koodiin perustuvalla toteutuksella. Ensimmäinen julkinen Community Technology Preview (CTP) julkaistiin lokakuussa 2011.

Microsoft avasi Roslynin lähdekoodin Apache 2.0 -lisenssillä Build 2014 -konferenssissa ja siirsi projektin .NET Foundation -säätiön alaisuuteen. Roslyn-kääntäjät otettiin virallisesti käyttöön Visual Studio 2015:n mukana vuonna 2015.

Vuonna 2019 projekti siirrettiin nykyiselle GitHub-osoitteelleen ja lisenssi vaihdettiin MIT-lisenssiin .NET-ekosysteemin muiden komponenttien mukaisesti.

Arkkitehtuuri ja ominaisuudet Roslyn toteuttaa compiler as a service -mallin, jossa kääntäjän sisäiset vaiheet ovat ohjelmoitavissa rajapinnoilla. Alusta sisältää kolme pääasiallista rajapintaryhmää: kääntäjä-API:t (compiler APIs), jotka tarjoavat pääsyn syntaksipuihin, semanttiseen malliin ja symbolitietoon; työtila-API:t (workspace APIs), jotka hallitsevat projektien ja ratkaisujen rakennetta sekä integraatiota kehitysympäristöihin; ominaisuus-API:t (feature APIs), joita käytetään koodin refaktoroinneissa ja automaattisissa korjausehdotuksissa.

Roslyn tukee lähdekoodigeneraattoreita (source generators), jotka mahdollistavat käännösaikaisen metaprogrammoinnin ja automaattisesti generoitujen kooditiedostojen lisäämisen projekteihin.

Roslyn on olennainen osa .NET-ekosysteemiä ja toimii käyttöympäristöriippumattomasti Windows-, Linux- ja macOS-järjestelmissä. Sen rajapintojen ympärille on muodostunut laaja kolmannen osapuolen työkalu- ja analysaattoriekosysteemi.

Staattinen analyysi ja analysaattorit Roslynin rajapinnat mahdollistavat kolmannen osapuolen analysaattoreiden (analyzers) kehittämisen. Nämä suorittavat koodin staattista analyysiä suoraan kääntäjän syntaksi- ja semantiikkamallien päällä sekä kehitysympäristössä reaaliaikaisesti että käännösaikana.

Analysaattorit havaitsevat potentiaalisia virheitä, huonoja käytäntöjä ja tyylirikkomuksia sekä ehdottavat automaattisia korjauksia. Kehitysympäristöt, kuten Visual Studio, näyttävät nämä varoitukset ja korjausehdotukset suoraan koodieditorissa. Käännösvaiheessa analysaattorit voidaan määrittää tuottamaan varoituksia tai virheitä, jotka estävät käännöksen onnistumisen, jos tietyt säännöt rikkoutuvat.

Lähteet

Aiheesta muualla Projektin lähdekoodi GitHubissa .NET Compiler Platform SDK – dokumentaatio Microsoft Learn -sivustolla Luokka:Ohjelmointikielen kääntäjät