stanford-oval/wikipedia huggingface dataset:
توليد مشترك

محطة توليد مشترك في إستونيا
التوليد المشترك هو توليد الطاقة الكهربائية والحرارة معًا، وهي تقنية توظف الحرارة المولدة بمحطات توليد الطاقة الكهربائية في آن توليدها، من خلال توزيعها على مصانع أو بيوت محيطة، وهي من وسائل الحفاظ على البيئة حيث تستغل قدرا أكبر من الطاقة المولدة مقارنة بالمحطات التقليدية (التي تستغل الكهرباء فقط)، حيث أن جل الطاقة المولدة من الدورات الحرارية تكون في هيئة حرارة لا حركة (كهرباء).
عن طريق طاقة حركة واستغلالها عادة لتوليد الكهرباء، يمكن التوفيق بين إنتاج الكهرباء و الماء السخن في نفس الوقت واستغلال الماء الساخن مثلا لتدفئة البيوت في المناطق الباردة أو استغلاله في العمليات الكيميائية في المصانع التي تحتاج إلى الماء الساخن في عملية الإنتاج . هذه الطريقة تعمل على تعلية كفاءة محطات القوى الكهربائية التي تعمل بالمحروقات (مثل الفحم والبترول والغاز أو القمامة )بأن لا يـُقتصر إنتاجها على الطاقة الكهربائية فقط بل يستغل بجانبه الماء الساخن للاستفادة منه، عند درجات حرارة 70 درجة مئوية مثلا، بدلا من بعثرة ماء ساخن بدرجة 30 درجة مئوية ورميها في الأنهار أو البحار .
الفكرة الأساسية لطريقة عمل محطة تنتج الكهرباء والماء الساخن: MD توربين بخاري عالي الضغط //ND توربين يعمل بالضغط المنخفض // KoP مكثف ينتج ماء عند 100 درجة مئوية ترسل إلى البيوت // G مولد كهربائي لتوليد التيار الكهربائي .
ويُهتم بتطبيق تلك الطريقة في محطات الكهرباء التي تعمل بالطاقة النووية . حيث تُرفع الكفاءة الإنتاجية للمحطة بإنتاج الماء الساخن إلى جانب الكهرباء وتوزيعهما والاستفادة منهما. وهي عملية استغلال جزء من الطاقة الحرارية بدلا من رميها وفقدها .
ونظرا للتكاليف الباهظة لبناء شبكة أنابيب لتوزيع الماء الساخن على البيوت والمصانع، تتخاذل معظم محطات توليد القوى الكهربائية عن هذا التوليد المزدوج للكهرباء والماء الساخن، وتكتفي بتوليد الكهرباء فقط على حساب البيئة . لأن التخلص من مياه درجة حرارتها 30 درجة مئوية في الأنهار والبحار بغزارة كبيرة ليس من سبل المحافظة على البيئة .
بالمقارنة بالمحطات المنتجة للكهرباء فقط أو المنتجة للماء الساخن فقط، تستفيد محطات التعشيقة الكهربائية بنسبة أعلى من المصادر الأولية للطاقة حيث تصل كفاءتها الإجمالية (كهرباء + ماء ساخن) إلى نحو 90% .
نظرة عامة

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

يوضح الرسم اعلاه طريقة عمل التعشيقة الكهربائية الحرارية . يسحب البخار الساخن MD بعد مروره وتشغيله التوربين ، أي قبل مروره في توربين الضغط البخاري المنخفض ND ، يسحب ويوجه إلى مكثف البخار الساخن HK حيث يفقد جزءا من حرارته وينتج ماء ساخنا عند درجة 100 مئوية تقريبا . ومن هنا ينتج الماء الساخن ويوزع في شبكة أنابيب الماء الساخن لتموين البيوت والمصانع . أما بقية البخار فهو يعمل على تحريك توربين الضغط البخاري المنخفض ND الذي يدير المولد الكهربائي G ، ومنه إلى طلمبة المكثف KoP حيث تنخفض درجة حرارته إلى نحو 25 درجة مئوية، ويتجمع في خزان الغلاية التي تعمل بالفحم (ليست مصورة هنا ) لإعادة تسخينه من جديد، ثم تتكرر العملية .
ويوضح الرسم البياني على اليمين العلاقة بين درجة الحرارة T و الإنتروبية S ، وذلك في حالة تشغيل التعشيقة بحيث تنتج 50 % من طاقتها الكهرباء و 50 % ماء ساخن . تعطينا المساحة الصفراء كمية الحرارة التي تتحول إلى كهرباء . وتعطينا المساحة الحمراء في الرسم البياني كمية الحرارة المستغلة للماء الساخن، كما يبين الجزء الأعلى من ذلك المربع (البني اللون ) الجزء الصغير المفقود من الكهرباء بسبب السحب الجزئي للبخار قبل توربين الضغط المنخفض ND.
بذلك تعلو الكفاءة الإنتاجية الإجمالية للمحطة ـ وتقل كمية الحرارة المفقودة في الجو.
محطة تعشيقة كهربائية حرارية

أنشأت إحدي المحطات التي تعمل بالغاز الطبيعي وتنتج 130 ميجاواط من الكهرباء، وتقوم في نفس الوقت بإنتاج الماء الساخن ( درجة حرارته 75 درجة مئوية) بطاقة قدرها 90 ميجاواط . وهي تستغل الطاقة الناتجة من الغاز الطبيعي بكفاءة قدرها 90 %. وبهذه الطريقة توفر المحطة نحو 200.000 طن من ثاني أكسيد الكربون ، وتساعد بذلك في المحافظة على البيئة .
مقارنة عددية بين الماضي والحاضر:
كفاءة المحطة التي تنتج الكهرباء فقط بواسطة احتراق الفحم الحجري كانت تعادل في الماضي 35%،
محطة التعشيقة الكهربائية الحرارية الحديثة، التي تعمل بالغاز الطبيعي وتنتج الكهرباء والماء الساخن :
تعشيقة كهربائية حرارية وتبريد

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

توليد كهرباء
شبكة حرارية
كفاءة حرارية
دورة حركة حرارية
محرك حراري
توربين غازي
توربين بخاري
محرك غازي
مراجع

↑  المركز الوطني لبحوث الطاقة - الأردن  نسخة محفوظة 14 سبتمبر 2014 على موقع واي باك مشين.
↑  "Consider Installing High-Pressure Boilers With Back Pressure Turbine-Generators" (PDF). nrel.gov. مؤرشف (PDF) من الأصل في 2016-12-21. اطلع عليه بتاريخ 2018-04-28.
↑  Steam-its generation and use. Babcock & Wilcox. مؤرشف من الأصل في 2020-03-07.
| ع ن طاقة | ع ن طاقة |
| --- | --- |
المفاهيم الأساسية:  علم الطاقة  طاقة وحدات القياس  قوانين الديناميكا الحرارية  كتلة  قدرة  تحول الطاقة 
طاقة أولية:  طاقة كيميائية  وقود أحفوري فحم حجري  نفط  غاز طبيعي  طاقة وضع الجاذبية  طاقة حركية  وقود نووي Natural uranium  طاقة مغناطيسية  طاقة إشعاعية  طاقة شمسية  طاقة حرارية  ريح  طاقة حيوية  طاقة مائية  الطاقة البحرية  طاقة حرارية جوفية 
ناقلات الطاقة:  زيت الوقود  محتوى حراري  حرارة  شغل   كهرباء  طاقة وضع مرونية 
أنظمة الطاقة:  تكرير النفط  محطة طاقة وقود أحفوري توليد مشترك  Integrated gasification combined cycle  طاقة نووية محطة نووية  بطارية نظائر مشعة  توليد الكهرباء من طاقة الشمس مصفوف ضوئي جهدي  طاقة شمسية مركزة  طاقة شمسية حرارية برج الطاقة الشمسية  فرن شمسي  طاقة رياح مزرعة الرياح  High-altitude wind power  طاقة مائية طاقة كهرمائية  Wave farm  طاقة المد والجزر  كتلة حيوية  كهرباء حرارية أرضية 
| 0 | 1 |
| --- | --- |
ضبط استنادي: وطنية :  المكتبة الوطنية الفرنسية (BnF)  الملف الاستنادي المتكامِل (GND)  المكتبة القومية الإسرائيلية (J9U)  مكتبة الكونغرس (LCNAF)  مكتبة البرلمان القومي الياباني (NDL)  قاعدة البيانات الوطنية التشيكية (NLCR AUT) 
بوابة كهرطيسية
بوابة تنمية مستدامة
بوابة طاقة
بوابة طاقة متجددة
بوابة طبيعة
بوابة علم البيئة
أعراف البرمجة

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

يعد تقليل تكلفة صيانة البرامج السبب الأكثر ذكرًا لقواعد التعليمات البرمجية التالية. في مقدمتها لقواعد التعليمات البرمجية الخاصة بلغة برمجة Java، توضح Sun Microsystems الأسس المنطقية التالية:
تكون قواعد التعليمات البرمجية مهمة للمبرمجين وذلك لعدة أسباب:
تكون نسبة 80% من تكلفة وقت التشغيل لعينة برامج موجهة إلى الصيانة.
قلما ما تتم صيانة برامج بواسطة المؤلف الأًصلي طوال فترة تشغيلها.
تعمل قواعد التعليمات البرمجية على تحسين قابلية قراءة البرامج مما يتيح للمهندسين استيعاب التعليمة البرمجية الجديدة بصورة أسرع وبشكل كامل.
في حالة قيامك بشحن التعليمة برمجية المصدر في صورة منتج، فإنك تكون بحاجة إلى التأكد من تعبئتها بصورة جيدة ومن نظافتها مثلها في ذلك مثل أي منتج أنشأته.
صيانة البرامج > الجودة

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

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

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

يجب على جميع العاملين في مجال البرامج وضع أيديهم على المشكلات المتعلقة بتنظيم الإرشادات الأكثر تفصيلاً وإدارتها، حيث ستتم معالجة كل منها في آخر الأمر بهدف تنفيذ المهمة التي كُتبت من أجلها. يتم تقسيم التعليمة برمجية المصدر (الإرشادات) إلى ملفات منفصلة وبين عدة دلائل غالبًا وذلك بالنسبة لجميع مشروعات البرامج، باستثناء الأصغر منها. كان طبيعيًا بالنسبة للمبرمجين تجميع الوظائف ذات الصلة الشديدة (الأساليب) في الملف نفسه وتجميع الملفات ذات الصلة داخل دلائل. ونظرًا لكون تطور البرامج قد نشأ من برمجة إجرائية مجردة (مثلما هو موجود في فورتران) تجاه تراكيب توجهها الأهداف بصورة أكثر (مثلما هو موجود في سي++)، فقد أصبحت الممارسة هي كتابة تعليمة برمجية لفئة واحدة (عمومية) في ملف فردي (قاعدة «فئة واحدة لكل ملف»).
ارتقت جاوة (جزيرة) إلى خطوة واحدة أعلى - حيث قام المحول البرمجي لـ Java بإعادة خطأ في حالة وجود أكثر من فئة عمومية واحدة لكل ملف.
ربما يكون وجود قاعدة في لغة واحدة مطلبًا في أخرى. تقوم قواعد اللغة بالتأثير أيضًا على ملفات المصدر الفردية. يكون كل محول برمجي (أو مترجم) تتم الاستعانة به لمعالجة تعليمة برمجية المصدر فريدًا. تقوم القواعد التي يطبقها المحول البرمجي على المصدر بإنشاء معايير ضمنية. على سبيل المثال، تكون المسافة البادئة موجودة بشكل أكثر مع التعليمة البرمجية Python مقارنة بالتعليمة البرمجية Perl مثلاً نظرًا لكون المسافة البيضاء (المسافة البادئة) مهمة في حقيقة الأمر للمترجم. لا تستعن Python ببناء الجمل في أقواس كبيرة مثلما هو الحال في Perl لتحديد الوظائف. تعمل التغييرات في المسافة البادئة كمحددات. لا تسمح Tcl التي تستعن ببناء الجمل في أقواس كبيرة مشابهة لـ Perl أو C/C++ لتحديد الوظائف بالأمور التالية والتي تبدو منطقية بصورة واضحة لمبرمج C:
set i 0
while {$i < 10} 
{
puts "$i squared = [expr $i*$i]"
incr i
}
يكون السبب في عدم استخدام الأقواس الكبيرة بشكل مجعد في Tcl وذلك لتحديد الوظائف فقط كما هو الحال في C أو Java. يتم استخدام الأقواس الكبيرة بشكل مجعد لتجميع كلمات معًا داخل وسيطة فردية وذلك بشكل أكثر عمومًا.
في Tcl تأخذ الكلمة بينما وسيطتين وشرط وإجراء. في المثال الموضح أعلاه، تفقد الكلمة بينما وسيطتها الثانية والإجراء الخاص بها (نظرًا لقيام Tcl باستخدام خاصية خط جديد أيضًا لتحديد نهاية الأمر).
القواعد العامة

كما هو موضح أعلاه، ربما تغطي قواعد التعليمات البرمجية العامة المجالات التالية:
قواعد التعليقات
قواعد أسلوب المسافة البادئة
قواعد التسمية
ممارسات البرمجة
مبادئ البرمجة
قواعد الإبهام الخاصة بالبرمجة
قواعد نمط البرمجة
أمثلة > يجب أن تظهر عبارة واحدة فقط لكل سطر

على سبيل المثال، في جاوة (جزيرة) ربما يتضمن هذا وجود عبارتين مكتوبتين كالآتي:
a++;
b = a;
ولكن ليس كما يلي:
a++; b = a;
أمثلة > قيم منطقية في هياكل القرارات

يقترح بعض المبرمجين أن التعليمات البرمجية حيث تكون نتيجة القرار مجرد حساب لقيمة منطقية فإنها تكون إسهابات مفرطة وعرضة لأخطاء. وبالتالي يفضل المبرمجون امتلاك القرار في الحساب نفسه كالآتي:
return (hours < 24) && (minutes < 60) && (seconds < 60);
الاختلاف هنا أسلوبي تمامًا لأن الاستفادة المثلى من المحللين البرمجيين ربما تنتج تعليمة برمجية لكائن لكلا النموذجين. بالرغم من ذلك يوجد بصورة أسلوبية اختلاف بين المبرمجين حول أي من النموذجين هو الأسهل في القراءة والصيانة.
تتضمن المناقشات التي تكون في صالح النموذج الأطول ما يلي: من الممكن تحديد نقطة توقف لكل خط على فرع واحد من القرار، كما يمكن إضافة خطوط إضافية للتعليمة البرمجية إلى فرع واحد دون إعادة بناء التعليمات البرمجية لخط العودة، مما يزيد من فرص الأخطاء التي يتم تقديمها كما سيسمح دومًا النموذج الأطول لمصحح الأخطاء بالتخطي إلى سطر لا تزال فيه المتغيرات التي تم استخدامها في النطاق.
أمثلة > مقارنات اليد اليسرى

في اللغات التي تستخدم رمزًا واحدًا (عادة ما يكون علامة يساوي فردية، (=)) لـ مهمة ورمزًا آخرًا (عادة ما يكون علامة يساوي زوجية، (==) لـ مقارنة (مثل ]]C/C++]]، جاوة (جزيرة)، أكشن سكربت، بي إتش بي، بيرل سياق رقمي وأغلب اللغات في 15 عامًا الماضية)، وحيثما تكون هناك إمكانية لتنفيذ المهام ضمن هياكل تحكم توجد ميزة لتبني نمط المقارنة على اليسار: لوضع ثوابت أو تعبيرات إلى اليسار في أي مقارنة.
فيما يلي كلا النمطين من المقارنات على اليسار وعلى اليمين المطبقة على سطر التعليمة البرمجية بيرل. تقوم هذه المقارنة في كلتا الحالتين بمقارنة القيمة المتغير $a مقابل 42، وفي حالة توافقها، يتم تنفيذ التعليمة البرمجية في المجموعة التالية.
if ( $a == 42 ) { ... } # A right-hand comparison checking if $a equals 42.
if ( 42 == $a ) { ... } # Recast, using the left-hand comparison style.
يحدث الاختلاف عند قيام المطور بكتابة = بدلاً من == دون قصد:
if ( $a = 42 ) { ... } # Inadvertent assignment which is often hard to debug
if ( 42 = $a ) { ... } # Compile time error indicates source of problem
السطر الأول (على اليمين) على خلل دقيق كامن: وبخلاف الأسلوب السابق، يتم تحديد قيمة $a لتكون 42، ثم يتم تشغيل التعليمة البرمجية دومًا في المجموعة التالية. نظرًا لكون هذا صحيحًا من الناحية الإنشائية، فإنه ربما لا تتم ملاحظة الخطأ بواسطة المبرمج وربما يتم شحن البرنامج وهو محتوٍ على خطأ.
يحتوي السطر الثاني (على اليسار) على خطأ دلالي حيث لا يمكن تخصيص قيم رقمية له. سوف ينتج عن هذا إنشاء رسالة تشخيصية عند إجراء التحليل البرمجي للتعليمة البرمجية وبالتالي لا يمكن عدم ملاحظة الخطأ بواسطة المبرمج.
تحتوي بعض اللغات على وسائل حماية مضمنة ضد المهام غير المتعمدة. على سبيل المثال، لا تدعم جاوة (جزيرة) وC التحويل التلقائي للقيمة المنطقية فقط لهذا السبب.
يمكن أيضًا التقليل من حجم المخاطر من خلال استخدام أدوات تحليل التعليمات البرمجية الثابتة والتي يمكنها اكتشاف هذه المشكلة.
أمثلة > هياكل التحكم والحلقية

يشكل استخدام هياكل التحكم المنطقية مضافًا إليها الهياكل الحلقية نمط برمجة جيدًا أيضًا. فهو يساعد الأشخاص في قراءة التعليمة البرمجية لفهم تسلسل تنفيذ البرنامج بصورة أفضل (في لغات برمجة الأوامر). على سبيل المثال، في التعليمات البرمجية المستعارة:
i = 0
 
while i < 5
print i * 2
i = i + 1
end while
 
print "Ended loop"
يكون جزء التعليمة البرمجية المتكررة متوافقًا مع إرشادات نمط التسمية والمسافات البادئة، لكن ربما يعتبر الاستخدام التالي للتركيب "for" أسهل في القراءة:
for i = 0, i < 5, i=i+1
print i * 2
 
print "Ended loop"
يمكن في العديد من اللغات قصر النمط «لكل عنصر في نطاق» شائع الاستخدام إلى:
for i = 0 to 5
print i * 2
 
print "Ended loop"
أما في لغات البرمجة التي تسمح بالأقواس الكبيرة، فقد أصبح من الشائع لمستندات الأسلوب أن تطلب ذلك حينما يكون اختياريًا، ويتم استخدام الأقواس الكبيرة مع جميع التراكيب تدفق التحكم.
for (i = 0 to 5) {
print i * 2;
}
 
print "Ended loop";
يمنع هذا حدوث أخطاء في البرامج يمكن أن تستنفذ وقتًا في تتبعها، مثل وضع فاصلة منقوطة انتهائية في نهاية التركيب (خطأ هجائي شائع):
for (i = 0; i < 5; ++i);
    printf("%d\n", i*2);    /* The incorrect indentation hides the fact 
                               that this line is not part of the loop body. */
 
 printf("Ended loop");
...أو عندما تتم إضافة سطر آخر قبل الأول:
for (i = 0; i < 5; ++i)
    fprintf(logfile, "loop reached %d\n", i);
    printf("%d\n", i*2);    /* The incorrect indentation hides the fact 
                               that this line is not part of the loop body. */
 
 printf("Ended loop");
أمثلة > القوائم

يتم وضع عناصر في قائمة على أسطر منفصلة، وتعتبر إضافة الفاصلة بين العناصر بعد العنصر النهائي من الممارسات الجيدة بالإضافة إلى وضعها أيضًا بين كل عنصر على الأقل في تلك اللغات التي يكون فعل ذلك مدعومًا بواسطة بناء الجملة (مثل C، جاوة (جزيرة))
const char *array[] = {
    "item1",
    "item2",
    "item3",  /* still has the comma after it */
};
يمنع هذا وجود أخطاء في بناء الجمل أو أخطاء دقيقة في تركيز السلاسل حيث تتم إعادة ترتيب عناصر القائمة أو إضافة المزيد من العناصر إلى النهائدة دون ملاحظة المبرمج وجود فاصلة«مفقودة» على السطر والتي كانت موجودة قبل ذلك في القائمة. بالرغم من ذلك، يمكن أن يتسبب هذا الأسلوب في وجود أخطاء في بناء الجملة (أو دلالات مضللة) في بعض اللغات. حتى في اللغات التي تدعم الفواصل اللاحقة، فربما لا تدعم جميع التراكيب الإعرابية الشبيهة بالقوائم في تلك اللغات ذلك.
انظر أيضا

أسلوب إزاحة
ميسرا سي
أسلوب البرمجة
وصلات خارجية > قواعد الترميز للغات

ActionScript: Flex SDK coding conventions and best practices
Ada: Ada 95 Quality and Style Guide: Guidelines for Professional Programmers
Ada: Guide for the use of the Ada programming language in high integrity systems (ISO/IEC TR 15942:2000)
Ada: NASA Flight Software Branch — Ada Coding Standard
Ada: European Space Agency's Ada Coding Standard (BSSC(98)3)
C: Ganssle Group's Firmware Development Standard
C: Netrino Embedded C Coding Standard
C: Micrium C Coding Standard
C++: Quantum Leaps C/C++ Coding Standard
C++: C++ Programming/Code Style
C++: GeoSoft's C++ Programming Style Guidelines
C++: Google's C++ Style Guide
C#: Design Guidelines for Developing Class Libraries
C#: Microsoft, Philips Healthcare
D: The D Style
Erlang: Erlang Programming Rules and Conventions
Flex: Code conventions for the Flex SDK
GML: Game Maker Language
Java: Ambysoft's Coding Standards for Java
Java: Code Conventions for the Java Programming Language
Java: GeoSoft's Java Programming Style Guidelines
Java: Java Coding Standards على مشروع الدليل المفتوح
Lisp: Riastradh's Lisp Style Rules
Mono: Programming style for Mono
Object Pascal: Object Pascal Style Guide
Perl: Perl Style Guide
PHP::PEAR: PHP::PEAR Coding Standards
Python: Style Guide for Python Code
Ruby: The Unofficial Ruby Usage Guide
Ruby: Good API Design
وصلات خارجية > قواعد الترميز للمشروعات

Apache Developers' C Language Style Guide
Drupal PHP Coding Standards
GNU Coding Standards
Linux Kernel Coding Style (or Documentation/CodingStyle in the Linux Kernel source tree)
ModuLiq Zero Indent Coding Style
Mozilla Coding Style Guide
Road Intranet's C++ Guidelines
The NetBSD source code style guide (formerly known as the BSD Kernel Normal Form)
"GNAT Coding Style: A Guide for GNAT Developers". GCC online documentation. Free Software Foundation. مؤرشف من الأصل في 2018-05-25. اطلع عليه بتاريخ 2009-01-19. (PDF)
بوابة برمجة الحاسوب
بوابة علم الحاسوب
توقيع رقمي

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

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