إكمال التعليمات البرمجية

تُعدّ ميزة إكمال التعليمات البرمجية ميزةً في العديد من بيئات التطوير المتكاملة (IDEs)، حيث تُسرّع عملية كتابة التطبيقات البرمجية من خلال تصحيح الأخطاء الشائعة واقتراح أسطر برمجية. ويتم ذلك عادةً عبر نوافذ منبثقة أثناء الكتابة، والاستعلام عن معلمات الدوال، وتلميحات الاستعلام المتعلقة بأخطاء بناء الجملة. وتُستخدم ميزة إكمال التعليمات البرمجية والأدوات ذات الصلة كتوثيق وتوضيح لأسماء المتغيرات والدوال والأساليب ، باستخدام التحليل الثابت . [ 1 ] [ 2 ]
تظهر هذه الميزة في العديد من بيئات البرمجة. [ 3 ] [ 4 ] ومن تطبيقاتها IntelliSense في Visual Studio Code . وقد شاع استخدام المصطلح في الأصل باسم "قائمة الاختيار"، ولا تزال بعض التطبيقات تشير إليه بهذا الاسم. [ 5 ]
ملخص
يُعدّ الإكمال الذكي للتعليمات البرمجية، المشابه لأنظمة الإكمال التلقائي الأخرى ، وسيلةً ملائمةً للوصول إلى أوصاف الدوال، ولا سيما قوائم مُعاملاتها. تُسرّع هذه الميزة عملية تطوير البرمجيات بتقليل إدخال البيانات عبر لوحة المفاتيح والحاجة إلى حفظ الأسماء. كما تُتيح للمستخدمين الرجوع إلى الوثائق الخارجية بشكلٍ أقل تكرارًا، حيث تظهر الوثائق التفاعلية للعديد من الرموز (مثل المتغيرات والدوال) في النطاق النشط بشكلٍ ديناميكي على هيئة تلميحات . [ 6 ]
تستخدم ميزة الإكمال الذكي للتعليمات البرمجية قاعدة بيانات مُولّدة تلقائيًا في الذاكرة ، تضمّ الأصناف وأسماء المتغيرات وغيرها من العناصر التي يُعرّفها أو يُشير إليها كود الحاسوب. يعمل تطبيق IntelliSense "الكلاسيكي" عن طريق اكتشاف علامات مميزة مثل النقاط (أو علامات فاصلة أخرى، حسب لغة البرمجة). عندما يُدخل المستخدم إحدى هذه العلامات مباشرةً بعد اسم عنصر يحتوي على عضو واحد أو أكثر (مثل المتغيرات أو الدوال المُضمّنة)، يقترح IntelliSense تطابقات في نافذة منبثقة. يمكن للمستخدم قبول الاقتراح بكتابة علامة إكمال العبارة ( Tab ↹مثل النقطة أو الفاصلة المنقوطة) أو علامة خاصة بلغة البرمجة (مثل الفاصلة المنقوطة في لغة C++ )، أو متابعة كتابة الاسم. مع مرور الوقت، يُحدّد IntelliSense المتغير أو الدالة التي يحتاجها المستخدم على الأرجح. كما يعرض IntelliSense وصفًا موجزًا للدالة في النافذة المنبثقة، وذلك بناءً على كمية التوثيق في كود مصدر الدالة .↵ Enter
تتيح هذه الميزة أيضًا للمستخدمين الاختيار من بين عدد من الدوال المُحمّلة بشكل زائد في اللغات التي تدعم البرمجة كائنية التوجه . كما توفر بعض برامج تحرير الأكواد ميزة الإكمال التلقائي الذكي للأكواد من خلال خادم بروتوكول خادم اللغة (LSP).
تاريخ
بدأ البحث في مجال إكمال التعليمات البرمجية الذكي عام 1957، مع مدققات إملائية لصور نقطية للكتابة اليدوية وتطبيقات خاصة للعثور على السجلات في قواعد البيانات رغم وجود إدخالات خاطئة. في عام 1961، رأى ليس إرنست ، الذي ترأس البحث في هذه التقنية الناشئة، ضرورة تضمين أول مدقق إملائي يصل إلى قائمة تضم 10000 كلمة مقبولة. [ 7 ] أنشأ رالف غورين، وهو طالب دراسات عليا تحت إشراف إرنست آنذاك، أول برنامج تدقيق إملائي حقيقي كتطبيق (وليس بحثًا) للنصوص الإنجليزية العامة. نُشر برنامج SPELL، لجهاز DEC PDP-10 في مختبر الذكاء الاصطناعي (SAIL) بجامعة ستانفورد، في فبراير 1971. [ 8 ] كتب غورين البرنامج بلغة التجميع لتسريع الأداء؛ وقد أنشأه من خلال البحث في قائمة كلمات عن تهجئات صحيحة محتملة تختلف بحرف واحد أو بتبديل أحرف متجاورة، وعرضها على المستخدم. أتاح غورين برنامج SPELL للجمهور، كما فعل مع معظم برامج SAIL، وسرعان ما انتشر في جميع أنحاء العالم عبر شبكة ARPANET الجديدة آنذاك ، قبل حوالي عقد من الزمن من انتشار استخدام الحواسيب الشخصية على نطاق واسع. [ 9 ] وقد ألهم برنامج SPELL وخوارزمياته وهياكل بياناته برنامج Ispell لنظام Unix .
الدعم في المحررات وبيئات التطوير المتكاملة
Visual Studio

IntelliSense هي تقنية إكمال التعليمات البرمجية من مايكروسوفت ، وتُعرف بشكل خاص في Visual Studio . ظهرت لأول مرة كميزة في أحد منتجات مايكروسوفت الرئيسية عام 1996 [ 10 ] ، بالاعتماد على العديد من مفاهيم إكمال التعليمات البرمجية والتحقق من بناء الجملة التي كانت موجودة مسبقًا، وذلك مع إصدار Visual Basic 5.0 Control Creation Edition، الذي كان في الأساس نموذجًا أوليًا متاحًا للجمهور لـ Visual Basic 5.0. [ 11 ] في البداية، كانت بيئة تطوير Visual Basic المتكاملة (IDE) هي "منصة الاختبار" الرئيسية لهذه التقنية، ولكن تم دمج IntelliSense في Visual FoxPro و Visual C++ [ 12 ] في Visual Studio 97 (بعد إصدار واحد من ظهورها لأول مرة في Visual Basic). ولأنها كانت تعتمد على إمكانيات الاستكشاف الذاتي لـ COM ، كانت إصدارات IntelliSense في Visual Basic دائمًا أكثر قوة وشمولية من إصدارات Visual C++ 5.0 و6.0 (97 و98 في تسلسل تسمية Visual Studio)، والتي لم تكن تعتمد كليًا على COM. تم تصحيح أوجه القصور هذه، مثل عدم وجود دعم للقوالب ، والتي انتقدها العديد من مطوري VC++، إلى حد كبير في خطوط إنتاج .NET [ 13 ].
دخلت ميزة IntelliSense مرحلة جديدة من التطوير مع إطلاق بيئة Visual Studio.NET الموحدة لأول مرة عام 2001، مدعومةً بإمكانيات استبطان وتوثيق التعليمات البرمجية الأكثر قوة التي يوفرها إطار عمل .NET. تدعم محررات Visual Studio الآن ميزة IntelliSense للغات C++ و C# و J# و Visual Basic و XML و HTML و XSLT وغيرها. بدءًا من Visual Studio 2005 ، يتم تفعيل IntelliSense تلقائيًا عند بدء المستخدم بالكتابة، بدلاً من اشتراط استخدام أحرف التحديد (مع إمكانية تعطيل هذه الخاصية). تتمتع بيئة التطوير المتكاملة (IDE) بالقدرة على استنتاج سياق أوسع بناءً على ما يكتبه المطور، لدرجة أن بنيات لغوية أساسية مثل for و while تُدرج أيضًا في قائمة الخيارات. في عام 2017، أعلنت مايكروسوفت عن IntelliCode [ 14 ] ، التي تستخدم التعلم الآلي لاستنتاج اللغة أو ميزة المكتبة المقصودة بدقة عند كل ضغطة مفتاح. [ 15 ] في البداية كان متاحًا كإضافة للغة C# فقط، ومن المتوقع أن يتم تضمينه في الإصدارات المستقبلية من Visual Studio.
يتضمن Visual Studio 2022 ميزات الذكاء الاصطناعي، مثل GitHub Copilot ، الذي يمكنه اقتراح أسطر كاملة من التعليمات البرمجية تلقائيًا بناءً على السياق المحيط.
تتضمن منتجات مايكروسوفت الأخرى التي تدعم IntelliSense كلاً من Expression Web و FrontPage 2003 و Small Basic وبيئات تطوير Visual Basic for Applications المتكاملة في منتجات Microsoft Office و Visual Studio Code وغيرها الكثير. كما يتميز SQL Server 2008 Management Studio بخاصية الإكمال التلقائي لصيغة SQL.
كسوف
تتضمن بيئة تطوير Eclipse المتكاملة أدوات إكمال التعليمات البرمجية المدمجة في البرنامج. [ 16 ] [ 17 ] وهي تدعم بشكل ملحوظ كتابة التعليمات البرمجية بلغات Java وC++ وJavaScript. كان مشروع Code Recommenders Eclipse يوفر ميزة إكمال ذكية وفعّالة، [ 18 ] ولكن نظرًا لنقص الموارد، تم إيقافه في إصدار Eclipse 2018-12، ثم أُرشف في يوليو 2019. [ 19 ] [ 20 ] [ 21 ]
همة
Vim Intellisense [ 22 ] هو نظام متقدم لإكمال التعليمات البرمجية لمحرر Vim .
مثال
لنفترض أن تطبيق C++ يتم تحريره في Visual Studio يحتوي على فئة Foo مع بعض الدوال الأعضاء:
class Foo { public : void bar (); void foo_bar ( char c , int n ); };عندما يشير المطور إلى هذه الفئة في شفرة المصدر، على سبيل المثال:
فو فو ؛ فو .بمجرد أن يكتب المستخدم النقطة بعد foo، يعرض IntelliSense تلقائيًا جميع الدوال الأعضاء المتاحة (مثل bar()و foo_bar()) وجميع سمات الأعضاء المتاحة (يمكن تمييز الأعضاء الخاصة والمحمية بصورة قفل بجانب أسمائها). يمكن للمستخدم بعد ذلك اختيار إحداها باستخدام مفاتيح الأسهم والضغط على حرف الإكمال عند تمييز الدالة العضو الصحيحة. عند توفرها، يعرض IntelliSense وصفًا موجزًا للدالة العضو كما هو موضح في وثائق شفرة المصدر.
تتجاوز ميزة IntelliSense ذلك، إذ تعرض المعلمات المطلوبة في نافذة منبثقة أخرى أثناء قيام المستخدم بإدخالها. وعندما يكتب المستخدم اسم متغير، تقدم الميزة اقتراحات لإكماله أثناء الكتابة. وتستمر IntelliSense في عرض المعلمات، مع تمييز المعلمة المناسبة، أثناء الكتابة.
يمكن للمستخدم "إجبار" IntelliSense على عرض قائمته المنبثقة بدون سياق باستخدام + أو + . في Visual Studio، يعرض هذا نموذج كائنات مجال التطبيق بالكامل المتاح للمطور.CtrlJCtrlSpace
انظر أيضاً
- تابنين - مساعد برمجة
- مايكروسوفت كوبايلوت
- إكمال تلقائي
- التصحيح التلقائي
ملحوظات
- ↑ روبيس، رومان؛ لانزا، ميشيل (2008). "كيف يمكن لسجل البرنامج تحسين إكمال التعليمات البرمجية". المؤتمر الدولي الثالث والعشرون لهندسة البرمجيات الآلية IEEE/ACM لعام 2008. الصفحات 317-326 . doi : 10.1109/ASE.2008.42 . ISBN 978-1-4244-2187-9. S2CID 2093640 .
- ↑ "إكمال التعليمات البرمجية، الحلقة 1: السيناريوهات والمتطلبات" . مدونة JetBrains . 28 مايو 2021. تم الاطلاع عليه بتاريخ 17 نوفمبر 2023 .
- ↑ الأسئلة الشائعة - كود بلوكس . Wiki.codeblocks.org (2014-02-01). تم الاطلاع عليه بتاريخ 2014-04-04.
- ↑ وثائق Qt - إكمال التعليمات البرمجية . تم الاطلاع عليها بتاريخ 2015-07-07.
- ↑ استخدام لغة Apex الديناميكية لاسترجاع قيم القوائم المنسدلة | مدونة Developer Force . Blogs.developerforce.com (2008-12-09). تاريخ الاطلاع: 2014-04-04.
- ↑ موراش. سي شارب 2005. ص 56.
- ↑ إرنست، ليس. "أول ثلاثة مدققات إملائية" (ملف PDF) . جامعة ستانفورد. مؤرشف من الأصل (ملف PDF) بتاريخ 22 أكتوبر 2012. تم الاطلاع عليه بتاريخ 10 أكتوبر 2011 .
- ↑ بيترسون، جيمس (ديسمبر 1980). برامج حاسوبية لاكتشاف وتصحيح الأخطاء الإملائية (ملف PDF) . تم الاطلاع عليه بتاريخ 18 فبراير 2011 .
- ↑ إرنست، ليس. إرث مرئي لعام 3000 (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 20 يوليو 2011. تم الاطلاع عليه في 18 فبراير 2011 .
- ↑ "أرشيف قاعدة معارف مايكروسوفت/165524 - ويكي بيتا أركايف" . www.betaarchive.com . تاريخ الاطلاع: 19 نوفمبر 2023 .
- ↑ "مايكروسوفت تُطلق فيجوال بيسك 5.0، إصدار إنشاء عناصر التحكم" . قصص . 28 أكتوبر 1996. تم الاطلاع عليه بتاريخ 19 نوفمبر 2023 .
- ↑ "مايكروسوفت تُطلق Visual C++ 6.0" . قصص . 29 يونيو 1998. تم الاطلاع عليه بتاريخ 19 نوفمبر 2023 .
- ↑ استخدام IntelliSense . Msdn.microsoft.com. تم الاطلاع عليه بتاريخ 2014-04-04.
- ↑ فيجوال ستوديو إنتلي كود
- ↑ بروش، مارسيل؛ مونبيروس، مارتن؛ ميزيني، ميرا (2009). "التعلم من الأمثلة لتحسين أنظمة إكمال التعليمات البرمجية". وقائع الاجتماع المشترك السابع للمؤتمر الأوروبي لهندسة البرمجيات وندوة ACM SIGSOFT حول أسس هندسة البرمجيات (ESEC/FSE) . الصفحات 213-222 . doi : 10.1145/1595696.1595728 .
- ↑ "مقال ركن إكليبس: إطلاق العنان لقوة إعادة البناء | مؤسسة إكليبس" .
- ↑ "التقنيات" . آي بي إم .
- ↑ مُقترحات أكواد Eclipse: الأمر كله يتعلق بإكمال الأكواد الذكي . Code-recommenders.blogspot.com (2010-05-03). تم الاطلاع عليه بتاريخ 2014-04-04.
- ↑ 542689 - لا تقم بتضمين توصيات التعليمات البرمجية لعام 2018-12
- ↑ مشكلة تطوير المشاريع المشتركة: سحب مُوصي التعليمات البرمجية من SimRel
- ↑ المشاريع المؤرشفة | مؤسسة إكليبس
- ↑ ميزة الإكمال التلقائي في Vim . Insenvim.sourceforge.net. تم الاطلاع عليه بتاريخ 2014-04-04.
- بيئات التطوير المتكاملة
- ميزات محرر النصوص
- أدوات تطوير مايكروسوفت
- مايكروسوفت فيجوال ستوديو
- إكمال تلقائي
