زبان برنامه نویسی بلاکی چیست؟
برای اینکه بدانید زبان برنامهنویسی بلاکی چه مدل زبانی است ابتدا باید با زبانهای رایج برنامهنویسی کمی آشنا شوید. تنوع زبانهای برنامهنویسی خیلی زیاد است؛ اما همه آنها معمولاً نیاز به نوشتن یا تایپ شدن دارند و در محیطهای نرمافزاری مخصوص به خودشان تایپ میشوند.
زبان برنامهنویسی که انسانها برای کد نویسی از آن استفاده میکنند با زبانی که کامپیوترها آن را میفهمند خیلی تفاوت دارد. کامپیوترها تنها چیزی که میفهمند زبان ریاضیات سادهای است که قطعات الکترونیکی آنها را روشن و خاموش میکند؛ یعنی یک سیگنال الکتریکی که در لحظه یک قطعه یا یک مدار را در کامپیوتر روشن یا خاموش میکند؛ اما زبانی که ما با آن برنامه مینویسیم توسط افرادی که ساختمان کامپیوترها و رباتها را بهخوبی درک میکنند و الکترونیک میدانند طراحی میشود و به زبان انسان شباهت دارد تا بتوانیم با خطای کمتری برنامه بنویسیم. خطا؟ به نظر شما چرا صحبت کردن با زبان کامپیوتر خطای ما را افزایش میدهد؟
گفتیم زبان کامپیوتر، زبان الکترونیک و ریاضیات است. مثلاً خط زیر یک خط از کد یک برنامه است که به کامپیوتر میگوید: در آدرس خانه 000000000000004E حافظه کامپیوتر مقدار 54h که معادل همان حرف انگلیسی T بزرگ است را ذخیره کن. این خط کد برنامه را من برای شما از برنامه ماشین حساب ویندوز گرفتم.
seg000:000000000000004E db 54h ; T
نرم افزارهایی برای تبدیل کد بعضی اپلیکیشن ها و نرم افزارهای دیگر به کد ماشینی(سطح پایین) وجود دارد. یکی از معروف ترین هایش iDA نام دارد. کافی است این نرم افزار رایگان را دانلود کنید و فایل Calculator.exe را در کامپیوتر پیدا کنید و از آن یک کپی بگیرید. سپس کپی را داخل محیط نرم افزار IDA بکشید تا کدهای ماشینی پشت ماشین حساب ویندوز را ببینید. برای این باید کپی بگیرید که ویندوز اجازه دست کاری کدهای خودش را نمی دهد.
هنوز نمی دونی زبان برنامه نویسی سطح بالا و سطح پایین چیه؟ اِی وایِ من بدو برو 5 دقیقه متن زیر رو بخون با کلی اطلاعات دیگه که به دردت می خوره.
همانطور که میبینید این کد پر از اعداد مشابه هم است و برای ما انسانها معنایی ندارد. برنامه نوشتن با چنین زبانی دیوانه کننده و وحشتناک به نظر میآید. امکان اشتباه کردن بین اینهمه عدد زیاد به نظر میرسد. برای همین دانشمندان علوم رایانه از همان ابتدای ساخت اولین نسل کامپیوترهای امروز در تلاش بودند تا زبانی برای ارتباط گرفتن انسان با آنها طراحی کنند که به زبان حرف زدن ما شبیهتر باشد. اصطلاحاً به این نوع زبانها، زبانهای سطح بالا میگویند و به زبانهای دورتر از زبان انسان و شبیهتر به زبان کامپیوتر، زبان سطح پایین میگویند.
انواع و اقسام زبانهای برنامهنویسی تا به امروز طراحیشده است. C فُرترن دلفی جاوا PHP جاوا اسکریپت پایتون و … ولی کد نویسی با این زبانها تنها برای بزرگسالان آسان است. آموزش دادن و یادگیری این نوع زبانها برای کودکان و نوجوانان کمی سخت است. یکی از دلایل آن را میتوان شیوه نگارش یا دستور زبان دانست. باوجوداینکه بعضی از این زبانها با اختلاف زیادی از زبان کامپیوتر فاصله گرفتند و مشابه زبان انسان هستند اما همچنان شیوه نوشتن آنها برای کودکان سخت است و خطای نگارش یا دستور زبان در افراد خردسال را زیاد میکند. به این معنا که شما نمیتوانید هر طور دلتان خواست کد بنویسید در بعضی دستورات باید از ویرگول استفاده کنید، بعضی جاها باید نقطهویرگول و درجایی دیگر تنها یکفاصله خالی بگذارید. اگر این علائم نگارشی را رعایت نکنید برنامه شما یا کلاً یا بهدرستی کار نمیکند.
خودِ کار نوشتن هم کاری وقتگیر است و سر کلاس آموزشی بیشتر وقت فراگیری را هدر میدهد؛ اما مگر کاری غیر از نوشتن هم وجود دارد؟
دانشمندان علوم کامپیوتر در دهه 1940 به این فکر افتادند که زبانهای سادهتری برای کودکان یا نوجوانان ایجاد کنند تا آنها هم بتوانند برنامهنویسی را از کودکی یاد بگیرند. اولین زبانی که به این شکل ایجاد شد LOGO نام داشت. البته لوگو هم یکزبان نوشتاری بود ولی دستوراتش خیلی سادهتر شده بودند و بیشتر شامل مفاهیم ریاضی و ترسیم اشکال هندسی شده بود. در سالهای اخیر زبانهای برنامهنویسی آموزشی خلق شدند و توسعه یافتند که به آنها زبانهای گرافیکی یا بلوکی گفته میشود.
این زبانها هیچ شباهتی به زبانهای بزرگسال ندارند. شاید همانطور که از نام بلوک برمیآید آنها شبیه به قطعات پازل یا آجرهای لگو هستند که رویهم چیده میشوند تا یک مسئله را مطابق یک الگوریتم حل کنند.
این زبانها به دلیل گرافیکی بودن دیگر نیازی به دستور زبان نگارش ندارند به همین دلیل سرعت یادگیری را صدچندان کردهاند. تنها خطایی که در برنامهنویسی به این زبان میتوانید ببینید خطایی است که مربوط به شیوه حل کردن شماست یعنی خطاهای الگوریتمی؛ این مسئله به تقویت قدرت تفکر و پرورش مهارت حل مسئله کمک بزرگی میکند. میتوانم بگویم فوقالعاده است!
یادم میآید وقتی دانشجوی رشته مهندسی رباتیک بودم و زبان C میخواندم ساعتها کد مینوشتم. این درس جزء تنها دروسی بود که بهشدت به آن علاقه داشتم بیشتر به این دلیل که لمس میکردم چه اتفاقی میافتد. برای اینکه امکانات کمی برای آزمایش نیاز داشت: یک کامپیوتر، یک نسخه از نرمافزار توربو سی و یک مغز متفکر و خوش حوصله. روی برنامهها وقت میگذاشتم و چندین ساعت آنها را روی دیوار خانه که از جنس کاشی سرامیک بود مینوشتم تا بتوانم فضای کافی برای نوشتن داشته باشم و سریع پاککنم و سراغ نوشتن برنامه بعدی بروم و سریعتر آن را یاد بگیرم. وقتی برنامهها را به کامپیوتر منتقل میکردم هیچوقت بدون خطا نبودند. سرگرمی من این شده بود خطاها را پیدا کنم. وقتی خطا را پیدا میکردم انگار گنجی یافته بودم. پیدا کردن خطاها برای من آموزنده بود. یکی از آن ها که دقیقاً یادم هست خطای مربوط بهاندازه یک متغیر بود که باعث شده بود دادههای من از متغیر بیرون بریزد و نتیجه برنامه را تغییر دهد. واقعاً هیجانانگیز بود.
اما زبان برنامهنویسی بلوکی این دردسرها را ندارد. برنامه را در این نرمافزارها نمینویسند بلکه میسازند. کلیه دستورات مثل زبانهای دانشگاهی است و فقط نیازی به تایپ کردن ندارد. شکل گرافیکی آن باعث میشود علاوه بر جذابیتهای یادگیری سرگرمکنندهتر به نظر برسد و بیشتر شبیه به یک بازی باشد تا یک کار جدی مهندسی.
تعدادی از بلوکهای این برنامه را ببینید که به روش Snap به همدیگر میچسبند. روش Snap را هم در ویدئوی زیر میتوانید ببینید. این روش به معنی ضربه سریع در هنگام نزدیک کردن بلوکها به همدیگر است. بلوکها یکجور حالت مغناطیسی شبیه به آهنربا دارند. کل کارهای داخل نرم افزار با روش Drag & Drop انجام میشود، یعنی کشیدن و رها کردن. خیلی جذاب است! مگر نه؟
دیدگاهتان را بنویسید