# لغة البرمجة سي (كتاب)

لغة البرمجة سي (بالإنجليزية: The C Programming Language)‏ (أحيانا يشار إليه بـ K&R نسبة للأحرف الأولى من اسم المؤلفين) هو كتاب مشهور عن برمجة الحاسوب من تأليف بريان كيرنيغان ودينيس ريتشي، ولقد صمم ونفذ في الأصل لغة البرمجة سي، كما شارك في تصميم يونكس نظام التشغيل الذي كان تطوير اللغة متشابكًا معه بشكل وثيق. حيث كان الكتاب محوريًا في تطوير وتعميم لغة سي، ولا يزال يُقرأ ويستخدم على نطاق واسع حتى اليوم. ونظرًا لأن الكتاب شارك في تأليفه مصمم اللغة الأصلية، ولأن الطبعة الأولى من الكتاب كانت بمثابة المعيار "بحكم الأمر الواقع" للغة، فقد اعتبره الكثيرون كتابًا مميزًا. والمرجع الرسمي على سي.
يُعتبر هذا الكتاب في نظر الكثيرين بأنه المرجع الموثوق للغة سي.
صدرت الطبعة الأولى من الكتاب في عام 1978. وفي عام 1988 صدرت الطبعة الثانية من الكتاب وتم ترجمتها إلى 20 لغة مختلفة.

## التاريخ

تم إنشاء لغة سي بواسطة "دينيس ريتشي" في بيل لابس بأوائل السبعينيات كنسخة معززة من "كين طومبسون". و قام موظف آخر في بيل لابس، بكتابة أول برنامج تعليمي للغة سي، وأقنع ريتشي بالمشاركة في تأليف كتاب عن اللغة. وكتب كيرنيغان معظم المواد "التفسيرية" للكتاب، وأصبح دليل ريتشي المرجعي.
الطبعة الأولى، التي نشرت في 22 من فبراير 1978، كانت أول كتاب متاح على نطاق واسع عن لغة البرمجة سي. ةيُطلق على نسخته من لغة سي أحيانًا اسم K&R C (على اسم مؤلفي الكتاب)، وغالبًا لتمييز هذه النسخة المبكرة عن الإصدار الأحدث من لغة الموحدة كـ ANSI سي.
وفي أبريل 1988، نشرت الطبعة الثانية من الكتاب، وحدثت لتغطية التغييرات في اللغة الناتجة عن معيار "ANSI سي" الجديد آنذاك، وخاصة مع تضمين المواد المرجعية على المكتبات القياسية. حيث تمت ترجمة الطبعة الثانية من الكتاب (و اعتبارًا من الأحدث) ومنذ ذلك الحين إلى أكثر من 20 لغة. وفي عام 2012، نشرت نسخة الكتاب الإلكتروني من الطبعة الثانية بتنسيقات مجلة وموبي وبي دي إف.
وحدت لغة سي لأول مرة في عام 1989 (باسم ANSI X3.159-1989) ومنذ ذلك الحين خضعت لعدة مراجعات. ومع ذلك لم تصدر أي طبعة جديدة من لغة البرمجة سي لتغطية المعايير الأحدث.

## الاستقبال

في أغسطس 1983، أفادت مجلة بايت بأن كتاب "لغة البرمجة سي" هو عملٌ تامّ الوضوح عن لغة البرمجة سي، فلا يلزمك قراءة كتب أخرى طالما لديك هذا الكتاب! كتب جيري بورنيل في المجلة في ذلك العام أن الكتاب "لا يزال هو المعيار ... لكنه مقتضب بعض الشيء". وتابع: "يمكنك تعلم لغة C دون الحصول على كتب كيرنيغان وريتشي، ولكن هذا يعني التعلّم بالطريقة الصعبة. كما ستبذل جهداً كبيراً إذا اعتمدته الكتاب "الوحيد" عن لغة C."

## التأثير

غالبًا ما يتم الاستشهاد بكتاب "لغة البرمجة سي" كنموذج لـ الكتابة التقنية، حيث وصفه المراجعون بأنه يتميّز بالعرض الواضح والمعالجة الموجزة. وتتكون الأمثلة بشكل عام من برامج كاملة من النوع الذي من المحتمل أن نواجهه في الاستخدام اليومي للغة، مع التركيز على برمجة النظام. حيث قال مؤلفوا الكتاب:
   لقد حاولنا الحفاظ على إيجاز الطبعة الأولى. ولكن لغة سي ليست لغة كبيرة، ولا يخدمها كتاب كبير بشكل جيد. ولقد حسّنّا عرض الميزات الهامة، مثل المؤشرات، التي تعتبر أساسية في برمجة سي. ولقد حسّنّا الأمثلة الأصلية، وأضفنا أمثلة جديدة في عدة فصول. على سبيل المثال، يتم تعزيز معالجة الإعلانات المعقدة من خلال البرامج التي تحول الإعلانات إلى كلمات والعكس صحيح. وكما كان من قبل، حيث اختبرت كافة الأمثلة مباشرة من النص، والذي يمكن قراءته بواسطة الآلة.
قدم الكتاب برنامج "مرحبًا بالعالم!"، والذي يطبع النص "مرحبا بالعالم" فقط، كمثال توضيحي للحد الأدنى من برنامج سي. ومنذ ذلك الحين، اتبعت العديد من النصوص هذا التقليد لتقديم لغة البرمجة.
قبل ظهور "ANSI C"، كانت الطبعة الأولى من النص بمثابة المعيار الفعلي للغة كتاب مترجمي لغة سي. مع توحيد ANSI C، وزيادة وعي طريقة عمل المؤلفين، أصبحت الطبعة الثانية للمبرمجين بدلاً من اقتصارها على ترجمة اللغة؛ ويشير المؤلفون إلى أن:
   الملحق أ، هو الدليل المرجعي، وليس هو المعيار، ولكنه كان محاولتنا لنقل أساسيات المعيار إلى مساحة أصغر. وإنه مخصص لتسهيل فهم المبرمجين له، ولكن ليس كتعريف لكتاب المترجمين، فهذا الدور ينتمي بشكل صحيح إلى المعيار نفسه. والملحق ب هو ملخص لمرافق المكتبة القياسية. وهو أيضًا مخصص كمرجع للمبرمجين، وليس للمنفذين. أما الملحق ج فهو ملخص موجز للتغييرات من الإصدار الأصلي.
أثّر كتاب "لغة البرمجة سي" على المبرمجين الذين عمل جيل منهم لأول مرة بلغة البرمجة سي في الجامعات والصناعة، مما دفع الكثيرين إلى قبول أسلوب برمجة المؤلفين واتفاقياتهم كممارسة موصى بها، هذا في حين إن لم تكن ممارسة معيارية. وعلى سبيل المثال، غالبًا ما يُشار إلى أسلوب الترميز والتنسيق للبرامج المقدمة في كلا الإصدارين من الكتاب باسم "نمط K&R" أو "نمط المسافة البادئة" وأصبح أسلوب الترميز يتم استخدامه بشكل تقليدي في الكود المصدري لـ يونيكس ونظام التشغيل.