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

بدون خلاصه ویرایش
در [[برنامه‌نویسی رایانه‌ای|برنامه نویسی رایانه ای]]، [[زبان برنامه‌نویسی|زبان های برنامه نویسی]] معمولا به صورت محاوره ای به دو نوع، بر اساس آنکه «سیستم نوع زبان» '''نوع‌دهی نیرومند''' {{به انگلیسی|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" />.