لوگو (زبان برنامه‌نویسی): تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
خنثی‌سازی ویرایش 12773219 توسط Milyooner (بحث)
Rezabot (بحث | مشارکت‌ها)
خط ۵:
== تاریخچه ==
اواسط دهه ۱۹۶۰ میلادی سیمور پپرت به همراه [[ماروین مینسکی]] آزمایشگاه هوش مصنوعی [[دانشگاه ام‌آی‌تی]] را راه‌اندازی کرد. پپرت با گروهی از شرکت بولت، برنک و نیومن (BBN) که توسط والاس فرزیگ رهبری می‌شد همکاری کرد و در سال [[۱۹۶۷ (میلادی)|۱۹۶۷]] اولین نسخه زبان لوگو به وجود آمد. در چهار سال اول، آموزش و تحقیقات روی این زبان در شرکت BBN انجام شد. اولین پیاده‌سازی این زبان که گوست نامیده می‌شود به‌وسیله لیسپ نوشته شد. هدف گوست آموزش حل مسئله بود و کودکان می‌توانستند در یک محیط ریاضیاتی کار با کلمات و جمله‌ها را یاد بگیرند. لاک‌پشت ویرایشگر بازخورد سریعی می‌داد تا اشکالات برنامه مشخص شود.
هدف از آموزش کودکان در زمینه ی فناوری ، درگیر کردن آنها در فعالیت های هدفمند است تا ضمن جذب مهارت ها و مفاهیم موجود کودکان ، به سمت دانش سطح بالا (پیشرفته) و اندیشه ی انتقادی ناشی از فرایند ها و تولیدات فنی سوق داده شوند. تلاش برای فهم و به کارگیری فرایند ها ( شامل تصمیم گیری در باره ی انتخاب و به کارگیری فناوری های مناسب ؛ طراحی ، و ساخت و ارزیابی تولیدات و فرایندهای فنی ؛ اجرا و توسعه ی مواد ، اطلاعات و سیستم ها ) و فناوری های نوین ، مطمئنامطمئناً اولین چالش خواهد بود (1996,X) . اغلب تاکیدات بر استفاده از رایانه به عنوان ابزاری برای بهره وری و حل مسئله در یک محیط یادگیری سازنده است که عمدتاعمدتاً ، استانداردها به طور روشنی ، تعریف شده اندشده‌اند . اما " ادغام رباتیک در کلاس " برای بهبود تفکر انتقادی و ترویج یادگیری سطح بالا ، یکی از حوزه هایی که کمتر به آن توجه شده است (Chambers and et al, xxxx ) و امروزه نسبتانسبتاً بلا استفاده مانده است.
ایده ی استفاده از رباتیک در کلاس ، براساس فعالیت های پژوهشی سیمور پاپرت ( Seymour Papert ) - پدر زبان برنامه نویسی لگو (Lego) - است . لگو برای استفاده ی کودکان و بر اساس دیدگاه پیاژه (1964) مبنی بر اینکه مفاهیم انتزاعی را می توان با بررسی های اکتشافی دستی ( تجربه عملی ) یادگرفت ، طراحی شد. از نظر پاپرت ، کودکان فعالانه ساختارهای فکری خود را می سازند و توانایی یادگیری استفاده از زبان برنامه نویسی و رایانه را دارند که یک مهارت پایه برای یادگیری هر چیزی است (1996,X) . در برنامه نویسی با مولفه ای تحت عنوان " معنا سازی " روبرو هستیم ، هر نشانه در برنامه ، معنایی دارد و دانش آموزان فهم خود را از این نشانه ها در ذهن می سازند (2006Ricca and et all,)(ترجمه پرستو علیخانی)
 
در حال حاضر لوگو تفاوت چندانی با ایده‌های اولیه قبل از اولین لاک‌پشت ندارد. در اوایل طراحی این زبان یک روبوت به شکل لاک‌پشت با توجه به دستورات نوشته شده در کامپیوتر روی زمین حرکت می‌کرد. اولین روبوت لاک‌پشت در سال ۱۹۶۹ در [[دانشگاه ام‌آی‌تی|ام‌آی‌تی]] به‌وجود آمد. این روبوت که ایروینگ نام داشت دارای حسگرهای لمسی بوده و می‌توانست به عقب، جلو، راست و چپ حرکت کرده و یا زنگ خود را به صدا درآورد. بعدها روبوت لاک‌پشت حذف و به نمایشگر کامپیوتر منتقل شده و با دستور‌هاییدستورهایی شکل و طرح‌هایی را رسم می‌کرد.
 
 
در حال حاضر لوگو تفاوت چندانی با ایده‌های اولیه قبل از اولین لاک‌پشت ندارد. در اوایل طراحی این زبان یک روبوت به شکل لاک‌پشت با توجه به دستورات نوشته شده در کامپیوتر روی زمین حرکت می‌کرد. اولین روبوت لاک‌پشت در سال ۱۹۶۹ در [[دانشگاه ام‌آی‌تی|ام‌آی‌تی]] به‌وجود آمد. این روبوت که ایروینگ نام داشت دارای حسگرهای لمسی بوده و می‌توانست به عقب، جلو، راست و چپ حرکت کرده و یا زنگ خود را به صدا درآورد. بعدها روبوت لاک‌پشت حذف و به نمایشگر کامپیوتر منتقل شده و با دستور‌هایی شکل و طرح‌هایی را رسم می‌کرد.
 
== طراحی ==
مشهورترین خصوصیت لوگو نشانه‌گر به شکل لاک‌پشت آن است که می‌توان دستور حرکت و یا کشیدن شکل به آن داد و با توجه به برنامه خطوط گرافیکی رسم می‌کند. این نشانه‌گر معمولاً به شکل یک لاک‌پشت یا یک مثلث نشان داده می‌شود. لاک‌پشت گرافیکی در اواخر دهه ۱۹۶۰ میلادی توسط سیمور پپرت به لوگو اضافه شد تا نسخه دارای روبوت لاک‌پشت را پشتیبانی کند. این روبوت لاک‌پشت یک روبوت ساده بود که از ایستگاه کاری کاربر کنترل می‌شد و دستور‌هاییدستورهایی برای رسم اشکال به روبوت که دارای یک قلم درون خود یا چسبیده به آن بود می‌داد.
 
استفاده از هندسه لاک‌پشت به جای یک مدل مرسوم‌تر، حرکت منطقی روبوت لاک‌پشت را تقلید می‌کند. هندسه لاک‌پشت با (x،y) ای که در هندسه کارتزین استفاده می‌شود، تفاوت دارد و بیشتر در یک فضای اقلیدسی کار می‌کند (با استفاده از اندازه‌ها و زوایای نسبی و بدون مبدا و متفاوت از سیستم‌های با دستگاه مختصات). لاک‌پشت با دستور‌هاییدستورهایی نسبت به مکان فعلی خودش حرکت می‌کند. LEFT ۹۰ به این معناست که ۹۰ درجه به سمت چپ بچرخ. یک دانش‌آموز با فرض اینکه اگر جای لاک‌پشت باشد باید چه حرکتی انجام دهد، می‌تواند حرکت لاک‌پشت را بفهمد (پیش‌بینی و درباره آن استدلال کند). پپرت این موضوع را استدلال سازگار با محیط نامید. بعضی از پیاده‌سازی‌های لوگو، به خصوص آنهایی که اجازه وجود چند لاک‌پشت را می‌دهند، ردیابی برخورد (collision detection) را پشتیبانی کرده و اجازه می‌دهند کاربر نمایش نشانه‌گر لاک‌پشت را دوباره تعریف کند.
 
لوگو معمولاً به عنوان زبانی مفسری شناخته می‌شود، با این حال اخیراً برخی نسخه‌های کامپایلی لوگو مانند Lhogho و Liogo نیز ساخته شده‌است. لوگو حساس به بزرگ یا کوچک بودن حروف نیست ولی حالت را برای فرمت کردن نگه می‌دارد. لوگو مصالحه‌ای بین زبان برنامه‌نویسی ترتیبی با ساختار بلوکی و زبان برنامه‌نویسی تابعی است. لوگوی استانداردی وجود ندارد، اما UCBLogo به‌شدت مورد توجه‌است. این زبان برای آموزش برنامه‌نویسی به کار می‌رود، اما به خاطر امکانات خوب کار با لیست‌ها زبان بسیار خوبی برای ایجاد scriptهای مفید است.
سطر ۱۲۶ ⟵ ۱۲۴:
=== توابع و زیربرنامه‌ها ===
هر خط از یک برنامه از فراخوانی توابع و یا در اصطلاح برنامه‌نویسی زیربرنامه‌هایی تشکیل شده‌است. دو نوع زیربرنامه وجود دارند:
* دستور‌هاییدستورهایی که اجرا می‌شوند ولی نتیجه‌ای به عنوان خروجی ندارند، مانند <code>print</code>
* اعمالی که مقداری را به عنوان خروجی برمی‌گردانند، مانند <code>first</code> ، <code>sum</code> و <code>readlist</code>
یک دستور مانند یک رویه در زبان پاسکال است. مجموعه‌ای از دستورات به نام گزاره‌ها که بعد از اجرا کلمه <code>true</code> یا <code>false</code> را برمی‌گردانند با حرف p تمام می‌شوند. مثالهای آن <code>wordp</code> ، <code>emptyp</code> و <code>listp</code> است.
سطر ۱۷۲ ⟵ ۱۷۰:
[[رده:زبان‌های برنامه‌نویسی آکادمیک]]
[[رده:زبان‌های برنامه‌نویسی آموزشی]]
[[رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۱۹۶۷ (میلادی)]]
[[رده:زبان‌های تابعی]]
[[رده:نرم‌افزارهای آموزشی آزاد]]