Roslyn (kompilator)

.NET-kompilatorplattform (Roslyn)
Originalförfattare Microsoft
Utvecklare .NET Foundation och öppen källkod
Stabil frisättning
.NET 7.0.0 / 8 november 2022 ; 4 månader sedan ( 2022-11-08 )
Förvar github .com /dotnet /roslyn
Skrivet i C# , Visual Basic
Operativ system Windows , Linux och macOS
Plattform IA-32 , x86-64
Typ Kompilator
Licens MIT-licens
Hemsida lär dig .microsoft .com /en-us /dotnet /csharp /roslyn-sdk /

.NET Compiler Platform , även känd under sitt kodnamn Roslyn , är en uppsättning kompilatorer med öppen källkod och kodanalys -API :er för C# och Visual Basic (VB.NET) språk från Microsoft .

Projektet inkluderar framför allt självhotellversioner av C#- och VB.NET-kompilatorerna – kompilatorer skrivna på själva språken. Kompilatorerna är tillgängliga via de traditionella kommandoradsprogrammen men också som API:er tillgängliga inbyggt från .NET-kod. Roslyn exponerar moduler för syntaktisk ( lexikal ) analys av kod, semantisk analys, dynamisk kompilering till CIL och kodemission.

Funktioner

Funktioner hos Roslyn inkluderar:

Historia

Kodnamnet "Roslyn" skrevs först av Eric Lippert (fd Microsoft- ingenjör) i ett inlägg som han publicerade 2010 för att anställa utvecklare för ett nytt projekt. Han sade först att ursprunget till namnet var på grund av Roslyn, Washington , men senare i inlägget talar han ironiskt om den "nordliga exponeringen" av dess kontor; staden Roslyn var en av platserna där tv-serien Northern Exposure spelades in.

Microsoft gjorde en förhandsvisning av community technology (CTP) tillgänglig för allmän nedladdning i oktober 2011. Den installerades som en förlängning av Visual Studio 2010 SP1.

CTP uppdaterades i september 2012 för att inkludera många uppdateringar av Roslyn API:er som introducerades i juni 2012 och oktober 2011 CTP, inklusive brytande ändringar . Medan CTP API från juni 2012 är komplett för kompilatorerna, implementerades inte alla funktioner för språken C# och VB.NET.

Build 2014- konferensen i San Francisco april 2014 gjorde Microsoft "Roslyn"-projektet öppen källkod och släppte en förhandsvisning av språkintegreringen för Visual Studio 2013 . Från och med den 3 april 2014 är Roslyn under Apache-licensen 2.0. Projektet överfördes i praktiken under ledning av den nygrundade .NET Foundation. Vid samma konferens Xamarin att de arbetar med att integrera de nya kompilatorerna och verktygen i Xamarin Studio .

Kompilatorerna var inte kompletta med funktioner i den här utgåvan. Var och en av kompilatorerna innehåller funktioner som är planerade för de kommande språkversionerna (C# 6 och Visual Basic.NET 14). API:erna är också tillgängliga via NuGet- pakethanteraren. [ citat behövs ]

Roslyns första release to manufacturing (RTM) var med Visual Studio 2015 . Roslyn stöder för närvarande bara VB och C#, och kompilatorerna skrevs på sina respektive språk.

I januari 2015 flyttade Microsoft Roslyn-källkoden från CodePlex till GitHub .

Arkitektur

Traditionellt har .NET-kompilatorer varit en svart låda för applikationsutvecklare. Med ökande komplexitet och krav på källkodsanalys i moderna integrerade utvecklingsmiljöer måste dock kompilatorer exponera applikationsprogrammeringsgränssnitt (API) som kommer att hjälpa utvecklare att direkt utföra faser av kompilering såsom lexikal och syntaktisk strukturanalys av källkod. Roslyn designades med den avsikten från början. Detta minskar barriären för att utveckla verktyg speciellt utformade för källkodsanalys. API:er för Roslyn är av tre typer: funktions-API:er, arbetsutrymmes-API:er och kompilator-API:er. Funktions-API:er tillåter utvecklare av källkodsverktyg att göra kodrefaktorering och fixar. Work-space API: er tillåter plugin-utvecklare att utföra åtgärder som specifikt krävs i integrerade utvecklingsmiljöer (IDE) som Visual Studio, som att hitta referenser till en variabel eller kodformatering. Kompilator-API:er tillåter ännu mer sofistikerad analys av källkoden genom att exponera direkta anrop för att utföra syntaxträd- och bindningsflödesanalys. Genom att använda en öppen källkodsimplementering av Common Language Infrastructure (CLI) som .NET Core kommer Roslyn att kunna kompilera på ett plattformsoberoende sätt som kan köra CLI-kod i Linux , OS X och Windows . [ citat behövs ]

Se även

Vidare läsning

  •   Vasani, Manish (2017). Roslyn Cookbook: Compiler as a Service, Kodanalys, Kodkvalitet och mer . Packt Publishing. ISBN 978-1787286832 .
  •   Harrison, Nick (2017). Kodgenerering med Roslyn . Apress. ISBN 978-1484222102 .
  •   Mukherjee, Sudipta (2017). Källkodsanalys med Roslyn och JavaScript-datavisualisering . Apress. ISBN 978-1484219249 .

externa länkar