هم وردایی و پادوردایی

دانشنامه عمومی

هم وردایی و پادوردایی (علوم رایانه). سیستم گونه سازی در بسیاری از زبانهای برنامه نویسی زیرگونه سازی را پشتیبانی می کند. برای نمونه، اگر کلاس A زیرگونه ای از کلاس B باشد، عبارتی از گونه A می تواند هرجاییکه یک عبارت از گونه B وجود داشته باشد، بکار رود. هم وردایی[ ۱] به ارتباط زیرگونه سازی در گونه های پیچیده ( لیستی از Aها در برابر لیستی از Bها، متودی که A را برمی گرداند در برابر متودی که B را برمی گرداند، و … ) و مؤلفه های آن ها گفته می شود. بسته به وردایی type constructor، رابطه زیرگونه سازی ممکن است حفظ شود، برعکس شود یا نادیده گرفته شود. برای نمونه در اکمل «لیستی از Aها» زیرگونه از «لیستی از Bها» است چراکه constructor لیست هم وردا است، درحالیکه متودی با وردودی B و خروجی String زیرگونه ای از متودی با ورودی A و خروجی String است چراکه Function type constructor پادوردا[ ۱] در نوع پارامترهاست.
طراح زبان برنامه نویسی مسئله وردایی را در طراحی گونه سازی در آرایه ها، وارثت، و انواع داده generic در نظر می گیرد. با بکارگیری type constructorهای هم وردا و پادوردا به جای ناوردا، بیشتر برنامه ها به عنوان برنامه های well - typed پذیرفته می شوند. از سویی دیگر، اکثر برنامه نویسان پادوردایی را غیرشهودی می یابند و ردیابی دقیق وردایی برای اجتناب از خطاهای زمان اجرا، منجر به قواعد گونه سازی پیچیده می شود. به منظور ساده سازی سیستم گونه سازی، یک زبان برنامه نویسی ممکن است type constructor را به صورت ناوردا در نظر بگیرد حتی اگر وردا در نظر گرفتن آن خطری نداشته باشد یا به صورت هم وردا در نظر بگیرد حتی اگر type safety زیر سؤال برود.
فرهنگستان زبان فارسی، وردیدن از ریشه باستانی ورت ( ورتیدن ) ، را بجای فعل to vary برگزیده است و از این فعل مشتقات وردایی ( variance ) ، وردش ( variation ) ، وردا ( variant ) ، هم وردا ( covariant ) ، هم وردایی ( covariance ) ، ناوردا ( invariant ) ، ناوردایی ( invariance ) ، پادوردا ( contravariance ) را برساخته است.
در سیستم گونه سازی یک زبان برنامه نویسی روش گونه سازی یا type constructor
• هم ورداست اگر ترتیب زیرگونه ها ( ≤ ) از گونه های خاص تر به گونه های عام تر حفظ شود.
• پادورداست اگر ترتیب زیرگونه ها برعکس شود.
• دوورداست اگر همزمان I< A> ≤ I< B> و I< B> ≤ I< A> درست باشد.
• ناورداست اگر هیچ کدام از موارد پیش گفته نباشد.
عکس هم وردایی و پادوردایی (علوم رایانه)عکس هم وردایی و پادوردایی (علوم رایانه)عکس هم وردایی و پادوردایی (علوم رایانه)عکس هم وردایی و پادوردایی (علوم رایانه)عکس هم وردایی و پادوردایی (علوم رایانه)
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس