لغة البرمجة

لغة البرمجة هي بالأساس طريقة تسهل للمبرمج كتابة برنامجه في هيئة تعليمات وأوامر يفهمها الحاسوب بغرض تنفيذ العمل المطلوب. ومن المعروف ان الحاسوب يحول اللغة المكتوبة بها البرمجة إلى سلسلة من 0 و 1، ويبدأ على أساسها عمله. ولكتابة الأوامر، توفر لغة البرمجة المختارة مجموعة من الأمور الأساسية للاستناد إليها أثناء عملية تكوين البرنامج ومجموعة من القواعد التي تمكن من التعامل مع معلومات وتنظيمها بغرض أداء العمل المطلوب.

تتمثل هذه الأسس والقواعد بصفة عامة في:

  • المعلومات وتخزينها
  • الأوامر وتنظيم سيرها
  • التصميم الخاص


المعلومات وتخزينها

يتم تخزين المعلومات في الأجهزة الرقمية الحالية في هيئة أرقام طبقا لنظام العد الثنائي (أي المعتمد على 0 و 1).

و بصفة عامة فان المعالجات الحديثة لا تقوم بالتعامل مع البت الواحد بل مع مجموعات من البتات يمكن أن تضم :

وباستعمال 8 بت مثلا، يمكن تشكيل 256 قيمة مختلفة، ويمكن أن تكون هذه القيمة بين 0 و 255 وتمثل وظيفة لغة البرمجة استغلال وحدة أو مجموعة من الوحدات (رموزا) لتخزين معلومات من الحياة الواقعية مثل الأسماء أو القياسات أو أرقام الحسابات البنكية.


الأوامر وتنظيم سيرها

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

تمكن اللغة أيضاً من إجراء عملية اختيار وتفرع، وذلك بإدخال شرط منطقي يقوم الحاسوب على أساسه باختيار اتجاه الاستمرار في أداء العمل: فلنفترض أن البرنامج الذي يريد المبرمج صنعه يقوم بقسمة عددين يختارهما المستخدم، وإظهار النتيجة على الشاشة، ومن المعروف أن القسمة على صفر لا تجوز، وبناء علي ذلك فلا بد أن يحدد المبرمج في برنامجه هذا الاختيار : فاذا كان القاسم مخالفا للصفر، فإن البرنامج يسيـّر الحاسوب فيقوم بإجراء العملية ويعطي النتيجة. أما إذا كان القاسم صفراً فإن البرنامج لا يقوم بإجراء العملية وإنما ينبه إلى أن المستخدم حاول القسمة على صفر. و يمكن تنظيم الأوامر بصفة أخرى، حيث يقع تنفيذ أمر أو مجموعة من الأوامر بصفة متكررة حلقية (Loop) و يمكن تقسيم الأوامر أيضاً إلى وحدات فرعية تقوم كل وحدة بإنجاز عمل محدد، والهدف هو تقسيم العمل إلى أجزاء يسهل العمل عليها كل على حدة في هيئة دورات حلقية (Loops).


التصميم الخاص

تتمتع كل لغة بتصميم خاص من حيث التعامل مع المعطيات، ومن حيث الطرق والتسهيلات التي توفرها اللغة للتعامل مع مشكلة معينة.

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

لغة التجميع

لغة التجميع أو لغة المُجمع[2](بالإنجليزية: Assembly Languages)‏ والتي يمكن اختصارها إلى (asm)، هي أي لغة برمجة منخفضة المستوى يوجد بها تطابق قوي جدًا بين التعليمات المستخدمة في اللغة وتعليمات لغة الآلة الخاصة بمعمارية الحاسوب.[3] نظرًا لأن التجميع يعتمد على تعليمات لغة الآلة، فقد تم تصميم كل لغة تجميع لمعمارية كمبيوتر محددة واحدة بالضبط. قد تسمى لغة التجميع أيضًا رمز الآلة الرمزي.

يتم تحويل لغة التجميع إلى لغة آلة قابلة للتنفيذ بواسطة البرنامج المساعد المشار إليه باسم المُجمع. يشار إلى عملية التحويل باسم التجميع، كما هو الحال في تجميع الشيفرة المصدرية. عادةً ما تحتوي لغة التجميع على جملة واحدة لكل تعليمه للآلة (1:1)، ولكن التعليقات والجمل هي توجيهات للمُجمِّع،[6] ماكرو،[2][7] وغالبًا ما يتم أيضًا دعم التسميات الرمزية لمواقع البرامج والذاكرة.

يُنسب مصطلح المُجمع (بالإنجليزية: assembler)‏ بشكل عام إلى موريس ويلكس وديفيد ويلر وستانلي جيل في كتابهم الصادر عام 1951 بعنوان “إعداد البرامج لجهاز كمبيوتر رقمي إلكتروني” (بالإنجليزية: The preparation of programs for an electronic digital computer)‏،[8] والذي قام باستخدام المصطلح ليعني “برنامج يجمع برنامجًا آخر يتكون من عدة أقسام في برنامج واحد”.[9]

تكون لغة التجميع خاصة بمعمارية حاسوب معينة وأحيانًا بنظام تشغيل معين.[10] ومع ذلك، لا توفر بعض لغات التجميع نحواً محددًا لمخاطبة نظام التشغيل، ويمكن استخدام معظم لغات التجميع عالميًا مع أي نظام تشغيل، حيث توفر اللغة الوصول إلى جميع الإمكانات الحقيقية للمعالج، والتي تعتمد عليها جميع آليات طلبات النظام في النهاية. على عكس لغات التجميع، تكون معظم لغات البرمجة عالية المستوى محمولة بشكل عام عبر بنيات متعددة ولكنها تتطلب تفسير أو تحويل.

تسمى الخطوة الحسابية عندما يقوم المُجمّع بمعالجة برنامج بوقت التجميع.


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

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

لغة الآلة

عبارة عن برنامج حاسوب مكتوب في تعليمات لغة الآلة يمكن تنفيذه مباشرة من خلال وحدة المعالجة المركزية للكمبيوتر (CPU)

شاشة لغة الآلة في الكمبيوتر أحادي اللوحة دبليو دي سي 65816/65802، يُظهر مفكك الكود، وكذلك سجل المعالج ومقالب الذاكرة.

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

تتم كتابة الغالبية العظمى من البرامج العملية اليوم بلغات عالية المستوى أو لغة التجميع. يتم بعد ذلك ترجمة الكود المصدري إلى كود الآله القابل للتنفيذ من خلال الأدوات المساعدة مثل المترجم، والمجمع، والرابط [الإنجليزية]، مع الاستثناء المهم للبرامج المفسرة،[1] التي لا تترجم إلى كود الآلة. ومع ذلك، فإن المترجم نفسه، والذي يمكن أن يُرى كمنفذ أو معالج، يقوم بتنفيذ تعليمات الكود المصدري، عادة ما يتكون من كود آلة قابل للتنفيذ مباشرة (تم إنشاؤه من التجميع أو شفرة مصدر لغة عالية المستوى).

إن كود الآلة هو، بالتعريف، أدنى مستوى من تفاصيل البرمجة المرئية للمبرمج، ولكن العديد من المعالجات تستخدم داخليا الكود المصغر أو تحسن تعليمات كود الآلة وتحولها إلى تتابعات من العمليات المصغرة [الإنجليزية]، وهذا لا يعتبر بشكل عام رمز الآلة في حد ذاته.


مجموعة التعليمات

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

قد تحتوي مجموعة التعليمات الخاصة بالمعالج على كافة التعليمات من نفس الطول، أو قد يكون لها تعليمات متغيرة الطول. تختلف كيفية تنظيم الأنماط اختلافًا كبيرًا مع البنية المحددة، وغالبًا أيضًا مع نوع التعليمة. تحتوي معظم التعليمات على واحد أو أكثر من حقول كود التشغيل التي تحدد نوع التعليمة الأساسية (مثل الحساب، والعمليات المنطقية، والقفز [الإنجليزية]، وما إلى ذلك) والتشغيل الفعلي (مثل إضافة أو مقارنة) والحقول الأخرى التي قد تعطي نوع المعامل، أو وضع العنونة [الإنجليزية]، أو موازنة وتسجيل العناوين، أو القيمة الفعلية نفسها (تسمى هذه المعاملات المستمرة الواردة في التعليمة بـ المعاملية أو instantiates).[2]

ليس كل الآلات أو التعليمات الفردية لها معاملات صريحة. تحتوي الآلة المراكمة [الإنجليزية] على مُجمّع مدمج يسفر عن تراكم ضمني لمعظم التعليمات الحسابية. تشتمل المعماريات الأخرى (مثل 8086 و عائلة x86) على إصدارات من تراكمات التعليمات الشائعة، مع اعتبار جهاز التراكم كأحد السجلات العامة من خلال إرشادات أطول. يحتوي الجهاز المكدس [الإنجليزية] على معظم أو كافة المعاملات الخاصة به على مكدس ضمني. غالبًا ما تحتوي تعليمات الأغراض الخاصة أيضًا على معاملات صريحة (على سبيل المثال، تعمل وحدة المعالجة المركزية في بنية x86 على كتابة القيم في أربعة سجلات للمقصد الضمني). هذا التمييز بين المعاملات الصريحة والضمنية مهم في مولدات الكود، خاصة في أجزاء تخصيص المسجل وتتبع النطاق الحي. يمكن لمُحسِّن الشفرة الجيد أن يتتبع المعامِلات الضمنية والصريحة التي قد تسمح بالانتشار المستمر [الإنجليزية] على نحو متكرر، مع طي مستمر [الإنجليزية] للمسجلات (مسجل يُنسب نتيجة تعبير ثابت يتم تحريره باستبداله بذلك الثابت) وتحسينات أخرى في الكود

نظام الدوت اكس برو

نبذة عن النظام

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

مزايا النظام

  1. يدعم الربط مع الأجهزة الخاصة بالجرد والميازين الإلكترونية.
  2. الاستعلام عن بيانات الأصناف أثناء التسوّق عبر شاشة البحث السريع بالباركود.
  3. تعدد طرق الدفع المعتمدة (نقد – آجل – شيك – بطائق الكترونية) في فواتير البيع المباشر.
  4. سهولة التعامل مع الأصناف الخدمية (عديمة التكلفة) وربطها بحسابات إيرادات خاصة.
  5. يدعم فكرة الميزانية التقديرية والمقارنة بالميزانية العامة مع مؤشرات الإنحراف.
  6. إمكانية التعامل بعملات متعددة لنفس الحساب.
  7. مرونة في تصميم وطباعة الباركود للأصناف بشكل آلي أو يدوي.
  8. إمكانية استيراد وتصدير البيانات من وإلى ملفات Excel.
  9. إمكانية ربط النظام بخدمة الإشعارات عبر الرسائل القصيرة SMS و WhatsApp.
  10. دعم التعامل مع أمانات العملاء من البضائع التي لم يتم صرفها من المخزن بعد.
  11. إمكانية ترحيل العمليات المحاسبية آلياً أو يدوياً.
  12. يدعم فكرة الاستيراد والتصدير بين المستندات والتقارير لتسهيل الإستفادة من البيانات.
  13. دعم كامل للمهرجانات والعروض التسويقية.
  14. ربط الأصناف بموردين محددين.
  15. ميزة تكوين صنف جديد من أصناف أولية
تصميم موقع كهذا باستخدام ووردبريس.كوم
ابدأ