compiler

  • كيف تعالج أخطاء تايب سكريبت؟

    هناك العديد من الطرق لتعديل أخطاء تايب سكريبت:

    1. استخدام مترجم اللغة البرمجية (Compiler): يمكن استخدام مترجم اللغة البرمجية لتحليل الرمز وتحديد الأخطاء وإظهارها في الإخراج.

    2. استخدام Debugging tools: يمكن استخدام أدوات تصحيح الأخطاء مثل debuggers للعثور على الأخطاء وتعديلها.

    3. العودة إلى المستندات الرسمية: يمكن العودة إلى المستندات الرسمية للغة البرمجة ومراجعتها لتحديد الأخطاء.

    4. البحث عبر المنتديات والمجتمعات: يمكن البحث عبر المنتديات والمجتمعات المختلفة للحصول على المساعدة والنصائح من المطورين الآخرين.

    5. التجريب والخطأ: يمكن تجريب الرمز وتعديله ومراجعته حتى يتم حل الأخطاء.

  • كيف تتعلم البرمجة؟

    البرمجة ولغاتها
    البرمجة هي عبارة عن كتابة شيفرة (بالإنجليزيّة: Code)، أي مجموعة من الأوامر، والتي يتم ترجمتها وتنفيذها من قِبَل جهاز الحاسوب أو أي جهازٍ إلكتروني آخر.

    يتكوَّن البرنامج الحاسوبي من مجموعة من الأوامر، والتي تقوم بدورها بتحديد سلوك البرنامج وآليّة عمله.

    تُستَخدَم في عمليّة البرمجة ما يُعرَف بلغات البرمجة (بالإنجليزيّة: Programming languages)، وهي عبارة عن لُغة خاصّة تُستَخدَم من قِبَل المبرمجين من أجل تطوير البرمجيّات، أو النصوص (بالإنجليزيّة: Scripts)، أو غير ذلك ممّا يمكن تنفيذه على جهاز الحاسوب.

    من الأمثلة على لغات البرمجة هي لغة سي (بالإنجليزيّة: C)، ولغة جافا (بالإنجليزيّة: Java)، ولغة بايثون (بالإنجليزيّة: Python).

    تصنيف لغات البرمجة حسب المستوى
    يمكن تقسيم لغات البرمجة إلى قسمين، لغات البرمجة عالية المستوى (بالإنجليزيّة: High-level)، ولغات البرمجة منخفضة المستوى (بالإنجليزيّة: Low-level).

    يختلف كِلا النوعين عن بعضهما البعض بكون الأولى أكثر تجريداً من الأخيرة من حيث ما تتيحه من مهام، وذلك عن طريق تركيبات جُمل (بالإنجليزيّة: Syntax) أسهل، إذ إنَّ لغات البرمجة عالية المستوى تُعدّ أكثر سهولة من اللغات الأقل مُستوى، لذا يُنصَح بالبدء بها عند تعلُّم البرمجة.

    إنَّ لغات البرمجة منخفضة المستوى عادةً ما توفِّر إمكانيّةً أكبر للتحكُّم بجهاز الحاسوب، كالقدرة على إدارة الذاكرة والبيانات، وتُعدّ لغة الآلة (بالإنجليزيّة: Machine code) بالإضافة إلى لغة التجميع (بالإنجليزيّة: Assembly language) اللغتين الأكثر انخفاضاً في المستوى من بين لغات البرمجة الأخرى، إذ إنّهما مبنيّتان على أساس تمرير الأوامر بشكل مباشر لجهاز الحاسوب.

    تصنيف لغات البرمجة حسب هدف الاستخدام
    يمكن تقسيم لغات البرمجة حسب الهدف من استخدامها، فتجد لغات برمجة مُخصَّصة لبرمجة المواقع الإلكترونيّة، وتُعدّ هذه اللغات من أسهل لغات البرمجة وأبسطها، لذا فهي تناسب المبتدئين، ومن هذه اللغات لغة ترميز النصّ الفائق (بالإنجليزيّة: HTML) بالإضافة إلى لغة صفحات الطُّرُز المتراصّة (بالإنجليزيّة: CSS)، وهاتان اللغتان تُستخدمان في برمجة صفحات الويب، كما توجد لغات أخرى كلغة جافاسكريبت، التي تُستَخدَم في برمجة متصفّحات الويب وتعديل الصفحات بشكل مستمرّ ومباشر.

    وعلاوةً على هذه اللغات، توجد لغة بايثون والتي يمكن استخدامهما في برمجة الخادم، كذلك يمكن استخدام لغة المعالج المسبق للنصوص الفائقة (بالإنجليزيّة: PHP).

    توجد لغات برمجيّة يمكن استخدامها في برمجة تطبيقات الهواتف المحمولة، ومنها لغة جافا، والتي تُعدّ اللغة الأساسيّة لبرمجة تطبيقات نظام تشغيل آندرويد (بالإنجليزيّة: Android)، ونظيرتها لغة سويفت (بالإنجليزيّة: Swift) من تطوير شركة آبل (بالإنجليزيّة: Apple)، والمستخدمة لبرمجة تطبيقات نظام تشغيل الآي أو إس (بالإنجليزيّة: iOS).

    بالإمكان أيضاً استخدام لغة جافاسكريبت لبرمجة تطبيقات الهواتف المحمولة.

    يمكن برمجة التطبيقات المكتبيّة باستخدام عدّة لغات، ومنها لغة جافا، والتي من إيجابيّاتها إمكانيّة استخدام نفس التطبيق على نظم تشغيل متعدّدة، كما توجد لغة سي شارب (بالإنجليزيّة: #C)، والتي تُمكِّن المبرمج من تطوير تطبيقاتٍ تحتوي واجهاتٍ ونوافذ لنظام تشغيل الويندوز (بالإنجليزيّة: Windows).

    يمكن استخدام لغة سويفت أيضاً لبرمجة التطبيقات المكتبيّة لنظام تشغيل الماك.

    بالنسبة لبرمجة ألعاب الفيديو، فيمكن استخدام بعض اللغات كلغة سي شارب التي يعتمدها مُحرِّك يونيتي (بالإنجليزيّة: Unity) للألعاب الذي يدعم تطوير الألعاب ثنائيّة الأبعاد وثلاثيّة الأبعاد، كما يتيح هذا المُحرِّك إمكانيّة تطوير الألعاب لأنظمة تشغيل مختلفة.

    توجد للغة جافا بعض المكتبات التي يمكن استخدامها لبرمجة الألعاب كمكتبة “LibGDX” مفتوحة المصدر.

    كما يمكن استخدام لغة هاكسية (بالإنجليزيّة: Haxe) لبرمجة الألعاب ثنائيّة الألعاب بشكل سريع وبسهولة، إذ إنَّ هذه اللغة يمكن دمجها في لغات برمجيّة أخرى كلغتي سي بلس بلس (بالإنجليزيّة: ++C) وجافا.

    يمكن استخدام لغة جافاسكريبت أيضاً لبرمجة الألعاب القابلة للتشغيل على متصفحّات الويب.

    توجد لغات أخرى ذات استخدامات محدّدة، ومن هذه اللغات لغة آر (بالإنجليزيّة: R) المتخصّصة في التنقيب عن البيانات، بالإضافة إلى تحليلها وإجراء العمليّات الحسابيّة المختلفة عليها، كما يمكن اعتبار هذه اللغة بديلة عن لغة ماتلاب (بالإنجليزيّة: MATLAB) ذات تكلفة الترخيص المرتفعة.

    ويمكن استخدام لغة بايثون لإجراء العمليّات على البيانات، كما يمكن استخدامها لكتابة النصوص (بالإنجليزيّة: Scripts).

    كيفيّة تعلُّم البرمجة
    عند البدء بتعلُّم البرمجة، يجدر على الشخص تعلُّم اللغة التي تخدِم أهدافه، فعلى سبيل المثال، لو كان الشخص يريد تعلُّم البرمجة لبناء المواقع الإلكترونيّة، فيجب عليه تعلُّم إحدى اللغات المُخصّصة لذلك، كما يُنصَح البدء بتعلُّم لغات البرمجة البسيطة عالية المستوى، وتُعدّ لغتي بايثون وروبي (بالإنجليزيّة: Ruby) من لغتي البرمجة الكائنيّة (بالإنجليزيّة: Object oriented) البسيطة، كما يمكن استخدام هاتين اللغتين في تطوير تطبيقات الويب.

    يُنصَح بقراءة بعض الدروس البسيطة للغات برمجة مُختلفة، ومن ثمَّ اختيار اللغة الأكثر إقناعاً، بعد ذلك يقوم الشخص باختبار هذه اللغة وتجربتها.

    عند البدء بتعلُّم لغة برمجة، يجدر على المُتعلِّم التوجُّه للمبادئ الأساسيّة في لغة البرمجة قبل تعلُّم الأمور الأكثر تعقيداً.

    من بعض المبادئ الأساسيّة في معظم لغات البرمجة هي المتغيِّرات (بالإنجليزيّة: Variables)، والجمل الشرطيّة (بالإنجليزيّة: Conditional statements) والتي أشهرها جملة “if-then”، كما تُعدّ الوظائف (بالإنجليزيّة: Functions) من المبادئ الأساسيّة المهمّة في البرمجة، ويمكن اعتبارها على أنّها برامج صغيرة مضمّنة في برنامج كبير، والذي بإمكانه الاستفادة منها لبناء برامج أكثر تعقيداً.

    من أساسيّات لغات البرمجة أيضاً هي طُرُق إدخال البيانات (بالإنجليزيّة: Data input) إلى البرنامج بالإضافة إلى إخراجها (بالإنجليزيّة: Data output)، ومن الأمثلة على طُرُق إدخال البيانات لوحة المفاتيح، أو عن طريق ملف، أو غيرها من الوسائل العديدة، ولإخراج البيانات بحيث يستفيد منها المستخدم، يمكن طباعتها على الشاشة.

    بعد اختيار اللغة المُراد تعلُّمها، يتم تثبيت أي برنامج تتطلّب هذه اللغة وجوده على جهاز المُبرمج، كبيئات التطوير المتكاملة (بالإنجليزيّة: IDEs)، والتي تُعدّ برامج تعديل نصوص تحتوي على مُترجِم (بالإنجليزيّة: Interpreter) أو مُحوِّل (بالإنجليزيّة: Compiler) للغة البرمجة.

    بعد ذلك يتم البدء بكتابة أوّل برنامج، ويُعدّ برنامج “Hello World” من أشهر البرامج البسيطة التي يتم تعليمها للمبتدئين، حيث يقوم البرنامج بمجرَّد طباعة عبارة “Hello World” على الشاشة.

    نصائح عند تعلُّم البرمجة
    يُنصَح بشدّة بالمداومة على البرمجة بشكل يومي، كما يُنصَح بالاطّلاع على بعض الأمثلة المطروحة على شبكة الإنترنت للغة البرمجة التي يتم تعلُّمها، كما يجب على المُتعلِّم تفحُّص الطريقة التي تُكتَب بها اللغة، إذ تختلف كلّ لغة بطريقة كتابتها عن الأخرى.

    يستطيع المُبرمج القيام بالتّجارب عن طريق تعديل الشيفرة المصدريّة للبرنامج، ومحاولة إصلاح أي أخطاء قد يقع بها أثناء ذلك، إذ إنَّ ذلك سيعود عليه بمنفعةٍ كبيرةٍ عند تعلُّم اللغة.

    عند مواجهة أيّة صعوبات أو مشاكل، بالإمكان الاستعانة بذوي الخبرة أو بقراءة الشيفرات للتعلُّم منها، فيمكن اللجوء للمنتديات المتخصّصة بلغة البرمجة التي يتم تعلُّمها وطرح الأسئلة فيها.

    ممّا قد يُساعد على تقوية مهارات البرمجة تعلُّم المنطق والحساب، بالإضافة إلى قراءة كُتُب البرمجة المختلفة، كما يمكن أخذ دورات تعليميّة في إحدى المعاهد أو الجامعات.

  • ما هي الأدوات المطلوبة لبرمجة Kotlin؟

    تحتاج إلى ما يلي:

    1- بيئة تطوير متكاملة (IDE) مثل Android Studio أو IntelliJ IDEA.

    2- تنزيل Kotlin plugin من خلال IDE الخاصة بك.

    3- بعض المعرفة في البرمجة الأساسية، وخصوصًا البرمجة بلغة Java.

    4- محرر نصوص (text editor)، إذا كنت تفضل استخدامها بدلاً من IDE.

    5- المترجم (compiler) الخاص بلغة Kotlin والذي يمكن تنزيله الرسمي Kotlin الموقع الإلكتروني الرسمي.

  • ما هو المترجم ؟ Compiler

    ما هو المترجم ؟ Compiler

    المترجم (Compiler) هو برنامج يستخدم لتحويل ملفات الشفرة المصدرية في لغة برمجة معينة إلى ملفات تنفيذية قابلة للتشغيل على نظام الحاسوب. عندما يكتب المطورون البرمجيات بلغات مثل C، C++، Java، Python، يكتبون الشفرة المصدرية التي تكون عبارة عن تعليمات مفهومة للإنسان وتحتاج إلى تحويل لتنفيذها على الحاسوب.

    عمل المترجم ينقسم عادة إلى ثلاث مراحل:

    1. المرحلة الأولى (Lexical Analysis):
    – يقوم المترجم بتحليل الشفرة المصدرية وتقسيمها إلى مجموعة من العناصر المعروفة باسم الرموز (Tokens).
    – الرموز هي الوحدات الصغيرة من الشفرة المصدرية مثل الكلمات المفتاحية والمعاملات والعلامات النهاية.

    2. المرحلة الثانية (Syntax Analysis):
    – يقوم المترجم بتحليل الهيكل اللغوي للشفرة المصدرية.
    – يتحقق المترجم مما إذا كانت الشفرة المصدرية تتبع قواعد اللغة البرمجية المحددة أم لا.

    3. المرحلة الثالثة (Code Generation):
    – بناءً على التحليل السابق، يقوم المترجم بتوليد ملف تنفيذي (Executable) يحتوي على الشفرة المصدرية المحولة إلى لغة آلة يمكن تنفيذها مباشرة على الحاسوب.
    – يتم ترجمة الشفرة المصدرية إلى لغة آلة تعترف بها وحدة المعالجة المركزية (CPU) الخاصة بالحاسوب.

    باختصار، يقوم المترجم بتحويل الشفرة المصدرية من لغة برمجة إلى تعليمات قابلة للتنفيذ على الحاسوب. يساعد المترجم في تحقيق فهم الحاسوب للشفرة المصدرية وتن

    فيذها بشكل صحيح وفعال.

  • مصطلحات أساسية في البرمجة

    ما هي المصطلحات التي تتكر كثيرا عند كل مبرمج ؟

    كما هو الحال بالنسبة لأي مهارة ، من الضروري تعلم المصطلحات الأساسية المستخدمة في هذا المجال قبل الانتقال إلى وضع الممارسة بشكل كامل.حيث انه تساعدك معرفة المصطلحات على فهم مجالك بشكل أفضل وأسرع. إذا كنت تتعلم البرمجة أو كنت حديث العهد بعلوم الكمبيوتر ، فنحن نقدم لك بعض المصطلحات الهامة في علوم الكمبيوتر والبرمجة والتي يمكن أن تكون بمثابة دليل التعلم الخاص بك 101

    🔸 المتغيرات Variables

    المتغيرات هي عبارة عن مواقع في الذاكرة تخزن البيانات بشكل مؤقت ويمكن تغيير قيمتها أثناء تنفيذ البرنامج. فمثلا يمكن للبرنامج أن يُخزن في المتغير Var1 القيمة 1 ثم يخزن القيمة 2، والقيمة التي سترجع من المتغير
    هي آخر قيمة تم تخزينها.

    ‏🔸 الثوابت Constant

    هي عبارة عن مواقع في الذاكرة تُخزن فيها البيانات بشكل مؤقت ولكن لا يمكن تغيير قيمتها أثناء تنفيذ البرنامج. فمثلا يُمكن للبرنامج أن يخزن في الثابت Con1 القيمة 1 لكنه لا يستطيع تغييرها وإن حاول تغييرها فإن المترجم يُرسل رسالة خاطئة أثناء تنفيذ البرنامج.

    ‏🔸 الحدث Event

    هو عبارة عن فعل يقوم به المستخدم للبرنامج المصمم كالنقر على أداة “الزر Button” أو تغيير نص في مربع نص “Text Box” أو حتى تحريك الماوس أو الفأرة ويرافقه تنفيذ الإجراء المتعلق به.

    ‏🔸 الإجراء Procedure

    هو عملية أو عمليات ينفذها البرنامج عند تحقق حدث معين كالنقر على أداة الزر “Button” في البرنامج.

    🔸 الكائن object

    قد يكون تعريف لكود أداة تحكم مثل الزر “Button” ويكون له عدة إجراءات.

    🔸 الكود أو “الشفرة البرمجية” Code

    هو عبارة عن أوامر برمجية تعطى للكمبيوتر على شكل نص تُكتب بواسطة لغة من لغات البرمجة كلغة “الفيجوال بيسك” والتي يفسرها مترجم يسمى ليفهمها الكمبيوتر ولكل وحدة نمطية أو أداة تحكم كود
    خاص به في الفيجوال بيسك. وقد يكون الكود مقسما إلى ‏كائنات “Objects”،
    ودالات أو توابع “Functions”، وإجراءات “Procedures”، و أحداث “Events”.

    🔸 المترجم Compiler

    هو أداة تقوم بترجمة البرنامج دفعة واحدة إلى لغة الآلة وتُنتج ملف تنفيذى بامتداد “exe –> executable file”، يعمل مباشرة بدون وسيط، وهذا يعنى أن لغات البرمجة المترجمة تقوم بتحويل النص البرمجى المكتوب بها إلى لغة الآلة مباشرة وتُنتج ملف تنفيذي، ‏

    🔸 المفسر Interpreter

    هو أداة تقوم بترجمة البرنامج إلى لغة الآلة سطر سطر، وهذا يعنى أن البرنامج المكتوب بلغات برمجة تفسيرية يتم ترجمته إلى نص برمجى وسيط بلغة منخفضة المستوى ( لغة وسيطة )، ويُنتَج ملف للبرنامج وبداخله هذا الكود, لذا لا يمكن تنفيذه على هذه الصورة مباشرة حيث يحتاج إلى ‏برنامج آخر يقوم بترجمة الأكواد المكتوبة بداخله إلى لغة الآلة، هذا البرنامج يسمى “المفسر”، ففي لغة الــJava مثلاً يُترجم النص البرمجى إلى كود وسيط يسمى “Byte code”، وتُنتج ملف بامتداد jar، هذا الكود البرمجي لا يُمكن تشغيله وتنفيذه على أي جهاز مباشرة حيث يحتاج إلى ما ‏يسمى “آلة جافا الافتراضية”، والتى تعمل كمفسر للبرنامج الناتج حتى يتم تنفيذه.
    تطبيقات الدوت نت أيضا تعتمد على نفس الأسلوب بحيث يتم تحويل الكود البرمجى المكتوب بلغة من لغات الدوت
    إلى لغة وسيطة منخفضة المستوى تسمى لغة “مايكروسوفت Visual Basic نت”.

  • ما هو الفرق بين المترجم والمفسر ؟ Compiler vs Interpreter

    المترجم Compiler والمفسر Interpreter في واقع الأمر عبارة عن برنامجين يقومان بنفس الغرض، والمتمثل في تحويل الأوامر المكتوبة بإحدى لغات البرمجة العالية المستوى (high level language) من قبيل Java و#C و++C، إلى لغة الآلة Machine Language (أوامر مكتوبة بالبيانات الثنائية Binary Data أي سلاسل من الأصفار والوحدات).

    ⁦▫️⁩إذاً وإن كان لهما نفس الدور، فلماذا يوجد مترجم “Compiler” ومفسر “Interpreter” ولماذا لا يوجد أحدهما فقط ؟

    لنتعرف على أهم الفروق بين البرنامجين، وعلى السبيل الذي يسلكه كلاهما من أجل تحويل التعليمات والأوامر العالية المستوى (والتي تسمى أيضاً البرنامج المصدري Source Program) إلى أوامر مكتوبة بلغة الآلة.

    Difference between Compiler and Interpreter - TutorialsMate


    🔸 المترجم Compiler :

    من خلال اسمه يتضح جلياً أنه يقوم بعملية الترجمة، فهو يقوم بفحص البرنامج المكتوب بلغة البرمجة كاملاً، ثم يقوم بترجمته إلى برنامج مكتوب بلغة الآلة لكي تتمكن وحدة معالجة البيانات “CPU” من تنفيذه و لا يظهر الأخطاء الموجودة في البرنامج المصدري إلاّ بعد الانتهاء من عملية تحويله إلى لغة الآلة.


    🔸 المفسر Interpreter :

    يقوم تقريباً بنفس الدور الذي يقوم به المترجم مع اختلاف بسيط، يتجلى في أن المفسر لا يقوم بتحويل الكود المصدري إلى كود الآلة مباشرة وإنما يقوم بتحويله إلى لغة وسيطة (intermediate code)، بعد ذلك يتم تحويل كل جزء من أجزاء الكود الناتج إلى لغة الآلة، ثم يتم تنفيذ هذه الأجزاء أمراً بأمر (Statement by statement)، وأي أمر يضم خطأً يؤدي إلى توقيف عملية تحويل الأجزاء المتبقية.


زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر