تفاوت میان نسخه‌های «نوع‌دهی نیرومند و سست»

بدون خلاصه ویرایش
در [[برنامه‌نویسی رایانه‌ای|برنامه نویسی رایانه ای]]، [[زبان برنامه‌نویسی|زبان های برنامه نویسی]] معمولا به صورت محاوره ای به دو نوع، بر اساس آنکه «سیستم نوع زبان» '''نوع‌دهی نیرومند''' {{به انگلیسی|strongly typed}}، یا '''نوع‌دهی کم‌زور''' {{به انگلیسی|weakly typed}} ('''نوع دهی سست''' {{به انگلیسی|loosely typed}}) باشد، طبقه بندی می شود<ref name=":0">{{Cite journal|date=2020-02-18|title=Strong and weak typing|url=https://en.wikipedia.org/w/index.php?title=Strong_and_weak_typing&oldid=941453382|journal=Wikipedia|language=en}}</ref>.
 
معمولا یک زبان نوع‌دار نیرومند، دارای قواعد نوع دهی سختگیرانه تری در [[زمان کامپایل]] می باشند که به معنی ضمنی آن است که خطاها و استثناها به احتمال بیشتر در مدت کامپایل رخ می دهند. [[زبان های نوع دهی پویا]] (که در آن بررسی نوع در [[زمان اجرا (فاز چرخه زندگی برنامه)|زمان اجرا]] رخ می دهد) نیز می توانند نوع دهی نیرومند باشند. بیشتر این قواعد روی انتساب متغیر ها تاثیر می گذارند، مقادیر و فراخوانی تابع را برمی گردانند<ref name=":0" />.
 
یک زبان نوع دهی کم‌زور قواعد نوع دهی سست تری دارد، و می تواند نتایج غیر قابل پیش بینی ایجاد کند، یا می تواند تبدیل نوع ضمنی در زمان اجرا انجام دهد.<ref>{{cite web|url=http://www.cs.cornell.edu/|title=CS1130. Transition to OO programming. – Spring 2012 --self-paced version|date=2005|publisher=Cornell University, Department of Computer Science|archiveurl=http://www.cs.cornell.edu/courses/CS1130/2012sp/1130selfpaced/module1/module1part4/strongtyping.htm|archivedate=2005|accessdate=2015-11-23}}</ref> یک مفهوم مرتبط اما متفاوت «[[نوع‌دهی پنهان]]» است<ref name=":0" />.
 
== تعاریف «نیرومند» یا «کم‌زور» ==
در تصمیم گیری های طراحی زبان، به شواهدی و مدارکی از نوع دهی «نیروند» یا «کم‌زور» ارجاعرجوع دارندمی‌کنند. در واقع خیلی از ایناین‌ هاتصمیم‌ها به صورت دقیق تردقیق‌تر به صورت وجود یا فقدان «[[ایمنی نوع]]»، «[[ایمنی حافظه]]»، «[[سیستم انواع#بررسی گونه‌ای ایستا|بررسی نوع ایستا]]» یا «[[سیستم انواع#بررسی گونه‌ای پویا|بررسی نوع پویا]]» شناختهباید میرجوع شوند.
 
«نوع دهی نیروند» معمولا به استفاده از «انواع» زبان های برنامه نویسی برای اخذ «نامتغیر» های کد، و اطمینان از صحت آنها، و بیرون سازی قطعی کلاس های مشخص و خطاهای برنامه نویسی ارجاع دارد. بنابراین برای دستیابی به این اهداف، نظام های «نوع‌دهی نیروندنیرومند» زیادی وجود دارد.
 
== جستارهای وابسته ==