نوع البيانات المنطقية

جورج بول ، الذي سُمّي نوع البيانات باسمه

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

العموميات

في لغات البرمجة التي تتضمن نوع بيانات منطقي (Boolean) مدمجًا، مثل باسكال ، وسي ، وبايثون، وجافا ، تُعرَّف عوامل المقارنة ، مثل >`and`، عادةً لإرجاع قيمة منطقية. ويمكن تعريف أوامر شرطية وتكرارية لاختبار التعبيرات ذات القيم المنطقية.

قد تستخدم لغات البرمجة التي لا تحتوي على نوع بيانات منطقي صريح، مثل C90 و Lisp ، أنواع بيانات أخرى لتمثيل قيم الصواب. تستخدم Common Lisp قائمة فارغة للدلالة على الخطأ، وأي قيمة أخرى للدلالة على الصواب. أما لغة البرمجة C فتستخدم نوع بيانات عدد صحيح ، حيث تُعرَّف التعبيرات العلائقية، مثل i > jالتعبيرات المنطقية المتصلة بـ &&و ، ||بأن قيمتها 1 إذا كانت صحيحة و 0 إذا كانت خاطئة، بينما تُعامل أجزاء الاختبار في ifو whileو forو وما إلى ذلك، أي قيمة غير صفرية على أنها صحيحة. [ 1 ] [ 2 ] في الواقع، يمكن اعتبار المتغير المنطقي (وتنفيذه) كمتغير عددي ذي رقم ثنائي واحد ( بت )، أو كسلسلة بتات طولها واحد، والتي يمكنها تخزين قيمتين فقط. غالبًا ما يتم تمثيل القيم المنطقية في الحواسيب ككلمة كاملة ، وليس بتًا واحدًا؛ ويعود ذلك عادةً إلى طرق نقل الحواسيب لكتل ​​المعلومات.

معظم لغات البرمجة، حتى تلك التي لا تحتوي على نوع منطقي صريح، تدعم العمليات الجبرية المنطقية مثل الاقتران ( AND, &, *والفصل ( OR, |, +والتكافؤ ( EQV, =, ==والحصر أو / عدم التكافؤ ( XOR, NEQV, ^, !=, ¬والنفي ( NOT, ~, !, ¬).

في بعض اللغات، مثل Ruby و Smalltalk و Alice ، تنتمي القيمتان true و false إلى فئات منفصلة ، ​​على سبيل المثال، Trueو False، على التوالي، لذلك لا يوجد نوع منطقي واحد .

في لغة SQL ، التي تستخدم منطقًا ثلاثي القيم للمقارنات الصريحة نظرًا لمعالجتها الخاصة للقيم الفارغة (Null) ، يُعرَّف نوع البيانات المنطقي (الذي تم تقديمه في SQL:1999 ) ليشمل أكثر من قيمتين منطقيتين، بحيث يمكن لقيم SQL المنطقية تخزين جميع القيم المنطقية الناتجة عن تقييم الشروط في SQL. ويمكن تقييد عمود من النوع المنطقي بقيمتين منطقيتين TRUEفقط FALSE.

تطبيقات خاصة بكل لغة

ALGOL ونوع BOOLEAN المدمج

تُعد لغة ALGOL 60 (1960) من أوائل لغات البرمجة التي توفر BOOLEANنوع بيانات صريحًا ، حيث تستخدم القيمتين true و false ، ويتم تمثيل المعاملات المنطقية بالرموز '{\displaystyle \wedge }' (و)، '{\displaystyle \vee }' (أو)، '{\displaystyle \supset }(يشير إلى)،{\displaystyle \equiv }(التكافؤ)، و¬{\displaystyle \neg }(ليس). ومع ذلك، ونظرًا لقيود أجهزة الإدخال ومجموعة الأحرف في العديد من أجهزة الكمبيوتر في ذلك الوقت، فقد استخدمت معظم المترجمات تمثيلات بديلة للعديد من العوامل، مثل ANDأو 'AND'.

تم اعتماد هذا النهج مع نوع البياناتBOOLEAN المدمج (سواء كان بدائيًا أو محددًا مسبقًا) من قبل العديد من لغات البرمجة اللاحقة، مثل Simula 67 (1967) و ALGOL 68 (1970) و Pascal ( 1970 ) و Ada ( 1980) و Java (1995) و C# (2000)، من بين لغات أخرى.

سي، سي++، دي، أوبجكتيف-سي، أوكيه دبليو كيه

لم تُوفر التطبيقات الأولية للغة C (عام 1972) أي نوع منطقي (Boolean)، وحتى يومنا هذا، تُستخدم الأعداد الصحيحة ( intint) لتمثيل القيم المنطقية في برامج C. تُعرَّف عوامل المقارنة ( >، ==، إلخ) لإرجاع intنتيجة عدد صحيح مُوَقَّع ( ) إما 0 (للقيمة الخاطئة) أو 1 (للقيمة الصحيحة). تفترض عوامل التشغيل المنطقية ( &&، ||، !، إلخ) وعبارات اختبار الشروط ( if، while) أن الصفر (وبالتالي مؤشر NULL أو مُنهي السلسلة الفارغ '\0' أيضًا) يُعتبر قيمة خاطئة، وأن جميع القيم الأخرى تُعتبر صحيحة.

بعد إضافة أنواع البيانات المُعدّدة ( s) إلى إصدار المعهد الوطني الأمريكي للمعايير (ANSI C) من لغة C (1989)، اعتاد العديد من مبرمجي C على تعريف أنواعهم المنطقية (Boolean) على هذا النحو، لأسباب تتعلق بسهولة القراءة. مع ذلك، تُعادل أنواع البيانات المُعدّدة الأعداد الصحيحة وفقًا لمعايير اللغة؛ لذا فإن التطابق الفعلي بين القيم المنطقية والأعداد الصحيحة لا يزال ساريًا في برامج C.enum

توفر لغة C القياسية (منذ C99 ) نوعًا منطقيًا يُسمى `Boolean` _Bool. ومنذ C23 ، أصبح `Boolean` نوعًا أساسيًا من البيانات يُسمى `Boolean` bool، بقيم `true` trueو`false` false(كانت هذه القيم تُوفّر سابقًا بواسطة وحدات ماكرو من ملف الرأس ` stdbool.hBoolean`، الذي أصبح الآن قديمًا). تضمن اللغة أن أي قيمتين صحيحتين ستكونان متساويتين (وهو أمر كان مستحيلاً قبل إدخال هذا النوع). لا تزال القيم المنطقية تُعامل كأعداد صحيحة، ويمكن تخزينها في متغيرات عددية صحيحة، واستخدامها في أي مكان تكون فيه الأعداد الصحيحة صالحة، بما في ذلك الفهرسة والحساب والتحليل والتنسيق. وقد تم الحفاظ على هذا النهج ( القيم المنطقية هي مجرد أعداد صحيحة ) في جميع الإصدارات اللاحقة من C. تجدر الإشارة إلى أن هذا لا يعني أنه يمكن تخزين أي قيمة عددية صحيحة في متغير منطقي.

لقد احتوت لغة C++bool على نوع البيانات المنطقية منذ C++98 ، ولكن مع تحويلات تلقائية من القيم العددية والمؤشرات التي تشبه إلى حد كبير تلك الموجودة في لغة C. وقد تم اعتماد هذا النهج أيضًا من قبل العديد من اللغات اللاحقة، وخاصة من قبل بعض لغات البرمجة النصية مثل AWK .

تحتوي لغة البرمجة D على نوع بيانات منطقي (Boolean) bool. هذا boolالنوع عبارة عن نوع بيانات بحجم بايت واحد، ولا يمكنه استيعاب سوى القيمتين true أو false. المعاملات الوحيدة التي تقبل معاملات من نوع bool هي: &، |، ^، &=، |=، ^=،  !، &&، ||، و ?: . يمكن تحويل القيمة ضمنيًا إلى أي نوع عددي صحيح، حيث تصبح false تساوي 0 وtrue تساوي 1. يمكن تحويل القيمتين العدديتين 0 و1 ضمنيًا إلى القيم المنطقية false وtrue على التوالي. يعني تحويل التعبير إلى نوع bool اختبار ما إذا كانت القيمة تساوي 0 أو !=0 للأنواع الحسابية، و null أو !=null للمؤشرات أو المراجع.boolbool

تحتوي لغة Objective-C أيضًا على نوع بيانات منطقي منفصل BOOL، بقيم محتملة هي `true` YESأو NO`false`، وهما مكافئان لـ `true` و `false` على التوالي. [ 4 ]_Bool كذلك، في مُجمِّعات Objective-C التي تدعم معيار C99، يُمكن استخدام نوع بيانات C ، لأن Objective-C هي مجموعة شاملة للغة C.

إلى الأمام

لا تحتوي لغة البرمجة فورث على نوع منطقي (Boolean)، بل تستخدم الأعداد الصحيحة العادية: القيمة 0 (جميع البتات منخفضة) تمثل خطأ، والقيمة -1 (جميع البتات عالية) تمثل صواب. وهذا يسمح للغة بتعريف مجموعة واحدة فقط من المعاملات المنطقية، بدلاً من مجموعة للحسابات الرياضية وأخرى للشروط. [ 5 ]

فورتران

لا تحتوي النسخة الأولى من لغة فورتران (1957) وخليفتها فورتران 2IF (1958) على قيم أو عمليات منطقية؛ حتى العبارة الشرطية تأخذ تعبيرًا حسابيًا وتتفرع إلى أحد ثلاثة مواقع وفقًا لإشارته؛ انظر عبارة IF الحسابية . مع ذلك، تتبع فورتران 4 (1962) مثال ALGOL 60 بتوفير نوع بيانات منطقي (Boolean LOGICAL)، وقيم منطقية ثابتة ( .TRUE.و .FALSE.IFوعبارة منطقية، ومعاملات مقارنة عددية ذات قيم منطقية ( .EQ.و .GT.، إلخ)، ومعاملات منطقية ( .AND.و .OR.، و .NOT.). في FORMATالعبارات، يُوفر مُعرّف تنسيق مُحدد (' L') لتحليل أو تنسيق القيم المنطقية. كان من الإضافات الشائعة قبل فورتران 77 توسيع المعاملات .EQ.و .NE.، أو ربما إضافة .XOR.معامل لمقارنة التعبيرات المنطقية. [ 6 ] أضافت فورتران 77 المعاملات .EQV.و .NEQV.لتوحيد العمليات. أضافت لغة فورتران 90 عوامل مقارنة بديلة <، <=و ==، و /=، >و، و >=.

جافا

في لغة جافا ، لا يمكن أن تكون قيمة booleanنوع البيانات إلا إما trueأو false. [ 7 ]

الوحدة

في Unity ، يمكن أن تكون قيمة boolean(المعروفة أيضًا باسم bool) إما trueأو falseوتستخدم في البرمجة النصية.

لغة ليسب ولغة سكيم

لم تتضمن لغة ليسب (1958) نوع بيانات منطقيًا مدمجًا. بدلًا من ذلك، condتفترض البنى الشرطية أن القيمة المنطقية "خطأ" ممثلة بالقائمة الفارغة ()، والتي تُعرَّف بأنها مماثلة للذرة الخاصة nilأو NIL؛ بينما يُفسَّر أي تعبير آخر على أنه "صحيح" . ولتسهيل الأمر، تُعرِّف معظم لهجات ليسب الحديثة الذرة مسبقًا tبقيمة t، بحيث tيمكن استخدامها كرمز تذكيري للقيمة "صحيح" .

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

باسكال، آدا، وهاسكل

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

بيرل ولوا

لا تحتوي لغة بيرل على نوع بيانات منطقي (Boolean). بدلاً من ذلك، يمكن لأي قيمة أن تتصرف كقيمة منطقية في سياق منطقي (شرط عبارة if`or` while، وسيط عبارة ` &&or` ||، إلخ). يُقيّم العدد 0`true`، والسلاسل النصية"0" ` true` و`false` ""، والقائمة الفارغة ()، والقيمة الخاصة ` undeffalse` إلى `false`. [ 9 ] أما باقي القيم فتُقيّم إلى `true`.

تحتوي لغة Lua على نوع بيانات منطقي (Boolean)، ولكن يمكن للقيم غير المنطقية أن تتصرف كقيم منطقية أيضًا. تُقيّم القيمة غير المنطقية nilإلى خطأ، بينما تُقيّم جميع أنواع البيانات الأخرى إلى صواب. يشمل ذلك السلسلة الفارغة ""والرقم 0، وهما عنصران شائعان falseفي لغات البرمجة الأخرى.

PL/I

لا تحتوي لغة PL/I على نوع بيانات منطقي (Boolean). بدلاً من ذلك، تُولّد عوامل المقارنة قيمًا من نوع BIT(1)؛ حيث يُمثل '0'B خطأً ، بينما يُمثل '1'B صوابًا . تُحوّل معاملات العمليات، على سبيل المثال، &إلى سلاسل بت |، ¬وتُجرى العمليات على كل بت. يكون تعبير العنصر في IFالعبارة صحيحًا إذا كان أي بت يساوي 1.

بايثون وروبي

في بايثون ، بدءًا من الإصدار 2.3، يوجد boolنوع بيانات يُعدّ فئة فرعية من intنوع البيانات القياسي للأعداد الصحيحة. [ 10 ] يحتوي هذا النوع على قيمتين محتملتين: Trueو False، وهما قيمتان خاصتان للعددين 1 و 0 على التوالي، وتتصرفان على هذا الأساس في العمليات الحسابية. كذلك، تُعتبر القيمة العددية صفر (صحيحًا كان أم كسريًا)، والقيمة الفارغة ( None)، والسلسلة النصية الفارغة، والحاويات الفارغة (القوائم، والمجموعات ، وما إلى ذلك) قيمًا منطقية خاطئة؛ بينما تُعتبر جميع القيم الأخرى منطقية صحيحة افتراضيًا. [ 11 ] يمكن للفئات تحديد كيفية التعامل مع مثيلاتها في سياق منطقي من خلال الدالة الخاصة __nonzero__(في بايثون 2) أو __bool__(في بايثون 3). بالنسبة للحاويات، __len__تُستخدم الدالة (الدالة الخاصة لتحديد طول الحاويات) إذا لم يتم تعريف دالة التحويل المنطقي الصريحة.

في لغة روبي ، على النقيض من ذلك، فقط nil(قيمة روبي الفارغة) وكائن خاص falseيكونان خاطئين ؛ كل شيء آخر (بما في ذلك العدد الصحيح 0 والمصفوفات الفارغة) يكون صحيحًا .

ريكس

لا يحتوي Rexx على نوع بيانات منطقي. بدلاً من ذلك، تُنتج عوامل المقارنة إما 0 أو 1؛ حيث يُمثل 0 خطأً ، بينما يُمثل 1 صوابًا . يجب أن تكون معاملات المقارنة، على سبيل المثال، &0 أو 1.|¬

SQL

تظهر القيم المنطقية في لغة SQL عند الحاجة إلى شرط ، مثل عبارة WHERE ، في شكل مسند يتم إنتاجه باستخدام عوامل تشغيل مثل عوامل المقارنة، وعامل IN ، و IS (NOT) NULL، وما إلى ذلك. ومع ذلك، وبصرف النظر عن TRUE و FALSE ، يمكن أن تؤدي عوامل التشغيل هذه أيضًا إلى حالة ثالثة تسمى UNKNOWN ، عند إجراء المقارنة .NULL

قدم معيار SQL92 عوامل التشغيل IS (NOT) TRUE و IS (NOT) FALSE و IS (NOT) UNKNOWN التي تقيّم المسند، والتي سبقت إدخال النوع المنطقي في SQL:1999 .

قدّم معيار SQL:1999 نوع بيانات BOOLEAN كميزة اختيارية (T031). عند تقييده بقيد NOT NULL ، يتصرف نوع بيانات BOOLEAN في SQL كما في لغات البرمجة الأخرى، حيث يمكنه تخزين القيمتين TRUE و FALSE فقط . مع ذلك، إذا كان يقبل القيم الفارغة (nullable)، وهو الوضع الافتراضي كما هو الحال مع جميع أنواع بيانات SQL الأخرى، فيمكنه أيضًا أن يأخذ القيمة الفارغة (null). على الرغم من أن معيار SQL يُعرّف ثلاثة أنواع بيانات حرفية لنوع BOOLEAN - TRUE وFALSE و UNKNOWN - إلا أنه ينص أيضًا على أنه "يمكن استخدام NULL BOOLEAN و UNKNOWN بشكل متبادل للدلالة على الشيء نفسه تمامًا". [ 12 ] [ 13 ] وقد أثار هذا بعض الجدل لأن تعريف UNKNOWN يُخضعه لقواعد مقارنة المساواة الخاصة بالقيمة الفارغة (NULL). بتعبير أدق، ليس TRUE بل UNKNOWN/NULL . [ 14 ] اعتبارًا من عام 2012، لم تُطبّق سوى قلة من أنظمة SQL الرئيسية ميزة T031. [ 15 ] يُعد كل من Firebird و PostgreSQL استثناءً ملحوظًا، على الرغم من أن PostgreSQL لا يدعم القيمة الحرفية UNKNOWN ؛ ويمكن استخدام بديل لها. [ 16 ]UNKNOWN = UNKNOWNNULL

تختلف طريقة التعامل مع القيم المنطقية بين أنظمة SQL.

على سبيل المثال، في Microsoft SQL Server ، لا يتم دعم القيم المنطقية (Boolean) إطلاقًا، لا كنوع بيانات مستقل ولا كعدد صحيح. تظهر رسالة الخطأ "تم تحديد تعبير من نوع غير منطقي في سياق يتطلب شرطًا" إذا تم استخدام عمود مباشرةً في عبارة WHERE ، بينما ينتج عن عبارة مثل خطأ في بناء الجملة. يُستخدم نوع البيانات BIT ، الذي لا يمكنه تخزين سوى الأعداد الصحيحة 0 و1 باستثناء NULL ، كحل بديل لتخزين القيم المنطقية، ولكن يلزم استخدام حلول بديلة أخرى، مثل التحويل بين العدد الصحيح والتعبير المنطقي.SELECTaFROMtWHEREaSELECTcolumnISNOTNULLFROMtUPDATEtSETflag=IIF(colISNOTNULL,1,0)WHEREflag=0

لا يحتوي برنامج Microsoft Access ، الذي يستخدم محرك قاعدة بيانات Access (ACE/JET)، [ 17 ] على نوع بيانات منطقي (Boolean). على غرار MS SQL Server، يستخدم نوع بيانات ثنائي (BIT ). [ 18 ] يُعرف هذا النوع في Access باسم نوع بيانات نعم/لا [ 19 والذي يمكن أن يأخذ قيمتين: نعم (True) أو لا (False). يمكن أيضًا تمثيل نوع البيانات الثنائي (BIT) في Access عدديًا: القيمة True تساوي -1 والقيمة False تساوي 0. [ 20 ] يختلف هذا عن MS SQL Server في جانبين، على الرغم من أن كلاهما من منتجات Microsoft:

  1. يمثل Access القيمة TRUE بالقيمة -1 ، بينما تمثلها القيمة 1 في SQL Server
  2. لا يدعم برنامج Access خاصية الحالة الثلاثية Null، التي يدعمها SQL Server.

يحتوي PostgreSQL على نوع BOOLEAN مميز كما هو الحال في المعيار، [ 21 ] مما يسمح بتخزين المسندات مباشرة في عمود BOOLEAN ، ويسمح باستخدام عمود BOOLEAN مباشرة كمسند في عبارة WHERE .

في MySQL ، يتم التعامل مع BOOLEAN كاسم بديل لـ ; [ 22 ] TRUE هو نفسه العدد الصحيح 1 و FALSE هو نفسه العدد الصحيح 0. [ 23 ] أي عدد صحيح غير صفري يكون صحيحًا في الشروط.TINYINT(1)

تابلو

يحتوي برنامج Tableau على نوع بيانات منطقي (BOOLEAN). [ 24 ] القيمة الحرفية للقيمة المنطقية هي Trueصفر أو صفر False. [ 25 ]

تقوم دالة Tableau INT()بتحويل القيمة المنطقية إلى رقم، حيث تُرجع 1 للقيمة True و 0 للقيمة False. [ 26 ]

تي سي إل

لا تحتوي لغة Tcl على نوع منطقي منفصل. كما هو الحال في لغة C، يتم استخدام العددين الصحيحين 0 (خطأ) و1 (صواب - في الواقع أي عدد صحيح غير صفري). [ 27 ]

أمثلة على البرمجة:

إذا كانت قيمة v تساوي 1، فسيتم طباعة " V تساوي 1 أو صحيحة" .

سيظهر ما سبقV تساوي 1 أو صحيحةبما أن قيمة التعبير تساوي 1.

قم بتعيين v "" إذا { $v } .... 

سيؤدي ما سبق إلى حدوث خطأ، حيث لا يمكن تقييم المتغير v على أنه 0 أو 1.

الحقيقة

في بعض لغات البرمجة، يمكن تقييم أي تعبير في سياق يتوقع نوع بيانات منطقي (Boolean). عادةً (مع أن هذا يختلف باختلاف لغة البرمجة) تُعامل تعابير مثل العدد صفر ، والسلسلة النصية الفارغة ، والقوائم الفارغة، والقيمة null على أنها خاطئة، بينما تُقيّم السلاسل النصية التي تحتوي على محتوى (مثل "abc")، والأرقام الأخرى، والكائنات على أنها صحيحة. تُسمى هذه الفئات من التعبيرات أحيانًا بالتعابير الخاطئة والتعابير الصحيحة. على سبيل المثال، في لغة Lisp ، تُعامل القيمة nil (القائمة الفارغة) على أنها خاطئة، بينما تُعامل جميع القيم الأخرى على أنها صحيحة. في لغة C ، يُعتبر العدد 0 أو 0.0 خاطئًا، بينما تُعامل جميع القيم الأخرى على أنها صحيحة.

في جافا سكريبت ، تُسمى السلاسل الفارغة ( "") nullو و undefinedو NaNو +0و −0و false[ 28 ] أحيانًا بالقيم الخاطئة (والتي يُطلق على مكملها القيمة الصحيحة ) للتمييز بين القيم المنطقية التي تم التحقق من نوعها بدقة والقيم المنطقية المُحوّلة (انظر أيضًا: بناء جملة جافا سكريبت# تحويل الأنواع ). [ 29 ] على عكس بايثون، تُعتبر الحاويات الفارغة (المصفوفات، والخرائط، والمجموعات) صحيحة. وتستخدم لغات مثل PHP هذا النهج أيضًا.

انظر أيضاً

مراجع

  1. كيرنيغان، برايان دبليو ؛ ريتشي، دينيس إم ( 1978). لغة البرمجة سي (  الطبعة الأولى). إنجلوود كليفس، نيوجيرسي : برنتيس هول . ص 41. ISBN  0-13-110163-3.
  2. بلاوجر، بي جيه ؛ برودي، جيم (1992) [1989]. مرجع مبرمج لغة سي وفقًا لمعايير ANSI وISO . مطبعة مايكروسوفت . الصفحات 86-93 . ISBN  1-55615-359-7.
  3. "تقرير عن لغة الخوارزميات ALGOL 68، القسم 10.2.2" (ملف PDF) . أغسطس 1968. مؤرشف (ملف PDF) من الأصل في 6 أبريل 2008. تم الاطلاع عليه في 30 أبريل 2007 .
  4. "الأدلة ونماذج التعليمات البرمجية" . developer.apple.com . مؤرشف من الأصل في 7 سبتمبر 2011. تم الاطلاع عليه في 1 مايو 2018 .
  5. "4. قرارات، قرارات..." فورث إنك . 2022-02-11 . تم الاسترجاع في 2022-02-11 .
  6. شركة ديجيتال إكويبمنت، دليل مرجعي لمبرمجي نظام DECSystem10 FORTRAN IV . أعيد طبعه في كتاب دليل اللغات الرياضية . نسخة إلكترونية مؤرشفة بتاريخ 14 أغسطس 2011 على موقع Wayback Machine، تم الاطلاع عليها بتاريخ 16 نوفمبر 2011.
  7. "المنطق في جافا" . دروس الويب على موقع W3Schools . تم الاطلاع عليه بتاريخ 17 فبراير 2021 .
  8. "CLHS: Type BOOLEAN" .
  9. "perlsyn - Perl Syntax / Truth and Falsehood" . مؤرشف من الأصل بتاريخ 26 أغسطس 2013. تم الاطلاع عليه بتاريخ 10 سبتمبر 2013 .
  10. فان روسوم، غيدو (3 أبريل 2002). "PEP 285 - إضافة نوع منطقي" . مؤرشف من الأصل في 1 مايو 2013. تم الاطلاع عليه في 15 مايو 2013 .
  11. "التعابير" . وثائق بايثون الإصدار 3.3.2 . مؤرشف من الأصل بتاريخ 22 مايو 2013. تم الاطلاع عليه بتاريخ 15 مايو 2013 .
  12. سي. ديت (2011). لغة SQL ونظرية العلاقات: كيفية كتابة كود SQL دقيق . دار نشر أورايلي ميديا، ص 83. ISBN  978-1-4493-1640-2.
  13. ISO/IEC 9075-2:2011 §4.5
  14. مارتن بريغمور (2007). مقدمة في قواعد البيانات مع تطبيقات الويب . بيرسون للتعليم كندا. ص 197. ISBN  978-0-321-26359-9.
  15. ترولز أرفين، دراسة استقصائية حول تطبيق نوع البيانات المنطقية (BOOLEAN) مؤرشفة بتاريخ 9 مارس 2005 على موقع Wayback Machine
  16. "PostgreSQL: التوثيق: 10: 8.6. النوع المنطقي" . www.postgresql.org . مؤرشف من الأصل في 9 مارس 2018. تم الاطلاع عليه في 1 مايو 2018 .
  17. "نقل قاعدة بيانات Access إلى SQL Server" . support.microsoft.com . تم الاطلاع عليه بتاريخ 19-10-2020 .
  18. o365devx. "أنواع بيانات SQL (مرجع قاعدة بيانات Access لسطح المكتب)" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 19-10-2020 .{{cite web}}: صيانة CS1: الأسماء الرقمية: قائمة المؤلفين ( رابط )
  19. "مقدمة لأنواع البيانات وخصائص الحقول" . support.microsoft.com . تم الاطلاع عليه بتاريخ 19-10-2020 .
  20. "البيانات المنطقية - برنامج تعليمي لبرنامج MS-Access" . sourcedaddy.com . تم الاطلاع عليه بتاريخ 19-10-2020 .
  21. "النوع المنطقي" . 27 أكتوبر 2016.
  22. "MySQL :: دليل مرجعي لـ MySQL 8.0 :: 12.1.1 نظرة عامة على الأنواع الرقمية" . dev.mysql.com . مؤرشف من الأصل بتاريخ 22-09-2016.  
  23. "MySQL :: MySQL 8.0 Reference Manual :: 9.1.6 Boolean Literals" . dev.mysql.com .  
  24. "أنواع البيانات" . help.tableau.com . تم الاطلاع عليه بتاريخ 19-10-2020 .
  25. "تنسيق العمليات الحسابية في Tableau" . help.tableau.com . تم الاطلاع عليه بتاريخ 19-10-2020 .
  26. "هل تجعل العمليات المنطقية برنامج Tableau أسرع؟ - صحيح أم خطأ؟" . شركة TAR Solutions . ١١ سبتمبر ٢٠٢٠. تاريخ الاطلاع: ١٩ أكتوبر ٢٠٢٠ .
  27. "PEP 285 -- إضافة نوع منطقي" . 4 مايو 2011. مؤرشف من الأصل في 28 مارس 2018. تم الاطلاع عليه في 28 مارس 2018 .
  28. "مواصفات لغة ECMAScript" (ملف PDF) . صفحة 43. مؤرشف من الأصل (ملف PDF) بتاريخ 12 أبريل 2015. تم الاطلاع عليه بتاريخ 12 مارس 2011 . 
  29. "عناصر أسلوب جافا سكريبت" . دوغلاس كروكفورد. مؤرشف من الأصل في 17 مارس 2011. تم الاطلاع عليه في 5 مارس 2011 .