تازه های سایت های آموزش برنامه نویسی به کودکان
سیستم چه در زمان کامپایل و چه در زمان سایت های آموزش برنامه نویسی به کودکان اجرا، به صورت دستی حاشیه نویسی یا استنباط خودکار. همانطور که مارک ماناس به اختصار بیان کرد:[3]
مشکل اساسی که توسط یک نظریه نوع به آن پرداخته می شود، اطمینان از معنی دار بودن برنامه ها است. مشکل اساسی ناشی از تئوری نوع این است که برنامه های معنادار ممکن است معانی منسوب به آنها نداشته باشند. تلاش برای سیستم های نوع غنی تر از این تنش ناشی می شود.
اختصاص یک نوع داده، که تایپ نامیده می شودسایت های آموزش برنامه نویسی به کودکان، به دنباله ای از بیت ها مانند یک مقدار در حافظه یا برخی از شی ها مانند یک متغیر معنی می دهد. سخت افزار یک کامپیوتر با هدف عمومی نمی تواند بین یک آدرس حافظه و یک کد دستورالعمل یا بین یک کاراکتر، یک عدد صحیح یا یک عدد ممیز شناور تمایز قائل شود، زیرا هیچ تمایز ذاتی بین هیچ یک از مقادیر ممکن ایجاد نمی کند. ممکن است دنباله ای از بیت ها به این معنی باشد. [یادداشت 1] ارتباط دنباله ای از بیت ها با یک نوع، این معنا را به سخت افزار قابل برنامه ریزی منتقل می کند تا یک سیستم نمادین متشکل از آن سخت افزار و برخی برنامه ها تشکیل شود.
یک برنامه هر مقدار را حداقل با یک نوع خاص مرتبط می کند، اما ممکن است اتفاق بیفتد که یک مقدار با زیرگروه های زیادی مرتبط باشد. موجودیت های دیگر، مانند اشیا، ماژول ها، کانال های ارتباطی و وابستگی ها می توانند با یک نوع مرتبط شوند. حتی یک نوع می تواند با یک نوع مرتبط شود.سایت های آموزش برنامه نویسی به کودکان پیادهسازی یک سیستم نوع میتواند در تئوری هویتهایی به نام نوع داده (نوعی از یک مقدار)، کلاس (نوعی از یک شی) و نوع (نوعی از یک نوع یا متاتایپ) را مرتبط کند. اینها انتزاعیاتی هستند که تایپ کردن می تواند در سلسله مراتبی از سطوح موجود در یک سیستم طی کند.
هنگامی که یک زبان برنامه نویسی یک سیستم نوع پیچیده تری را تکامل می دهد، مجموعه قوانین دقیق تری نسبت به بررسی نوع اولیه به دست می آورد، اما زمانی که استنتاج های نوع (و سایر خصوصیات) غیرقابل تصمیم گیری شوند، و زمانی که باید توجه بیشتری به آن شود، این بهای تمام می شود. برنامه نویس برای حاشیه نویسی کد یا در نظر گرفتن عملیات و عملکرد مرتبط با کامپیوتر. یافتن یک سیستم نوع به اندازه کافی رسا که سایت های آموزش برنامه نویسی به کودکان تمام شیوه های برنامه نویسی را به شیوه ای ایمن برآورده کند، چالش برانگیز است.
یک کامپایلر زبان برنامهنویسی همچنین میتواند یک نوع وابسته یا یک سیستم اثر را پیادهسازی کند، که این امکان را میدهد تا مشخصات برنامه حتی بیشتر توسط یک جستجوگر نوع تأیید شود. فراتر از جفتهای ساده از نوع مقدار، یک «منطقه» مجازی از کد با یک مؤلفه «اثر» همراه است که آنچه را که با چه انجام میشود، توصیف میکند و برای مثال امکان «پرتاب» یک گزارش خطا را فراهم میکند. بنابراین سیستم نمادین ممکن استسایت های آموزش برنامه نویسی به کودکان یک سیستم نوع و اثر باشد، که به آن کنترل ایمنی بیشتری نسبت به بررسی نوع به تنهایی می بخشد.
چه توسط کامپایلر خودکار باشد و چه توسط یک برنامه نویس مشخص شده باشد، یک سیستم نوع رفتار برنامه را اگر خارج از قوانین سیستم نوع باشد غیرقانونی می کند. مزایای ارائه شده توسط سیستم های نوع خاص برنامه نویس عبارتند از:
انتزاع (یا مدولار بودن) - انواع برنامه نویسان را قادر مسایت های آموزش برنامه نویسی به کودکانی سازد تا در سطحی بالاتر از بیت یا بایت فکر کنند، و با اجرای سطح پایین آزار ندهند. به عنوان مثال، برنامه نویسان می توانند شروع به در نظر گرفتن یک رشته به عنوان مجموعه ای از مقادیر کاراکتر کنند و نه به عنوان یک آرایه صرف از بایت ها. با این حال، تیپهای بالاتر، برنامهنویسان را قادر میسازند در مورد رابطهای بین دو زیرسیستم با هر اندازه فکر کنند و آن را بیان کنند. این امکان سطوح بیشتری از محلی سازی را فراهم می کند به طوری که تعاریف مورد نیاز برای قابلیت همکاری زیرسیستم ها زمانی که آن دو زیرسیستم با هم ارتباط برقرار می کنند سازگار باقی می مانند.
مستندسازی - در سیستمهای نوع گویاتر، انواع مسایت های آموزش برنامه نویسی به کودکانیتوانند بهعنوان شکلی از مستندسازی عمل کنند که هدف برنامهنویس را روشن میکند. برای مثال، اگر یک برنامهنویس تابعی را بهعنوان یک نوع مهر زمانی اعلام کند، این تابع زمانی را مستند میکند که نوع مهر زمانی را میتوان به صراحت در عمق کد به عنوان یک نوع عدد صحیح اعلام کرد.
مزایای ارائه شده توسط سیستم های نوع مشخص شده توسط کامپایلر عبارتند از:
بهینه سازی - بررسی نوع استاتیک ممکن است اطلاعات مفیدی در زمان کامپایل ارائه دهد. به عنوان مثال، اگر یک نوع مستلزم آن باشد که یک مقدار باید در مضرب چهار بایت در حافظه تراز شود، کامپایلر ممکن است بتواند از دستورالعمل های ماشین کارآمدتر استفاده کند.
ایمنی – یک نوع سیستم به کامپایلر امکان می دهد کد بی معنسایت های آموزش برنامه نویسی به کودکانی یا نامعتبر را تشخیص دهد. به عنوان مثال، زمانی که قوانین نحوه تقسیم یک عدد صحیح را بر یک رشته مشخص نمی کنند، می توانیم عبارت 3 / "Hello, World" را نامعتبر تشخیص دهیم. تایپ قوی ایمنی بیشتری را ارائه می دهد، اما نمی تواند ایمنی کامل نوع را تضمین کند.
خطاهای تایپ
یک خطای نوع زمانی رخ میدهد که یک عملیات نوع متفاوتی از دادهها را نسبت به آنچه انتظار میرفت دریافت کند.[4] به عنوان مثال، اگر یک خط کد دو عدد صحیح را تقسیم کند، و به جای یک عدد صحیح، یک رشته از حروف ارسال شود، یک خطای نوع رخ می دهد.[4] این یک وضعیت ناخواسته است [یادداشت 2] که ممکن است در مراحل مختلف توسعه یک برنامه ظاهر شود. بنابراین یک تسهیلات برای تشخیص خطا در سیستم نوع مورد نیاز است. در برخی از زبانها، مانند Haskell، که استنتاج نوع برای آنها خودکار است، ممکن است برای کمک به تشخیص خطا در دسترس کامپایلر آن باشد.
ایمنی نوع به صحت برنامه کمک می کند، اما ممکنProgramming teaching sites for children است صحت را فقط به قیمت بررسی نوع خود تضمین کند