Remove ads

در علوم رایانه سیستم نوع نامی (به انگلیسی: nominal or nominative type system) (یا سیستم نوع مبتنی بر نام) یک کلاس عمده از سیستم انواع است، که در آن سازگاری و معادل بودن انواع داده، توسط «اعلام صریح» انجام می شود همچنین ممکن است خود «نام انواع» سازگاری یا معادل بودن را تعیین کند.

از سیستم نامی برای تعیین آنکه نوع ها معادل می باشند استفاده می شود، همچنین برای تعیین آنکه آیا یک نوع زیر نوع دیگری می باشد استفاده می شود.

این سیستم دربرابر سیستم های ساختاری قرار دارند، که در آن مقایسه ها مبتنی بر ساختار نوع های مورد سؤال است و در آنها نیازی به اعلام صریح نیست.

Remove ads

نوع دهی نامی

نوع دهی نامی یعنی دو متغیر در حالت نوع-سازگار قرار دارند اگر و تنها اگر در اعلام آنها، نوع مشابه نامگذاری شده باشد.

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

زیرنوع دهی نامی

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

زبان های C++، C#، Java، Objective-C، Delphi، Swift، Julia، و Rust همه از نوع دهی نامی، و زیرنوع دهی نامی استفاده می کنند.

بعضی از زبان های نامی-زیرنوعی، مثل جاوا و سی شارپ، به کلاس ها اجازه می دهند تا به صورت final تعریف شوند (در عبارات شناسی سی شارپ موجود است)، و نشان می دهد که زیرنوع سازی بیشتر مجاز نیست.

مقایسه

  • نوع دهی نامی برای جلوگیری از معادل سازی نوع اتفاقی مفید است، که این کار موجب ایمنی-نوع بهتری نسبت به نوع دهی ساختاری می شود.
  • هزینه ی اینکار انعطاف پذیری کمتر است، زیرا برای مثال، نوع دهی نامی اجازه ی ایجاد فرا نوع جدید را، بدون اصلاح زیرنوع های موجود نمی‌دهد.

منابع

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.

Remove ads