انواع داده‌ی مرکب

از ویکی جامع پردیس دانشگاهی دانشگاه قم
پرش به: ناوبری، جستجو
طراحی و پیاده سازی زبان های برنامه نویسی
مقاله بعدی:ساختمان داده‌ها
مقاله قبلی:انواع داده‌ی اسکالر

انواع داده‌ی مرکب:

۱. رشته‌های کاراکتری: از دنباله‌ای از کاراکترها تشکیل شده است و با رشته‌های کاراکتری از نظر طول به سه روش برخورد می‌شود:

الف) طول ثابت (ایستا)
ب) طول متغیر با حد معین یا طول پویای محدود.
ج) طول متغیر یا طول پویا.

از جمله عملیات گوناگونی که روی این رشته‌ها انجام می‌شود:

۱. الجاق رشته‌ها.
۲. عملیات رابطه‌ای در رشته‌ها.
۳. انتخاب زیر رشته‌ با استفاده از اندیس.
۴. فرمت بندی ورودی خروجی.
۵. انتخاب زیر رشته با تطابق الگو.
۶. رشته‌های پویا.
۷. انتخاب زیر رشته در رشته‌ی اصلی.

۲. اشاره‌گرها و اشیاء داده‌ای برنامه نویس:

معمولا در هر زبان برای اتصال اشیاء داده به یکدیگر از اشاره‌گر استفاده می‌شود. زبان برنامه نویسی باید ویژگی‌های زیر را درمورد اشاره‌گر داشته باشد:

الف)‌ نوع داده‌ی اولیه اشاره‌گر.
ب) عمل ایجاد.
د) عمل انتخاب.

در نوع داده‌ی اشاره‌گر دسته‌ای از اشیاء داده تعریف می‌شود که مقادیر آن‌ها آدرس‌های اشیاء‌ دیگر است و به دو روش با آن‌ها برخورد می‌شود:

الف) اشره‌گرها ممکن است به هر نوع متنی داده‌ای مراجعه کنند.
ب) اشاره‌گر ممکن است فقط به یک نوع شیء داده مراجعه کنند.

عملیات مختلفی که درمورد اشاره‌گرها انجام می‌شود، شامل:

۱. عملیات انتساب.
۲. عملیات دست‌یابی به محتویات.
۳. عملیات محاسباتی و رابطه‌ای.

پیاده‌سازی اشاره‌گرها: شی‌ء داده‌ای اشاره‌گر به صورت محلی از حافظه نمایش داده می‌شود که شامل آدرس محل دیگری از حافظه است. درنمایش حافظه برای مقادیر اشاره‌گر دونوع آدرس‌دهی استفاده می‌شود:

الف) آدرس دهی مطلق: مقدار اشاره‌گر ممکن است آدرس واقعی بلاک حافظه مربوط به شیء داده باشد.
ب) آدرس نسبی: مقدار اشاره‌گر ممکن است، offset ای از آدرس پایه‌ی بلاک حافظه باشد که شیء داده درآن ایجاد شده است.

مزایا و معایب آدرس دهی مطلق:

انتخاب و دسترسی به شیء داده از طریق آدرس‌های مطلق کارآمدتر است.ایراد آدرس دهی مطلق این است که مدیریت حافظه مشکل‌تر می‌شود و هم‌چنین بازیابی حافظه از اشیاء داده‌ای که به صورت داده‌های زباله درآمده مشکل‌تر است.

مزایا و معایب آدرس دهی نسبی:

استفاده از آدرس‌دهی نسبی به عنوان اشاره‌گر مستلزم تخصیص بلاکی از حافظه است که تخصیص جدیدی درآن انجام می‌شود. مزایای آن این است که می‌توان بلاک حافظه را در هر زمان به نقاط دلخواهی از حافظه نسبت داد و هم‌چنین با کل ناحیه‌ای که به هنگام ورود به زیر برنامه ایجاد می‌شود، می‌توان به صورت یک شیء داده برخورد کرد و درداخل این ناحیه نیازی به بازیابی حافظه برای تک تک اشیاء داده نیست چون کل ناحیه به هنگام خروج از زیربرنامه بازیابی می‌شود.

مقایسه آدرس دهی نسبی و مطلق:

۱. درمورد آدرس دهی مطلق کارایی بالا وجود دارد و سرعت اجرایی بالا می‌باشد، چون آدرس فیزیکی، درحافظه است ولی در روش نسبی کارایی برنامه پایین است.

۲. در روش آدرس دهی مطلق شیء داده را نمی‌توان انتقال داد. درحالی که در روش نسبی شیء داده را می‌توان به راحتی انتقال داد.

۳. عملیات ترمیم( حل مشکل زباله و ارجاع سرگردان) درمورد آدرس دهی مطلق به سختی صورت می‌گیرد ولی در روش نسبی راحت است.