# برمجة سي/ما تحتاجه قبل أن تتعلم
## البدء

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

### المهارات والخبرة السابقة التي ستحتاجها

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

### البرامج التي ستحتاجها

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

###### المترجم

المترجم هو برنامج معقد لتحويل أكواد لغة سي الذي تكتبها باستخدام محرر النصوص الخاص بك إلى ملف لغة الآلة والتي يُمكنك تنفيذها على جهاز الكمبيوتر الخاص بك. يوجد أدناه قائمة ببعض المترجمات المشهورة للغة سي. لاحظ أن بعض المترجمات المدرجة أدناه تأتي كجزء من بيئة التطوير المتكاملة (IDE). ومع ذلك، إذا كنت جديدًا في البرمجة، فمن الأفضل أن تتمكن من تثبيت وتشغيل المترجم من سطر الأوامر بدلاً من برامج بيئة التطوير المتكاملة. يستخدم هذا الكتاب مترجم جنو لغة سي (بالإنجليزية: GNU C Compiler) في الأمثلة لذلك نوصي بتثبيت هذا المترجم لاستخدامه مع هذا الكتاب. سيشرح القسم التالي في هذا الفصل كيفية تنزيل هذا المُترجم وتثبيته على جهازك.
المترجمات المشهورة للغة سي/يتضمن أيضًا برامج بيئة التطوير المتكاملة:
| الاسم | الموقع | المنصة | الترخيص | التفاصيل |
| مايكروسوفت فيجوال ستوديو كوميونيتي | فيجوال ستوديو | الويندوز | ملكية، بدون مقابل | إصدار قوي وسهل للطلاب من مترجم قياسي. |
| إكس كود | إكس كود | ماك أو إس | ملكية، بدون مقابل | متوفر مجانًا في متجر تطبيقات الماك. |
| مترجم سي المصغر (TCC) | مترجم سي مصغر | جنو/لينكس، الويندوز | رخصة جنو العمومية الصغرى | مترجم صغير وسريع وبسيط. |
| كلانج | كلانج | جنو/لينكس، ويندوز، يونكس، ماك أو إس | جامعة إلينوي/رخصة إن سي أس أيه | واجهة أمامية مجانية ومرخصة بشكل مسموح والتي تستخدم أدوات إل إل في إم (بالإنجليزية: LLVM). |
| مترجم جنو لغة سي | جنو سي سي | MinGW لـ جنو ولينكس أو mingw-w64 لكلاً من الويندوز، يونكس، ماك أو إس. | رخصة جنو العمومية | الأساسي بحكم الأمر الواقع. يأتي مُضمنًا مع معظم الأنظمة الشبيهة بـ يونكس. |

###### محررات النصوص وبيئات التطوير المتكاملة

بغض النظر عن المُترجم، فإن مُتطلبات البرنامج الأخرىَ الوحيدة هي مُحرر النصوص لكتابة وحفظ كود اللغة سي الخاص بك. لاحظ أن مُحرر النصوص يختلف عن مُعالج الكلمات، وهو برنامج يحتوي على العديد من الميزات لإنشاء المستندات الجذابة بصريًا. على عكس معالجات الكلمات، تم تصميم برامج تحرير النصوص بشكل أساسي لإنشاء ملفات نصية عادية. في نظام الويندوز، يمكنك استخدام محرر النصوص نوت-باد، ولكنه لا يقدم أي إمكانيات متقدمة مثل تعليم الصيغة وإكمال الأكواد البرمجية. هناك المئات من برامج تحرير النصوص (راجع قائمة محررات النصوص). من أشهرها نوتباد++ لنظام التشغيل ويندوز وكذلك أتوم، سابليم تكست، جي إديت و فيم و إيماكس والتي يُمكنك تحميلها على أنظمة التشغيل الأخرى ("متعددة المنصات"). تأتي محررات النصوص هذه مع تعليم الصيغة وأرقام الأسطر، مما يسهل قراءة الأكواد البرمجية في لمح البصر، واكتشاف أخطاء الأكواد. يحتوي العديد من محرري النصوص على ميزات لزيادة سرعة التكويد، مثل وحدات الماكرو المحددة للمفاتيح والأكواد البرمجية الجاهزة، والتي يمكنك الاستفادة منها عندما تكتسب المهارة كمبرمج.
قد تفكر أيضًا في استخدام بيئة تطوير متكاملة (IDE) لمساعدتك في كتابة التعليمات البرمجية. بيئة التطوير المتكاملة عبارة عن مجموعة من الأدوات والميزات المدمجة في حزمة واحدة ملائمة، وعادة ما تكون مع واجهة مستخدم رسومية. تتضمن هذه البرامج محرر نصوص ومستعرض ملفات، كما يتم أحيانًا تجميعها مع مترجم يَسهل الوصول إليه. كما أنها تتضمن عادةً مُصحح أخطاء، وهي أداة ستمكنك من القيام بأشياء مثل الخطو خلال البرنامج الذي تقوم بتطويره يدويًا سطر كود مصدر بسطر، أو بتغيير البيانات كمساعدة في العثور على الأخطاء البرمجة وتصحيحها.
ومع ذلك، فإن العديد من بيئات التطوير المتكاملة لا تقدم واجهة سطر أوامر للمترجم أو تقدم فقط أزرار رسومية أو قائمة لتنفيذ البرامج. لذلك بالنسبة للمبرمجين الجدد، فإن بيئة التطوير المتكاملة ليس مثالية. بدلاً من ذلك، سيكون محرر النصوص بسيط بشكل كافي إلى جانب القدرة على إصدار أوامر بسيطة في سطر الأوامر لمساعدتك على اكتساب المعرفة العملية وفهم أدوات التطوير الأساسية. بالطبع، قد تظل بيئة التطوير المتكاملة مفيدة لك إذا كانت لديك خبرة في إحداها. ولكن كمبدأ عام: لا تستخدم بيئة التطوير المتكاملة إلا إذا كنت تعرف ما تفعله بيئة التطوير المتكاملة من أجلك!
المترجمات المشهورة/برامج بيئة التطوير المتكاملة:
| الاسم | الموقع | المنصة | الترخيص | التفاصيل |
| إكلبس | إكلبس | ويندوز، ماك أو إس، جنو/لينكس | مجاني أو حر ومفتوح المصدر | إكلبس لتطوير سي/سي ++، وهو بيئة تطوير متكاملة مشهورة مفتوحة المصدر. |
| نت بينز | نت بينز | منصات-متعددة | رخصة التطوير والتوزيع المشترك و رخصة جنو العمومية 2.0 | بيئة تطوير متكاملة بشكل جيد بالمقارنة مع إكلبس. |
| جنوم بيلدر | جنوم بيلدر | جنو/لينكس | رخصة جنو العمومية | بيئة تطوير متكاملة غنية بالميزات ولكنها بسيطة لبيئة نظام جنوم. |
| أنجوتا | أنجوتا | جنو/لينكس | رخصة جنو العمومية | بيئة تطوير متكاملة اعتمادًا على جتك + 3 قابلة للتوسيع لبيئة نظام جنوم. |
| جيني | جيني | منصات-متعددة | رخصة جنو العمومية | A lightweight cross-platform GTK+ notepad based on Scintilla, with basic IDE features. |
| KDevelop | KDevelop | Cross-platform | GPL | A cross-platform IDE for the KDE project. |
| Little C Compiler (LCC) | lcc | Windows | Open Source but not Libre | Small open source compiler. |
| Pelles C | Pelles C | Windows, Pocket PC | Proprietary, free of charge | A complete C development kit for Windows. |
| ديف سي++ | Dev C++ | Windows | GPL | Updated version of the formerly popular Bloodshed Dev-C++. |
| CodeLite | CodeLite | Cross-platform | GPL 2 | Free IDE for C/C++ development. |
| Code::Blocks | Code::Blocks | Cross-platform | GPL 3.0 | Built to meet users' most demanding needs. Very extensible and fully configurable. |
في جنو/لينكس، يتم تضمين جنو سي سي (مترجم جنو لغة سي - (بالإنجليزية: GNU C Compiler)) دائمًا تقريبًا.
في مايكروسوفت ويندوز، يوصى باستخدام ديف سي++ للمبتدئين لأنه سهل الاستخدام ومجاني وسهل التثبيت. على الرغم من أن المطور الأول (اسمه:Bloodshed) لم يحدّثه منذ 2005، ظهرت نسخة جديدة في 2011، يطورها (اسمه:Johan Mes)، توقف تطوير هذه النسخة بعام 2020. بدأت الشركة امباركاديرو تكنولوجيز بتطوير النسخة الثالثة والأخيرة حاليًا من البرنامج من العام 2020 إلى الوقت الحالي. خيار بديل لأولئك الذين يعملون فقط في بيئة ويندوز هو فيجوال ستوديو كوميونيتي وهو مجاني ويحتوي على مصحح أخطاء ممتاز.
في نظام الماك، توفر بيئة التطوير المتكاملة "إكس كود" المجمعات اللازمة لتجميع ملفات المصدر المختلفة. لا تتضمن الإصدارات الأحدث أدوات سطر الأوامر. يجب تنزيلها عبر إكس كود-> التفضيلات-> التنزيلات.

## المراجع

* ↑ في الحقيقة، جنو سي سي (مترجم جنو لغة سي - (بالإنجليزية: GNU C Compiler)) سي سي (مترجم سي - (بالإنجليزية: C Compiler)) يترجم الملف المُدخل بصيغة .c إلى لغة المُجمع الخاصة بالمعالج المركزي، يأتي المُخرج بملف بصيغة .s . ومن ثم يقوم المُجمع بإنشاء أكواد لغة الآله من الملف .s . تتم المعالجة المسبقة بواسطة برنامج فرعي آخر سي بي بي (المعالج المُسبق لسي - (بالإنجليزية: C PreProcessor)).
* ↑ http://www.bloodshed.net/
* ↑ http://orwelldevcpp.blogspot.com/
* ↑ https://www.embarcadero.com/free-tools/dev-cpp