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