في علوم الحاسوبوبرمجة الحاسوب، يعد نوع البيانات[1] (بالإنجليزية: Data Type) أو الكتابة ببساطة سمة من سمات البيانات التي تخبر المحول البرمجي أو المفسر كيف ينوي المبرمج استخدام البيانات. تدعم معظم لغات البرمجة أنواع البيانات الأساسية للأرقام الصحيحة (بأحجام مختلفة) وأرقام الفاصلة العائمة (التي تقارب الأرقام الحقيقية) والأحرفوالمنطقية. يقيد نوع البيانات القيم التي قد يتخذها تعبير، مثل متغير أو دالة. يحدد نوع البيانات هذا العمليات التي يمكن إجراؤها على البيانات، ومعنى البيانات، والطريقة التي يمكن بها تخزين قيم هذا النوع. يوفر نوع البيانات مجموعة من القيم التي يمكن للتعبير (أي المتغير، الوظيفة، إلخ) أن يأخذ منها قيمه.
نحتاج في حياتنا اليومية للتعامل مع الأرقام والأحرف والنصوص والعلامات المنطقية صح (Truth) أو خطأ (False)..إلخ، جميع ماذكر سابقا يسمى أنواع البيانات، كذلك في علم الحاسوب تحتاج لغات البرمجة إلى تلك الأنواع لتتعامل مع الذاكرة، يجب أن تعلم أن جميع لغات البرمجة تجتمع في الجوهر نفسه بالنسبة للأنواع إلا أن الاختلاف بينهما يكون عادة بالمصطلحات مثلا: في لغة C++ يسمى العدد العشري float أما في لغة Visual Basic يسمى single عشري.[2]
مفهوم
تُستخدم أنواع البيانات داخل أنظمة النوع، والتي تقدم طرقًا مختلفة لتعريفها وتنفيذها واستخدامها. تضمن أنظمة الأنواع المختلفة درجات متفاوتة من نوع الأمان.
تتضمن جميع لغات البرمجة تقريبًا بشكل صريح مفهوم نوع البيانات، على الرغم من أن اللغات المختلفة قد تستخدم مصطلحات مختلفة.
على سبيل المثال، في لغة برمجة Java، يمثل النوع int مجموعة الأعداد الصحيحة 32 بت التي تتراوح قيمتها من −2,147,483,648 إلى 2,147,483,647، بالإضافة إلى العمليات التي يمكن إجراؤها على الأعداد الصحيحة، مثل الجمع والطرح والضرب. من ناحية أخرى، يمكن تمثيل اللون بثلاثة بايتات تشير إلى مقادير كل من الأحمر والأخضر والأزرق، وسلسلة تمثل اسم اللون.
تسمح معظم لغات البرمجة أيضًا للمبرمج بتحديد أنواع بيانات إضافية، عادةً عن طريق الجمع بين عناصر متعددة من أنواع أخرى وتحديد العمليات الصالحة لنوع البيانات الجديد. على سبيل المثال، قد يقوم المبرمج بإنشاء نوع بيانات جديد يسمى «عدد مركب» يتضمن أجزاء حقيقية وخيالية. يمثل نوع البيانات أيضًا قيدًا يتم وضعه على تفسير البيانات في نظام النوع، ويصف تمثيل وتفسير وهيكل القيم أو الكائنات المخزنة في ذاكرة الكمبيوتر. يستخدم نظام النوع معلومات نوع البيانات للتحقق من صحة برامج الكمبيوتر التي تصل إلى البيانات أو تتعامل معها.
معظم أنواع البيانات في الإحصاء لها أنواع قابلة للمقارنة في برمجة الكمبيوتر والعكس صحيح كما هو موضح في الجدول التالي:
أنواع البيانات تستخدم في نظام الأنواع، الذي يقدم عدة طرق مختلفة لتعريف الأنواع مثل: المتغيرات (variable) , الدوال (Functions) , الوحدات (Units). يمكن أن نعرف نوع البيانات أنه «كل خاصية في البرنامج نستطيع أن نحدده دون تنفيذ البرنامج».
جميع لغات البرمجة خاصة الشائعة منها تستخدم أنواع البيانات، إلا أنها تختلف في المصطلحات(المسميات), بالنسبة للأنواع الأكثر شائعة فهي:
الأنواع المركبة: هي أنواع مستمدة من أكثر من نوع أولي، ويمكن القيام بذلك بعدة طرق مختلفة، يطلق عليها وهي مجتمة تراكيب البيانات (أو هياكل البيانات) Data Structures, يجب أن تعلم أن هياكل البيانات تختلف عن البيانات الأولية، مثلا: مصفوفة من أعداد صحيحة تختلف عن النوع الصحيح نفسه integer.
المصفوفات: تقوم بتخزين عدد من العناصر من نفس النوع وبترتيب معين.
المؤشرات (Pointers) : هي عبارة عن أماكن في الذاكرة تقوم بتخزين عناوين المتغيرات فقط، تشتهر بها لغة C/C++ التي تتميز عن بعض اللغات التي لاتدعم هذا النوع من البيانات.
المراجع: هي عبارة عن مؤشرات ثابتة، تقوم بتخزين عنوان المتغير، وبالتالي تصبح تؤشر على عنوانه في الذاكرة، أي أن كل تغير في المرجع هو في الحقيقة تغير في المتغير الأصلى، يمكن أن نسمي المرجع أحيانا اسم آخر للمتغير.
الدوال (Functions)
تقوم الدالة بإعادة قيمة بنفس النوع التي تحمله، مثلا دالة sine نقوم بإعطائها الزواية وهي تقوم بإعادة جيب الزاوية.
أنواع البيانات المجردة
أي نوع لايكون له هدف معين ليقوم بتنفيذه فهو نوع بيانات مجرد، مثلا المكدس هو نوع من أنواع البيانات المجردة، يمكنك تنفيذه كمصفوفة(هي عبارة عن قطع في الذاكرة متجاورة مع بعضها لها نفس النوع), أو يمكنك تنفيذه كقائمة مرتبطة (هي مجموعة من القطع في الذاكرة غير متجاورة تترابط مع بعضها بوساطة المؤشرات).