نوع البيانات

التسلسل الهرمي القياسي للأنواع في بايثون 3

في علوم الحاسوب وبرمجة الحاسوب ، يُعرَّف نوع البيانات (أو ببساطة النوع ) بأنه مجموعة من قيم البيانات ، ويُحدَّد عادةً بمجموعة من القيم الممكنة، ومجموعة من العمليات المسموح بها على هذه القيم، و/أو تمثيل هذه القيم كأنواع بيانات آلية. [ 1 ] يُقيِّد تحديد نوع البيانات في البرنامج القيم الممكنة التي قد يأخذها تعبير ما ، مثل متغير أو استدعاء دالة. بالنسبة للبيانات الحرفية، يُخبر المُصرِّف أو المُفسِّر بكيفية استخدام المُبرمج للبيانات. تدعم معظم لغات البرمجة أنواع البيانات الأساسية التالية: الأعداد الصحيحة (بأحجام مختلفة)، والأعداد العشرية (التي تُقارب الأعداد الحقيقيةوالأحرف ، والقيم المنطقية ( Boolean ) . [ 2 ] [ 3 ]

مفهوم

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

قد تستخدم لغات البرمجة المختلفة أنواع بيانات مختلفة أو أنواعًا متشابهة ذات دلالات مختلفة. على سبيل المثال، في لغة بايثون ، intيُمثل `<T>` عددًا صحيحًا بدقة اختيارية، ويخضع للعمليات الحسابية التقليدية كالجمع والطرح والضرب. أما في لغة جافا ، فيُمثل `<T>` intمجموعة الأعداد الصحيحة ذات 32 بت، والتي تتراوح قيمتها من -2,147,483,648 إلى 2,147,483,647، وتخضع لعمليات حسابية تتجاوز الحد المسموح به عند حدوث تجاوز . في لغة رست ، يُشار إلى هذا النوع من الأعداد الصحيحة ذات 32 بت بـ `<T>` ، ويحدث خطأ فادح عند حدوث تجاوز في وضع التصحيح. [ 5 ]i32

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

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

تعريف

حدد بارناس وشور ووايس (1976) خمسة تعريفات لـ "النوع" التي تم استخدامها - أحيانًا ضمنيًا - في الأدبيات:

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

كان تعريف البيانات من حيث التمثيل شائعًا في لغات البرمجة الإجرائية مثل ALGOL و Pascal ، بينما كان تعريفها من حيث فضاء القيم والسلوك شائعًا في لغات البرمجة عالية المستوى مثل Simula و CLU . تتوافق الأنواع التي تتضمن سلوكًا بشكل أوثق مع نماذج البرمجة الكائنية ، في حين أن نموذج البرمجة الهيكلية لا يتضمن عادةً أي كود، وتُسمى هذه الأنواع بهياكل البيانات التقليدية .

تصنيف

يمكن تصنيف أنواع البيانات وفقًا لعدة عوامل:

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

تختلف المصطلحات المستخدمة - في الأدبيات، قد تُستخدم المصطلحات البدائية والمدمجة والأساسية والذرية والجوهرية بشكل متبادل. [ 8 ]

أمثلة

أنواع بيانات الآلة

تُمثَّل جميع البيانات في الحواسيب القائمة على الإلكترونيات الرقمية على شكل بتات (أو 0 و1) في أدنى مستوى. أصغر وحدة بيانات قابلة للعنونة هي عادةً مجموعة من البتات تُسمى بايت (عادةً ما تكون ثمانية بتات). تُسمى الوحدة التي تُعالجها تعليمات لغة الآلة كلمة ( اعتبارًا من عام 2026) .(عادةً 32/64 بت).

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

نوع منطقي

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

الأنواع الرقمية

تُوفّر معظم لغات البرمجة نوعًا واحدًا أو أكثر من أنواع البيانات الصحيحة . قد تُوفّر عددًا محدودًا من الأنواع الفرعية المُعرّفة مُسبقًا والمُقتصرة على نطاقات مُحدّدة (مثل ` shortint` و` longint` ومُتغيراتها المُقابلة في لغتيunsigned C/C++)؛ أو تسمح للمستخدمين بتعريف نطاقات فرعية بحرية، مثل 1..12 (مثل لغتي باسكال وآدا ). إذا لم يكن النوع الأصلي المُقابل موجودًا على النظام المُستهدف، فسيقوم المُصرّف بتقسيمه إلى شيفرة باستخدام الأنواع الموجودة. على سبيل المثال، إذا طُلب عدد صحيح 32 بت على نظام 16 بت، فسيتعامل المُصرّف معه ضمنيًا كمصفوفة من عددين صحيحين 16 بت.

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

تُعد أنواع البيانات ذات النقطة الثابتة ملائمة لتمثيل القيم النقدية. وغالبًا ما يتم تنفيذها داخليًا كأعداد صحيحة، مما يؤدي إلى حدود محددة مسبقًا.

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

التعدادات

يحتوي النوع المُعدّد على قيم مميزة، يمكن مقارنتها وتعيينها، ولكن ليس بالضرورة أن يكون لها تمثيل ملموس محدد في ذاكرة الحاسوب؛ إذ يمكن للمترجمات والمفسرات تمثيلها بشكل عشوائي. على سبيل المثال، قد تكون الأوراق الأربعة في مجموعة أوراق اللعب أربعة أنواع مُعدّدة تُسمى CLUB و DIAMOND و HEART و SPADE ، تنتمي إلى نوع مُعدّد يُسمى suit . إذا تم تعريف متغير V بنوع بيانات suit ، فيمكن تعيين أي من هذه القيم الأربع له. تسمح بعض التطبيقات للمبرمجين بتعيين قيم عددية صحيحة لقيم التعداد، أو حتى التعامل معها كأنواع مكافئة للأعداد الصحيحة.

أنواع السلاسل والنصوص

السلاسل النصية هي سلسلة من الأحرف تُستخدم لتخزين الكلمات أو النصوص العادية ، وغالبًا ما تكون لغات ترميز نصية تمثل نصًا منسقًا . قد تكون الأحرف حرفًا من أبجدية معينة ، أو رقمًا، أو مسافة فارغة، أو علامة ترقيم، وما إلى ذلك. تُستمد الأحرف من مجموعة أحرف مثل ASCII أو Unicode . يمكن أن تحتوي أنواع الأحرف والسلاسل النصية على أنواع فرعية مختلفة وفقًا لترميز الأحرف. وُجد أن ترميز ASCII الأصلي ذو 7 بتات محدود، وتم استبداله بمجموعات 8 و16 و32 بت، والتي يمكنها ترميز مجموعة واسعة من الأبجديات غير اللاتينية (مثل العبرية والصينية ) ورموز أخرى. قد تكون السلاسل النصية ذات طول متغير أو ثابت، وبعض لغات البرمجة تدعم كلا النوعين. كما يمكن تصنيفها فرعيًا حسب حجمها الأقصى.

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

أنواع النقابات

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

يحتوي الاتحاد الموسوم (يسمى أيضًا متغيرًا أو سجلًا متغيرًا أو اتحادًا مميزًا أو اتحادًا منفصلاً) على حقل إضافي يشير إلى نوعه الحالي لتعزيز سلامة النوع.

أنواع البيانات الجبرية

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

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

أحد أنواع البيانات المجردة الشائعة هو نوع الخيار ، المعرف في لغة هاسكل على النحو التالي : [ 11 ]dataMaybea=Nothing|Justa

هياكل البيانات

تُعدّ بعض أنواع هياكل البيانات مفيدة جدًا لتخزين البيانات واسترجاعها، وتُسمى هياكل البيانات . ومن هياكل البيانات الشائعة ما يلي:

  • المصفوفة (وتُسمى أيضًا متجهًا أو قائمة أو متسلسلة) تُخزّن عددًا من العناصر وتُتيح الوصول العشوائي إلى كل عنصر على حدة . عادةً ما تكون عناصر المصفوفة من النوع نفسه (ولكن ليس في جميع السياقات). قد تكون المصفوفات ثابتة الطول أو قابلة للتوسيع. عادةً ما تكون مؤشرات المصفوفة أعدادًا صحيحة (وإلا، يُمكن التأكيد على هذا التسهيل بالحديث عن مصفوفة ترابطية ) ضمن نطاق مُحدد (إذا لم تُطابق جميع المؤشرات في هذا النطاق عناصر، فقد تكون مصفوفة متفرقة ).
  • السجل (يُسمى أيضًا صفًا أو بنية): تُعد السجلات من أبسط هياكل البيانات . السجل عبارة عن قيمة تحتوي على قيم أخرى، عادةً بعدد وتسلسل ثابتين، ويتم فهرستها عادةً بالأسماء. تُسمى عناصر السجلات عادةً بالحقول أو الأعضاء .
  • يحتوي الكائن على عدد من حقول البيانات، مثل السجل، كما يوفر عددًا من الإجراءات الفرعية للوصول إليها أو تعديلها، وتسمى هذه الإجراءات بالأساليب .
  • القائمة المرتبطة أحادية الاتجاه ، والتي يمكن استخدامها لتنفيذ قائمة انتظار ، وتُعرَّف في لغة هاسكل على أنها نوع البيانات المجردة (ADT) ، وdataLista=Nil|Consa(Lista)
  • الشجرة الثنائية ، التي تسمح بالبحث السريع، ويمكن تعريفها في لغة هاسكل على أنها ADT [ 12 ]dataBTreea=Nil|Node(BTreea)a(BTreea)

أنواع البيانات المجردة

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

إرشادات ومراجع

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

أنواع الدوال

تتعامل لغات البرمجة الوظيفية مع الدوال كنوع بيانات مستقل، وتسمح بتخزين قيم هذا النوع في متغيرات وتمريرها إلى الدوال. كما تمتلك بعض اللغات متعددة الأنماط، مثل جافا سكريبت، آليات للتعامل مع الدوال كبيانات. [ 13 ] تتجاوز معظم أنظمة الأنواع الحديثة نوع "كائن الدالة" البسيط في جافا سكريبت، وتضم مجموعة من أنواع الدوال التي تختلف باختلاف أنواع الوسائط والقيم المُعادة، مثل النوع Int -> Boolالذي يدل على الدوال التي تأخذ عددًا صحيحًا وتُعيد قيمة منطقية. في لغة C، لا تُعد الدالة نوع بيانات من الدرجة الأولى، ولكن يمكن للبرنامج التعامل مع مؤشرات الدوال . لم تكن قيم الدوال موجودة في جافا وسي++ في الأصل، ولكن تمت إضافتها في سي++11 وجافا 8.

مُنشئات الأنواع

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

الأنواع الكمية

تعتمد الأنواع المُكمَّمة عالميًا والأنواع المُكمَّمة وجوديًا على منطق المسند . يُكتب التكميم العالمي على النحو التالي:x.و(x){\displaystyle \forall xf(x)}أو forall x. f xو هو التقاطع على جميع أنواع xالجسم f x، أي أن القيمة من النوع f xلكل x. يُكتب التحديد الكمي الوجودي على النحو التاليx.و(x){\displaystyle \exists xf(x)}أو exists x. f xو هو الاتحاد على جميع أنواع xالجسم f x، أي أن القيمة من النوع f xلبعض x.

في لغة هاسكل، يتم استخدام التحديد الكمي الشامل بشكل شائع، ولكن يجب ترميز الأنواع الوجودية عن طريق التحويل exists a. f aإلى forall r. (forall a. f a -> r) -> rنوع مشابه.

أنواع التحسين

النوع المُحسَّن هو نوع مُزوَّد بصفةٍ يُفترض أنها تنطبق على أي عنصر من عناصر النوع المُحسَّن. على سبيل المثال، يمكن كتابة نوع الأعداد الطبيعية الأكبر من 5 على النحو التالي:{نشمال|ن>5}{\displaystyle \{n\in \mathbb {N} \,|\,n>5\}}

الأنواع التابعة

النوع التابع هو نوع يعتمد تعريفه على قيمة. ومن الأمثلة الشائعة على الأنواع التابعة الدوال التابعة والأزواج التابعة. قد يعتمد نوع القيمة المُعادة من دالة تابعة على قيمة (وليس نوع) أحد وسيطاتها. وقد يحتوي الزوج التابع على قيمة ثانية يعتمد نوعها على القيمة الأولى.

أنواع التقاطعات

نوع التقاطع هو نوع يحتوي على القيم التي تنتمي إلى نوعين محددين. على سبيل المثال، في لغة جافاBoolean ، تُنفذ الفئة كلاً من الواجهتين ` Serializableand` و`and` Comparable. لذلك، فإن كائنًا من النوع `and` Booleanهو عضو في النوع `and` Serializable & Comparable. وباعتبار الأنواع مجموعات من القيم، فإن نوع التقاطعστ{\displaystyle \sigma \cap \tau }هو التقاطع النظري للمجموعات لـσ{\displaystyle \sigma }وτ{\displaystyle \tau }من الممكن أيضًا تعريف نوع تقاطع تابع، يُشار إليه بـ(x:σ)τ{\displaystyle (x:\sigma )\cap \tau }، حيث النوعτ{\displaystyle \tau }قد يعتمد ذلك على متغير المصطلحx{\displaystyle x}[ 14 ]

أنواع البيانات الوصفية

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

أنواع الراحة

لتسهيل الاستخدام، قد توفر لغات البرمجة وقواعد البيانات عالية المستوى أنواع بيانات جاهزة من "العالم الحقيقي"، مثل الأوقات والتواريخ والقيم النقدية (العملات). [ 15 ] [ 16 ] قد تكون هذه الأنواع مضمنة في اللغة نفسها أو مُطبقة كأنواع مركبة في مكتبة برمجية. [ 17 ]

انظر أيضاً

مراجع

  1. بارناس، شور ووايس 1976 .
  2. اكتب في قاموس الحوسبة المجاني على الإنترنت
  3. شافر، سي. أ. (2011). هياكل البيانات وتحليل الخوارزميات في لغة سي++ (  الطبعة الثالثة). مينولا، نيويورك: دوفر. 1.2. ISBN 978-0-486-48582-9.
  4. سكوت، دانا (سبتمبر 1976). "أنواع البيانات كشبكات". مجلة SIAM للحوسبة . 5 (3): 540-541 . doi : 10.1137/0205037 .
  5. "Rust RFCs - تجاوز سعة الأعداد الصحيحة" . لغة برمجة Rust. 12 أغسطس 2022.
  6. ديل، نيل ب.؛ ويمز، تشيب؛ هيدينغتون، مارك ر. (1998). البرمجة بلغة سي++ . جونز وبارتليت للتعليم. ص 349. ISBN  978-0-7637-0537-4.
  7. ISO/IEC 11404 ، 6.4
  8. بهاتناغار، سيما (19 أغسطس 2008). كتاب علوم الحاسوب للصف الحادي عشر . دار نشر PHI Learning Pvt. Ltd.، صفحة 182. ISBN  978-81-203-2993-5.
  9. "SC22/WG14 N2176" (ملف PDF) . أرشيف الإنترنت. القسم 6.2.6.2. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 30 ديسمبر 2018. يُحدد التطبيق أيٌّ من [الإشارة والمقدار، المتمم الثنائي، المتمم الأحادي] ينطبق بناءً على التنفيذ.
  10. "معايير الأداء للأعداد الصحيحة - وثائق mp++ 0.27" . bluescarni.github.io .
  11. "6 أنواع وفئات مُعرَّفة مسبقًا" . www.haskell.org . تم الاطلاع عليه بتاريخ 15-06-2022 .
  12. سوريش، إس بي. "البرمجة بلغة هاسكل: المحاضرة 22" (ملف PDF) . معهد تشيناي للرياضيات . تم الاطلاع عليه بتاريخ 10 أغسطس 2022 .
  13. فلانغان، ديفيد (1997). "6.2 الدوال كأنواع بيانات". جافا سكريبت: الدليل الشامل ( الطبعة الثانية). كامبريدج: أورايلي وشركاؤه. ISBN  9781565922341.
  14. كوبيلوف، أليكسي (2003). "التقاطع التابع: طريقة جديدة لتعريف السجلات في نظرية الأنواع". المؤتمر الثامن عشر لجمعية مهندسي الكهرباء والإلكترونيات حول المنطق في علوم الحاسوب . LICS 2003. جمعية مهندسي الكهرباء والإلكترونيات. الصفحات 86-95. CiteSeerX 10.1.1.89.4223 . doi : 10.1109 / LICS.2003.1210048 .  
  15. ويست، راندولف (27 مايو 2020). "كيف يخزن SQL Server أنواع البيانات: money" . Born SQL . تم الاسترجاع في 28 يناير 2022. منذ فترة ، وصفتُ MONEY بأنه نوع بيانات "مريح" وهو في الواقع مطابق لـ DECIMAL(19,4)، [...]
  16. "مقدمة لأنواع البيانات وخصائص الحقول" . support.microsoft.com . تم الاطلاع عليه بتاريخ 28 يناير 2022 .
  17. ويكهام، هادلي (2017). "16 تاريخًا ووقتًا" . لغة R لعلوم البيانات: استيراد البيانات، وتنظيمها، وتحويلها، وتصورها، ونمذجتها . سيباستوبول، كاليفورنيا. ISBN 978-1491910399تم الاطلاع عليه بتاريخ 28 يناير 2022 .{{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط )

للمزيد من القراءة

  • شعار ويكيميديا ​​كومنزالوسائط المتعلقة بأنواع البيانات في ويكيميديا ​​كومنز