بازی صفر و یک
اگرچه برنامه نویسی یک اختراع جدید محسوب میشود اما این در حالی است که ایده ی مجبور کردن یک ماشین یا دستگاه برای انجام یکسری دستورات خاص به سالها پیش -چیزی در حدود یک قرن پیش- باز میگردد. در واقع، یکی از ابتداییترین طرحها برای یک ماشین قابل برنامهریزی -یا همان کامپیوتر- از کسی به نام Charles Babbage در سال ۱۸۳۴ گرفته شد.
در واقع وی پیشنهاد ساخت یک ماشین بخار که به صورت مکانیکی یکسری کارها را انجام دهد -که تحت عنوان موتور تحلیلگر شناخته میشود- را داده بود. برخلاف سیستمهای محاسبه ی آن روز که تنها میتوانستند یک عمل محاسباتی را انجام دهند، موتور تحلیلگر آقای چارلز بابج چندین کار همزمان را میتوانست انجام دهد. دستوراتی که به ماشین داده میشد از طریق یکسری کارتها انجام میپذیرفت که با تغییر تعداد این کارتها و نوع آن ها، هر کسی میتوانست دستورات مد نظر خود را به ماشین برای محاسبه ی آنها بدهد.
ایده ی ماشینهای قابل برنامهریزی توجه خانمی به نام Ada Lovelace را به خود جلب کرد که یک ریاضیدان بود. لذا او برنامهای نوشت -یا بهتر است بگوییم کارتهایی ترتیب داد- که تعدادی عدد خاص را پشت سر هم چاپ میکرد (با توجه به این که این خانم اولین کسی بود که کار خاصی را با Analytical Engine یا همان موتور تحلیلگر انجام داد، وی را میتوان به نوعی اولین برنامه نویس دنیا نیز تلقی کرد که نامگذاری زبان برنامه نویسی Ada هم به احترام وی صورت گرفته است.)
چیزی پس از گذشت یکصد سال، اولین کامپیوتر به معنای واقعی کلمه در سال ۱۹۴۳ توسط ارتش ایالات متحده طراحی شد. این ماشین که Electronic Numerical Integrator and Computer یا به اختصار ENIAC نامیده شد، از کابلها و سوییچهای مختلفی تشکیل شده بود و برای دستور دادن به آن، برنامه نویس میبایست جای کابلها و سوییچها را تغییر دهد (جالب است بدانیم که اولین برنامه نویسان این کامپیوتر همگی خانم بوده اند!) نکته ی اصلی اینجا است که کامپیوترهای آن موقع بسیار حجیم و گران بودند و کار کردن با آنها واقعا تخصص نیاز داشت!
تاریخچه بازی صفر و یک
نسخه اصلی Basic (که شامل symbolic instruction code begginers all purpose به معنی «کد حاوی دستورات نمادین همه منظوره مخصوص نوآموزان» در کالج دارتموت در سال ۱۹۶۴ به عنوان زبانی آموزشی ابداع گشت.یادگیری و طریقه استفاده از سایر زبانهایی که تا آن زمان وجود داشتند- از جمله اسمبلی، فرترن و کوبول- بسیار مشکلتر بود و برای دانشجویان مبتدی علوم کامپیوتر مناسب نبود.
زبان کامپیوتری چیست؟ گاهی اوقات ممکن است مفهومی که ما از «زبان برنامه نویسی» در ذهن داریم با آنچه دیگران میدانند، فرق کند. لذا برای اطمینان از اینکه همه یک جور فکر میکنند برخی مفاهیم کامپیوتری از جمله زبانها را قبل از شروع بیسیک مرور خواهیم کرد.
کامپیوتر ابزاری است که محاسبات عددی را انجام میدهد و یا علایم مربوط به مجموعه مشخصی از قوانین دستکاری میکند. قوانین به صورت برنامه وارد کامپیوتر میشوند. برنامه لیستی از دستورات و دادههایی است که کامپیوتر میتواند انها را تفسیر و اجرا نماید. هر خط درون برنامه معمولا یک حکم (statement) نامیده میشود؛ هر حکم دستورالعملی را به کامپیوتر منتقل میسازد (مثلا: دو مقدار مشخص را با هم جمع کن و حاصل را ذخیره نما).
ممکن است دستورالعملی را به کامپیوترهای مدرن، هم رقمی و هم دودویی هستند.بدین معنی که اطلاعات ذخیره شده درون آنها خواه دستورالعمل باشد و خواه داده، به صورت مقادیر گسسته کمیت دار (ارقام) هستند که در مبنای ۲ یا نمادگذاری دودویی ذخیره میشوند. (مثلا: در دودویی عدد ۵ به صورت ۱۰۱ در میآید). در واقع کامپیوتر قادر به درک رشتههای بزرگی از یک و صفر میباشد. یک کد ثابت فرمان میدهد که چطور این رشته ارقام دودویی باید تفسیر گردند.