From Wikipedia, the free encyclopedia
در برنامهنویسی رایانهای، زبانهای برنامهنویسی معمولاً به صورت محاورهای به دو نوع، بر اساس آنکه «سیستم نوع زبان» نوعدهی قوی یا نوعدهی نیرومند (به انگلیسی: strongly typed)،و نوعدهی ضعیف یا نوعدهی کمزور (به انگلیسی: weakly typed) (نوع دهی سست (به انگلیسی: loosely typed)) باشد، طبقهبندی میشود.[1]
معمولاً یک زبان نوعدار نیرومند، دارای قواعد نوع دهی سختگیرانهتری در زمان کامپایل میباشند که به معنی ضمنی آن است که خطاها و استثناها به احتمال بیشتر در مدت کامپایل رخ میدهند. زبانهای نوعدهی پویا (که در آن بررسی نوع در زمان اجرا رخ میدهد) نیز میتوانند نوع دهی نیرومند باشند. بیشتر این قواعد روی انتساب متغیرها تأثیر میگذارند، همچنین قواعد میتوانند روی مقادیر برگردانده شده و فراخوانی تابع تأثیر بگذارند.[1]
یک زبان نوع دهی کمزور قواعد نوع دهی سستتری دارد، و میتواند نتایج غیرقابل پیشبینی ایجاد کند، یا میتواند تبدیل نوع ضمنی در زمان اجرا انجام دهد.[2] یک مفهوم مرتبط اما متفاوت «نوعدهی پنهان» است.[1]
در ۱۹۷۴، لیسکو (به انگلیسی: Liskov) و زایلز (به انگلیسی: Zilles) یک زبان وابسته زیاد به نوع را تعریف کردند به این عنوان که «هر گاه یک شیء از فراخوانی یک تابع به تابع صدا زده شده عبور کرد، نوعش باید سازگار با نوع تعریفشده در تابع صدا زده شده باشد.»[3] جکسون در اینباره نوشتهاست، «در یک زبان وابسته زیاد به نوع ناحیه هر داده یک نوع متفاوت دارد و هر فرایند الزامات ارتباطش را به شروط این نوعها توضیح میدهد.»[4]
تصمیمگیریهای طراحی زبان، به شواهدی و مدارکی از نوع دهی «نیروند» یا «کمزور» رجوع میکنند. در واقع خیلی از این تصمیمها به صورت دقیقتر به صورت وجود یا فقدان «ایمنی نوع»، «ایمنی حافظه»، «بررسی نوع ایستا» یا «بررسی نوع پویا» باید رجوع شوند.
«نوع دهی نیروند» معمولاً به استفاده از «انواع» زبانهای برنامهنویسی برای اخذ «نامتغیر» های کد، و اطمینان از صحت آنها، و بیرون سازی قطعی کلاسهای مشخص و خطاهای برنامهنویسی ارجاع دارد؛ بنابراین برای دستیابی به این اهداف، نظامهای «نوعدهی نیرومند» زیادی وجود دارد.
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.