روزلين (المُجمِّع)

منصة .NET Compiler Platform ، والمعروفة أيضًا باسمها الرمزي Roslyn ، [ 2 ] هي مجموعة من المترجمات مفتوحة المصدر وواجهات برمجة تطبيقات تحليل التعليمات البرمجية للغات C# و Visual Basic (VB.NET) من Microsoft . [ 3 ]

يتضمن المشروع بشكل ملحوظ إصدارات ذاتية الاستضافة من مُجمِّعات C# وVB.NET، وهي مُجمِّعات مكتوبة باللغتين نفسيهما. تتوفر هذه المُجمِّعات عبر برامج سطر الأوامر التقليدية، بالإضافة إلى واجهات برمجة التطبيقات (APIs) المتاحة أصلاً من داخل كود .NET. يوفر Roslyn وحدات نمطية للتحليل النحوي ( المعجمي ) للكود، والتحليل الدلالي، والترجمة الديناميكية إلى CIL ، وإصدار الكود. [ 4 ]

سمات

تشمل مميزات روزلين ما يلي:

تاريخ

ظهر الاسم الرمزي "روزلاين" لأول مرة علنًا في منشور [ 5 ] كتبه إريك ليبرت ( مهندس سابق في مايكروسوفت [ 6 ] ) ونشره عام 2010 لتوظيف مطورين لمشروع جديد. ذكر في البداية أن أصل الاسم يعود إلى مدينة روزلاين في ولاية واشنطن ، لكنه تحدث لاحقًا في المنشور بسخرية عن "الواجهة الشمالية" لمكتبه؛ إذ كانت مدينة روزلاين إحدى المواقع التي صُوّر فيها المسلسل التلفزيوني " نورثرن إكسبوجر ". [ 7 ]

أتاحت مايكروسوفت معاينة تقنية مجتمعية (CTP) للتنزيل العام في أكتوبر 2011. تم تثبيتها كإضافة لبرنامج Visual Studio 2010 SP1. [ 8 ]

تم تحديث الإصدار التجريبي (CTP) في سبتمبر 2012 [ 9 ] ليشمل العديد من التحديثات لواجهات برمجة تطبيقات Roslyn التي تم تقديمها في الإصدارين التجريبيين لشهري يونيو 2012 وأكتوبر 2011، بما في ذلك تغييرات جذرية . [ 10 ] على الرغم من أن واجهة برمجة تطبيقات الإصدار التجريبي لشهر يونيو 2012 مكتملة للمترجمات، إلا أنه لم يتم تنفيذ جميع الميزات للغتي C# وVB.NET. [ 11 ]

في مؤتمر Build 2014 الذي عُقد في سان فرانسيسكو في أبريل 2014، جعلت مايكروسوفت مشروع "Roslyn" مفتوح المصدر، وأصدرت معاينة لتكامل اللغة مع Visual Studio 2013. اعتبارًا من 3 أبريل 2014 يخضع برنامج Roslyn لرخصة Apache 2.0. [ 3 ] وقد نُقل المشروع فعليًا إلى إدارة مؤسسة .NET التي تأسست حديثًا. [ 12 ] وفي المؤتمر نفسه، أعلنت Xamarin أنها تعمل على دمج المترجمات والأدوات الجديدة في Xamarin Studio . [ 13 ]

لم تكن المترجمات مكتملة الميزات في هذا الإصدار. يحتوي كل مترجم على ميزات مُخطط لها في الإصدارات القادمة من اللغة (C# 6 وVisual Basic.NET 14). كما تتوفر واجهات برمجة التطبيقات (APIs) عبر مدير حزم NuGet .

اعتبارًا من عام 2013يدعم برنامج Roslyn لغتي VB وC#، وقد كُتبت المترجمات بلغاتهما الخاصة. [ 14 ] كان أول إصدار من Roslyn للتصنيع (RTM) مع Visual Studio 2015. [ 15 ]

في يناير 2015، نقلت مايكروسوفت شفرة المصدر الخاصة بـ Roslyn من CodePlex إلى GitHub . [ 16 ]

بنيان

لطالما كانت مُجمِّعات .NET بمثابة صندوق أسود لمطوري التطبيقات. [ 17 ] مع تزايد التعقيد ومتطلبات تحليل شفرة المصدر في بيئات التطوير المتكاملة الحديثة، بات من الضروري أن تُتيح المُجمِّعات واجهات برمجة تطبيقات (APIs) تُساعد المطورين على تنفيذ مراحل التجميع مباشرةً، مثل تحليل البنية المعجمية والنحوية لشفرة المصدر. صُمِّمت Roslyn لهذا الغرض منذ البداية، مما يُسهِّل تطوير أدوات مُصممة خصيصًا لتحليل شفرة المصدر. تتكون واجهات برمجة تطبيقات Roslyn من ثلاثة أنواع: واجهات برمجة تطبيقات الميزات، وواجهات برمجة تطبيقات مساحة العمل، وواجهات برمجة تطبيقات المُجمِّع. تُتيح واجهات برمجة تطبيقات الميزات لمطوري أدوات شفرة المصدر إعادة هيكلة الشفرة وإصلاحها. بينما تُتيح واجهات برمجة تطبيقات مساحة العمل لمطوري الإضافات تنفيذ إجراءات مطلوبة تحديدًا في بيئات التطوير المتكاملة (IDEs) مثل Visual Studio ، مثل البحث عن مراجع المتغيرات أو تنسيق الشفرة. أما واجهات برمجة تطبيقات المُجمِّع، فتُتيح تحليلًا أكثر دقة لشفرة المصدر، من خلال توفير استدعاءات مباشرة لإجراء تحليل شجرة بناء الجملة وتدفق الربط. [ 18 ] باستخدام تطبيق مفتوح المصدر للبنية التحتية للغة المشتركة (CLI) مثل .NET Core ، سيكون Roslyn قادرًا على التجميع بطريقة مستقلة عن النظام الأساسي قادرة على تشغيل كود CLI في Linux و OS X و Windows .

استدعاء برمجيًا

يمكن استدعاء Roslyn برمجيًا. وهي موجودة في مساحة الاسم ، ضمن حزم NuGetMicrosoft.CodeAnalysis.CSharp المختلفة . [ 19 ]

مثال

namespace Wikipedia.Examples ;باستخدام System ؛ باستخدام System.IO ؛ باستخدام System.Linq ؛ باستخدام System.Reflection ؛باستخدام Microsoft.CodeAnalysis ؛ باستخدام Microsoft.CodeAnalysis.CSharp ؛ باستخدام Microsoft.CodeAnalysis.CSharp.Syntax ؛ باستخدام Microsoft.CodeAnalysis.Emit ؛public class Example { static void Main ( string [] args ) { string code = @" using System;public class MyProgram {  public static void Main(string[] args)  {  int number = 42;  string text = ""Hello from Roslyn!"";  Console.WriteLine($""Number: {number}, Text: {text}"");  } } " ;SyntaxTree syntaxTree = CSharpSyntaxTree.ParseText ( code ) ; CSharpCompilation compilation = CSharpCompilation.Create ( " MyProgramAssembly " , // اسم التجميعة syntaxTrees : new [ ] { syntaxTree } , references : new MetadataReference [ ] { MetadataReference.CreateFromFile ( typeof ( object ) .Assembly.Location ) , MetadataReference.CreateFromFile ( typeof ( Console ) .Assembly.Location ) } , options : new CSharpCompilationOptions ( OutputKind.ConsoleApplication ) ) ;باستخدام ( MemoryStream ms = new () ) { EmitResult emitResult = compilation.Emit ( ms ) ;إذا كانت نتيجة الإخراج ناجحة ، فسيتم طباعة رسالة " تمت عملية التجميع بنجاح! " في وحدة التحكم ، ثم يتم الانتقال إلى بداية الملف .Assembly assembly = Assembly.Load ( ms.ToArray ( ) ) ; MethodInfo entryPoint = assembly.EntryPoint ; if ( entryPoint ! = null ) { entryPoint.Invoke ( null , new object [ ] { args } ) ; } } else { Console.WriteLine ( " فشل التجميع . " ) ; foreach ( Diagnostic diagnostic in emitResult.Diagnostics ) { Console.WriteLine ( diagnostic.ToString ( ) ) ; } } } } }

انظر أيضاً

مراجع

  1. "إصدار .NET 7.0.0" . جيت هاب. 14 ديسمبر 2021. تم الاطلاع عليه في 5 مايو 2022 .
  2. "لغة C# وVisual Basic - استخدم Roslyn لكتابة محلل أكواد مباشر لواجهة برمجة التطبيقات الخاصة بك" . msdn.microsoft.com . 24 يوليو 2015. تم الاطلاع عليه في 7 يناير 2019 .
  3. 1 2 منصة مُترجم .NET ("Roslyn") على GitHub
  4. نيل ماكاليستر، برنامج Roslyn من مايكروسوفت: إعادة ابتكار المُترجم كما نعرفه ، DEVELOPER_WORLD ، 2011-10-20
  5. "التوظيف في روزلين" . مدونة إريك ليبرت على MSDN . إريك ليبرت. 16 ديسمبر 2010.
  6. "مغامرات رائعة في البرمجة" . عن إريك ليبرت . إريك ليبرت. 29 نوفمبر 2012.
  7. موير، بات (5 أكتوبر 2014). "روزلين تأمل أن يجلب لها برنامجها التلفزيوني الجديد 15 دقيقة إضافية من الشهرة" . ياكيما هيرالد . تم الاطلاع عليه في 1 نوفمبر 2014 .{{cite news}}: CS1 maint: deprecated archiveal service ( link )
  8. نسخة مايكروسوفت التجريبية "Roslyn" مؤرشفة بتاريخ 18 أبريل 2012، في أرشيف الإنترنت (Wayback Machine) ، مركز تنزيل مايكروسوفت
  9. مايكروسوفت "Roslyn" CTP ، مركز تنزيل مايكروسوفت
  10. ما الجديد في إصدار مايكروسوفت "Roslyn" التجريبي لشهر سبتمبر 2012 ، منتديات Visual Studio vNext
  11. القيود المعروفة وميزات اللغة غير المُطبقة ، منتديات Visual Studio vNext
  12. مؤسسة .NET – مؤسسة مفتوحة المصدر لمجتمع .NET
  13. "أبرز النقاط من الكلمة الرئيسية الثانية في مؤتمر Build 2014" . InfoQ . تم الاطلاع عليه بتاريخ 26 ديسمبر 2021 .
  14. مايكروسوفت روسلين مقابل كود دوم
  15. Visual Studio 2015 RTM ، 2015-07-20
  16. ننتقل إلى GitHub! مؤرشف في 1 ديسمبر 2015، في Wayback Machine ، مدونة MSDN VBTeam، 10 يناير 2015
  17. "ورقة بيضاء: نظرة عامة على مشروع روزلين" . مايكروسوفت .
  18. نظرة عامة على Roslyn من وثائق GitHub
  19. "Microsoft.CodeAnalysis.CSharp Namespace" . learn.microsoft.com . Microsoft Learn . تم الاطلاع عليه بتاريخ 21 أكتوبر 2025 .

للمزيد من القراءة

  • فاساني، مانيش (2017). كتاب طبخ روزلين: المترجم كخدمة، تحليل الشفرة، جودة الشفرة، والمزيد . دار نشر باكت. رقم ISBN 978-1787286832.
  • هاريسون، نيك (2017). توليد الشفرة باستخدام روزلين . دار نشر أبريس. رقم ISBN 978-1484222102.
  • موخيرجي، سوديبتا (2017). تحليل شفرة المصدر باستخدام روسلين وتصور بيانات جافا سكريبت . أبريس. ISBN 978-1484219249.