موتور تحلیلی

پیشنهاد ساخت موتور تحلیلی که یک نوع رایانه عمومی است توسط ریاضی‌دان انگلیسی چارلز بابیج ارائه شد.
بابیج هرگز قادر به تکمیل ساخت و ساز هر یک از ماشین آلات خود به دلیل درگیری با مهندس ارشد و بودجه ناکافی نبود تا سال۱۹۴۰که اولین رایانه همه منظوره واقعی ساخته شد.
پیش نما
به طور کلی دو نوع پانچ کارت برای برنامه‌نویسی استفاده می‌شود.
کارتهای عملیاتی که برای وارد کردن توابع اینستیگومتریک استفاده می‌شد و توسط ارزیابی تفاوت‌های محدود، تخمین توابع چند جمله‌ای را می‌ساخت. ساخت این ماشین هرگز کامل نشد؛ بابیج با مهندس ارشد خود، جوزف کلمنت، درگیر شد و در نهایت دولت انگلستان از تامین بودجه این پروژه سرباز زد.
در طول انجام این پروژه او متوجه شد که می‌توانسته یک طراحی کلی‌تر یعنی موتور تحیلی را بسازد. ورودی (اعم از برنامه‌ها و داده‌ها) توسط پانچ کارت‌ها برای ماشین فراهم می‌شد، روشی که در آن زمان برای هدایت مکانیکی ماشین بافندگی مانند بافندگی نقش و نگار بروی پارچه استفاده می‌شد. برای خروجی، ماشین باید یک چاپگر، یک پلاتر منحنی و یک زنگ می‌داشت. آن همچنین می‌بایست توانایی پانچ کردن شماره‌ها بروی کارت‌ها را داشته باشد تا بعدا بتوانند آن‌ها را بخوانند و استفاده کنند. در آن از نقطه ثابت حسابی بر پایه ۱۰ (سیستم ده دهی) استفاده می‌شد.
یک محل ذخیره (که اکنون به جای آن کارت حافظه استفاده می‌شود) در آن وجود داشت که می‌توانست هزار عدد و تا چهل رقم اعشار (حدود ۱۶٫۷ کیلوبایت) را نگه داری کند. یک واحد محاسباتی ("آسیاب") قادر به انجام هر چهار عملیات محاسباتی بود، علاوه بر آن می‌توانست مقایسه کند و به صورت اختیاری ریشه دوم (جذر) نیز بگیرد. در ابتدا آن یک موتور تفاضلی که بر پشته خود هم ده است تصور می‌شد، در یک طرح دوار کلی، با محل ذخیره بلند که از یک سمت خارج می‌شود. (طرح‌های بعدی طرح شبکه‌هایی قاعده‌مند را نمایش می‌داد) مانند واحد پردازش مرکزی (CPU) در رایانه‌های امروزی، آسیاب برای ذخیره اطلاعات در در شکل گیره در استوانه‌های دوار به نام "بشکه" به رویه مر کزی خود تکیه می‌کد، تا دستورالعمل‌های پیچیده‌تر که ممکن بود برنامه کاربر مشخص کند را پیش ببرد.
زمان برنامه‌نویسی که توسط کاربران استفاده می‌شد شبیه زبان همگذاری امروزی بود. شاخه‌سازی حلقه‌ای و مشروط امکان‌پذیر بودند، بنابراین آن زبان همانگونه که فهمیدیم با توجه به عنوانی که بعدها توسط آلن تورینگ تعریف شد، همه منظوره (turing- compele) بود. سه نوع متفاوت از پانچ کارت‌ها استفاده می‌شد. یکی برای عملیات‌های ریاضی، یکی برای ثابت‌های عددی و یکی برای بارگذاری و ذخیره عملیات‌ها یعنی انتقال اعداد از محل ذخیره به واحد محاسباتی و برعکس. سه دستگاه مجزا برای خواندن سه نوع کارت وجود داشت.
در سال ۱۸۴۳، ریاضی‌دان ایتالیایی به نام لوئیجی بنابری، کسی که بابیج در زمان مسافرتش به ایتالیا با او ملاقات کرده بود، یک شرح از آن موتور را به زبان فرانسه نوشت. در سال ۱۸۴۳، آن شرح به زبان انگلیسی ترجمه و توسط آدا بایرون، کانتیس لاولیس، به صورت گسترده تفسیر شد.
آدا بایرون ده سال قبل از آن به این موتور علاقه‌مند شده بود. به خاطر شناختن مواردی که او به مقاله منابری (Menabrea) اضافه کرد که شامل روشی برای محاسبه ارقام برنولی با استفاده از ماشین بود، او به عنوان اولین برنامه‌نویس کامپیوتری شناخته شد. زبان برنامه‌نویسی مدرن آدا به افتخار او نام گذاری شده است.
ساخت و ساز
بابیج دراواخرعمر خود، به دنبال راه‌هایی برای ساخت نسخه ساده شده دستگاه و مونتاژ قسمت کوچکی از آن قبل از مرگش در سال ۱۸۷۱ بود.
در سال ۱۸۷۸، کمیته‌ای از انجمن بریتانیا برای پیشرفت علم پیشنهادی علیه ساخت موتور تحلیلی تشکیل داد.
در سال ۱۹۱۰، پسر بابیج یعنی هنری پریوست بابیج گزارش داد که قسمتی از آسیاب و دستگاه چاپ ساخته شده است و برای محاسبه (نقص) یک لیست از تقسیم عددی بر مضرب پی استفاده شده است. این تنها بخش کوچکی از کل موتور را تشکیل می‌داد که قابل برنامه‌نویسی نبود و محلی برای ذخیره‌سازی نداشت. (تصاویری معروف از این بخش گاهی اوقات به صورت اشتباهی به عنوان کل آسیاب و حتی کل موتور برچسب خورده است) «آسیاب موتور تحلیلی» هنری بابیج، برای نمایش در موزه علوم لندن قرار دارد. هنری همچنین پیشنهاد ساخت یک نسخه آزمایشی از موتور کامل را داد که دارای ظرفیت ذخیره‌سازی کوچکتری بود: «شاید برای ماشین اول ۱۰ (ستون) به همراه پنج چرخ در هرکدام کافی باشد.» این چنین نسخه‌ای می‌توانسه ۲۰ عدد با ۲۰ رقم را دستکاری کند و چیزی که می‌شده به آن گفت تا با این اعداد انجام دهد بسیار قابل توحه بوده. «این تنها امری مربوط به کارت‌ها و زمان اس و دلیلی ئجود ندارد که (دوهزار) کارت اگر ضروری باشد در یک موتور تحلیلی و به منظور محاسبات ذیاضی نباید استفاده شود.» نوشته شده توسط هنری بابیج در سال ۱۸۸۸.
در سال ۱۹۹۱، موزه غلوم لندن یک نمونه کامل و قابل استفاده از موتور تفاضلی شماره ۲ ی بابیج را ساخت، یک طراحی که اصلاحات بابیج در طی توسعه موتور تحلیلی را در آن به بردند. این ماشین از مواد و مهندسی رواداری ساخته شد که در دسترس بابیج بوده و این باعث شد تا این بحث که طرح بابیج با فناوری ساخت آن زمان نمی‌توانسته تولید شود، غیرمعقول دانسته و سرکوب شود.
در اکتبر ۲۰۱۰، جان گراهام کامینگ یک کمپین توسط «اشتراک عمومی» برای افزایش وجوه تشکیل داد تا مطالعات دانشگاهی و تاریخی از برنامه‌های بابیج را فعال کند، با این دید که یک طرح مجازی کاملا قابل استفادهاز موتور تحلیلی ساخت و اجرا کرد و از آن برای ساخت نسخه فیزیکی استفاده کرد.
در سال ۲۰۱۳ این پروژه در سایت http://plan28.org/ در حال انجام است.
مجموعه آموزش
بابیج به خاطر نوشتن یک مجموعه صریح از دستورالعمل‌ها برای موتور تحلیلی به روش کتابچه پردازنده‌های مدرن شناخته شده نیست. در عوض او برنامه‌هایش را به عنوان لیستی از شرایط در زمان اجرای آن‌ها، نشان داده است، که نشان می‌دهد چه اپراتوری در هر مرحله در حال اجراست و همچنین نشانه کوچکی از این که جریان کنترل هدایت می‌شود را نشان می‌دهد. بروملی (به پایین رجوع کنید) این گونه در نظر گرفته است که عرشه کارت‌ها می‌توانسته در جهت‌های جلو و عقب به عنوان عملکرد انشعاب‌های شرطی بعد از امتحان شرایط خوانده شود، که موتور را به دستگاهی همه منظوره تبدیل می‌کرد.
"در سال ۱۸۴۵ برای بار اول مقدمه‌ای از عملیات کاربر برای یک سری از عملیات خدماتی متنوع نوشته شد که شامل یک نظام موثر برای کنترل کاربری بر روی چرخه در برنامه‌های کاربر می‌شد."
"هیچ نشانه‌ای از اینکه چگونه تبدیل عملیات‌ها و کارت‌های متغیر مشخص شده‌اند وجود ندارد. در غیاب باقی مدارک من مجبور به اتخاذ حداقل فرض ممکن هستم که هردو عملیات و کارت‌های متغیر تنها می‌توانند به عقب بچرخند همانگونه که در پیاده‌سازی چرخه که در برنامه‌های نمونه بابیج استفاده شده بود، ضروری است. هیچ مشکل مکانیکی یا میکروبرنامه نویسی در جای گذاری مسیر حرکات تحت کنترل کاربر وجود نخواهد داشت."
برگرفته از (بروملی، برنامه‌های ۲۸ و ۲۸آ از موتور تحلیلی مربوط به‌ای. جی. بابیج. رابط برنامه‌نویس. سالانه تاریخچه رایانه، IEEE 2000)
در شبیه‌ساز موتور خود، http://www.formilab.ch/ می‌گویند:
«کارت خوان موتور به تنها به پردازش کارت‌ها در یک زنجیره تکی از شروع تا پایان محدود نمی‌شود. آن به علاوه می‌تواند با تعداد زیادی کارت که می‌خواند هدایت شود و با اینکه آیا اهرم اجرای آسیاب فعال است یا خیلی توصیه شود، که آیا زنجیره کارت‌ها را به جلو پیش ببرد، با پرش از کارت کداخله گر، یا به عقب برش گرداند تا باعث شود کارت‌های خوانده شده قبلی یک بار دیگر پردازش شوند.»
این شبیه‌ساز مجموعه دستورالعمل‌های نشان دار را تامین ارائه می‌کند، که این بدست نویسنده آن ساخته شده است به حای آن که بر پایه کار اصلی بابیج باشد. به عنوان مثال یک برنامه فاکتوریل این گونه نوشته خواهد شد:
N0 6 N1 1 N2 1 × L1 L0 S1 -Run example L0 L2 S0 L2 L0 CB?11
که در آن CB ساختار اتشعاب شرطی یا «کارت ترکیبی» است که برای پرش جریان کنترل استفاده می‌شود که در این مورد خاص یعنی ۱۱ کارت به عقب بازگردد.
تاثیر
نفوذ پیش بینی شده
بابیج می‌دانست که وجود یک حسابگر خودکارعلاقه‌مندی به زمینه‌ای که امروزه به عنوان کارایی الگوریتمی شناخته می‌شود را ایجاد خواهد کرد. در کتاب نوشته‌هایی از" زتدگی یک فیلسوف " می‌نویسد، " به محض این که یک موتور تحلیلگر به وجود بیاید، لزوما آینده علم را هدایت خواهد کرد. هر زمان که نتیجه‌ای به وسیله آن دنبال شود، این سوال به وجود خواهد آمد که – با چه نوع محاسبه کردنی این ماشین می‌تواند در کوتاه‌ترین زمان ممکن به این نتایح برسد؟
علم کامپیوتر
مهندس سوئدی جرج و ادوارد شوئتز، با الهام گرفتن از یک توصیف از ماشین تفاضلی، بر پایه طرحی از سال ۱۸۵۳ یک وسیله حسابگر مکانیکی اختراع کردند. به جای اندازه اتاق بودن به اندازه میز بود. آن وسیله قادر به حسابگری جداول بود اما نه به صورت کامل و بدون ایراد.
از سال ۱۸۷۲ هنری با پشتکار بالا کار پدرش را ادامه داد و بعد در سال ۱۸۷۵ در بازنشستگی همین کار را به طور متناوب ادامه داد. پرسی لاگیت در سال ۱۹۱۵ درباره این موتور نوشت و حتی موتور تحلیلی خود را نیز طراحی کرد (با جزئیات بالا کشیده شد اما هرگز ساخته نشد) موتور لاگیت بسیار از نمونه بابیج کوچکتر بود، در حدود ۸ فوت مکعب (۲٫۵ متر مکعب یا ۲۳۰ لیتر) و طبق فرضیه قادر بود تا دو عدد با ۲۰ رقم اعشار را در حدود شش ثانیه ضرب کند.
با وجود این کار اساسی باز هم کار بابیج به ابهام تاریخی فرورفت و موتور محاسباتی برای سازندگان ماشین‌های محاسبه گر الکترو مکانیکی و الکترونیکی در دهه‌های ۱۹۳۰ و ۱۹۴۰ وقتی که آن‌ها کارشان را شروع کردند ناشناخته ماند، که نتیحه‌اش اختراع دوباره بسیاری از نوآوری‌هایی بود که بابیج قبلا پیشنهادش را داده بود. هوآرد آیکن، یک ماشین حساب الکترو مکانیکی ساخت که به سرعت منسوخ شد. هاوارد مارک آی، بین سالهای ۱۹۳۷ و ۱۹۴۵، کار بابیج را ستایش کرد که احتمالا برای بالا بردن ارزش خود بود، اما در طی ساخت مارک آی هیچ چیزی از معماری موتور تحلیلی نمی‌دانست، و دیدن بخش ساخته شده از موتور تحیلی را به عنوان «بزرگترین ناامیدی زندگی من» معرفی کرده است. مارک آی هیچ تاثیر گرفتگی از موتور تحلیلی را نشان نمی‌داد و فاقد ویژگی‌های معماری پیش آگاهانه موتور تحلیلی یعنی انشعاب شرایط بود. جی پیرسپر اکرت و جان دابلیو ماشلی از جزئیات کار موتور تحلیلی بابیج قبل از به پایان رساندن طراحی اولین رایانه همه منظوره ENIAC آگاه نبودند.
مقایسه با دیگر رایانه‌های اولیه
اگر موتور تحلیلی ساخته شده بود، آن دیجیتالی، قابل برنامه‌نویسی و همه منظوره می‌شد. اما به هرحال بسیار کند عمل می‌کرد. آدا لاولیس در یاداشت‌های خود درباره موتور تحلیلی گزارش می‌دهد که: «آقای بابیج معتقد است که می‌تواند حاصل دو عدد که هرکدام شامل ۲۰ رقم هستند را با موتورش در سه دقیقه بدست آورد.» در مقایسه با آن هاوارد مارک آی می‌توانسته کاری مشابه را در شش ثانیه انجام دهد کاری که کامپیوترهای امروزی در کمتر از میلیونیوم ثانیه انجام می‌دهند.