نوع‌دهی قوی و ضعیف: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
InternetArchiveBot (بحث | مشارکت‌ها)
نجات ۰ منبع و علامت‌زدن ۱ به‌عنوان مرده.) #IABot (v2.0
بر اساس مقاله ی انگلیسی اصلاح گردید.
خط ۱:
{{سیستم نوع}}
 
در [[برنامه‌نویسی رایانه‌ای|برنامه نویسی رایانه ای]]، [[زبان برنامه‌نویسی|زبان های برنامه نویسی]] معمولا به صورت محاوره ای به دو نوع، بر اساس آنکه سیستم نوع زبان، '''نوع‌دهی نیرومند''' {{به انگلیسی|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>.
'''وابستگی زیاد به نوع''' {{به انگلیسی|Strongly-typed}} و '''وابستگی کم به نوع''' {{به انگلیسی|Weakly-typed}} به دو نوع [[سیستم انواع]] {{به انگلیسی|Type System}} در زبان های برنامه نویسی اطلاق می شوند.
 
معمولا یک زبان نوع‌دار نیرومند، دارای قواعد نوع دهی سختگیرانه تری در [[زمان کامپایل]] می باشند که به معنی ضمنی آن است که خطاها و استثناها به احتمال بیشتر در مدت کامپایل رخ می دهند. [[زبان های نوع دهی پویا]] (که در آن بررسی نوع در [[زمان اجرا]] رخ می دهد) نیز می توانند نوع دهی نیرومند باشند. بیشتر این قواعد روی انتساب متغیر ها تاثیر می گذارند، مقادیر و فراخوانی تابع را برمی گردانند<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" />.
 
== تاریخچه ==
سطر ۷ ⟵ ۱۱:
جکسون در اینباره نوشته‌است، «در یک زبان وابسته زیاد به نوع ناحیه هر داده یک نوع متفاوت دارد و هر فرایند الزامات ارتباطش را به شروط این نوع‌ها توضیح می‌دهد.»<ref>{{cite journal | title = Parallel processing and modular software construction | first1 = K. | last1 = Jackson | journal = Lecture Notes in Computer Science | year = 1977 | volume = 54 | pages = 436–443 | doi = 10.1007/BFb0021435 | url = http://www.springerlink.com/content/wq02703237400667/ | series = Lecture Notes in Computer Science | isbn = 3-540-08360-X }}{{پیوند مرده|date=فوریه ۲۰۲۰ |bot=InternetArchiveBot }}</ref>
 
== تعاریف «زیادنیرومند» یا «کمکم‌زور» ==
در تصمیم گیری های طراحی زبان، به شواهدی و مدارکی از نوع دهی «نیروند» یا «کم‌زور» ارجاع دارند. در واقع خیلی از این ها به صورت دقیق تر به صورت وجود یا فقدان «[[ایمنی نوع]]»، «[[ایمنی حافظه]]»، «[[سیستم انواع#بررسی گونه‌ای ایستا|بررسی نوع ایستا]]» یا «[[سیستم انواع#بررسی گونه‌ای پویا|بررسی نوع پویا]]» شناخته می شوند.
{{بخش-خرد}}
 
تعدادی از تصمیم‌گیری‌های مختلف طراحی زبان به عنوان نشانه‌ای از وابستگی «زیاد» یا «کم» به نوع نسبت داده شده‌است. در حقیقت، بسیاری از اینها دقیق‌تر وجود یا عدم وجود [[ایمنی نوع]]، [[ایمنی حافظه]]، [[بررسی ایستایی نوع]]، یا [[بررسی پویایی نوع]] را درک کرده‌اند.
«نوع دهی نیروند» معمولا به استفاده از «انواع» زبان های برنامه نویسی برای اخذ «نامتغیر» های کد، و اطمینان از صحت آنها، و بیرون سازی قطعی کلاس های مشخص و خطاهای برنامه نویسی ارجاع دارد. بنابراین برای دستیابی به این اهداف، نظام های «نوع‌دهی نیروند» زیادی وجود دارد.
 
== جستارهای وابسته ==