در زبان انگلیسی «کامپیوتر» به کسی میگفتند که محاسبات ریاضی را (بدون
ابزارهای کمکی مکانیکی) انجام میداد. بر اساس «واژهنامه ریشهیابی
Barnhart Concise» واژه کامپیوتر در سال ???? به زبان انگلیسی وارد گردید
که به معنی «شخصی که محاسبه میکند» بودهاست و سپس از سال ???? به
ماشینهای محاسبه مکانیکی گفته میشد. در هنگام جنگ جهانی دوم «کامپیوتر»
به زنان نظامی انگلیسی و آمریکایی که کارشان محاسبه مسیرهای شلیک توپهای
بزرگ جنگی توسط ابزار مشابهی بود، اشاره میکرد[نیازمند منبع].
در اوایل دهه ?? میلادی هنوز اصطلاح ماشین حساب (computing machines)
برای معرفی این ماشینها بهکار میرفت. پس از آن عبارت کوتاهتر کامپیوتر
(computer) بهجای آن بهکار گرفته شد. ورود این ماشین به ایران در اوائل
دهه ???? بود و در فارسی از آن زمان به آن «کامپیوتر» میگفتند. واژه
رایانه در دو دهه اخیر در فارسی رایج شده و بهتدریج جای «کامپیوتر» را
گرفت.
برابر این واژه در زبانهای دیگر حتما همان واژه زبان انگلیسی نیست. در زبان فرانسوی واژه "ordinateur"، که معادل «سازمانده» یا «ماشین مرتبساز» میباشد بهکار میرود. در اسپانیایی "ordenador" با معنایی مشابه استفاده میشود، همچنین در دیگر کشورهای اسپانیایی زبان computadora بصورت انگلیسیمآبانهای ادا میشود. در پرتغالی واژه computador بهکار میرود که از واژه computar گرفته شده و به معنای «محاسبه کردن» میباشد. در ایتالیایی واژه "calcolatore" که معنای ماشین حساب بکار میرود که بیشتر روی ویژگی حسابگری منطقی آن تاکید دارد. در سوئدی رایانه "dator" خوانده میشود که از "data" (دادهها) برگرفته شدهاست. به فنلاندی "tietokone" خوانده میشود که به معنی «ماشین اطلاعات» میباشد. اما در زبان ایسلندی توصیف شاعرانهتری بکار میرود، «t?lva» که واژهایست مرکب و به معنای «زن پیشگوی شمارشگر» میباشد. در چینی
رایانه «dian nao» یا «مغز برقی» خوانده میشود. در انگلیسی واژهها و
تعابیر گوناگونی استفاده میشود، بهعنوان مثال دستگاه دادهپرداز («data
processing machine»).
واژه? رایانه از مصدر رایانیدن ساخته شده که در فارسی میانه به شکلِ r?y?n?dan
و به معنای «سنجیدن، سبک و سنگین کردن، مقایسه کردن» یا «مرتّب کردن، نظم
بخشیدن و سامان دادن» بوده است. این مصدر در زبان فارسی میانه یا همان
پهلوی کاربرد فراوانی داشته و مشتقهای زیادی نیز از آن گرفته شده بوده.
در زبان فارسی نو یا همان فارسی (دری) این فعل و مشتقهایش به کار
نرفتهاند. برایِ مصدر رایانیدن/ رایاندن در لغتنامه? دهخدا چنین آمده:
و گویا تنها در واژهنامه? ناظمالاطبّا آمده است.
شکلِ فارسی میانه? این واژه r?y?n?dan بوده و اگر میخواسته به فارسی نو برسد به شکل رایانیدن/ رایاندن درمیآمده. (بسنجید با واژهیِ فارسیِ میانهیِ ?g?h?n?dan که در فارسیِ نو آگاهانیدن/ آگاهاندن شده است).
این واژه از ریشهیِ فرضیِ ایرانیِ باستانِ –radz* است که به معنایِ «مرتّب کردن» بوده. این ریشه بهصورتِ –rad به فارسیِ باستان رسیده و به شکلِ r?y در فارسیِ میانه (پهلوی) بهکار رفته. از این ریشه ستاکهایِ حالِ و واژههایِ زیر در فارسیِ میانه و نو بهکار رفتهاند:
این ریشهیِ ایرانی از ریشهیِ هندواروپاییِ -re?* به معنایِ «مرتّب کردن و نظم دادن» آمده است. از این ریشه در
برجای مانده است.
در فارسیِ نو پسوندِ -ـه (= /e/ در فارسی رسمی ایران و /a/ در فارسی رسمی
افغانستان و تاجیکستان) را به ستاکِ حالِ فعلها میچسبانند تا نامِ
ابزارِ آن فعلها بهدست آید (البته با این فرمول مشتقهای دیگری نیز
ساخته میشود، امّا در اینجا تنها نامِ ابزار مدِّ نظر است)؛ برای نمونه از
حاصل میگردد.
در فارسیِ نو پسوندِ -ـه (= e- یا همان a-) را به ستاکِ حالِ
"رایانیدن" یعنی رایانـ- چسباندهاند تا نامِ ابزارِ این فعل ساخته شود؛
یعنی "رایانه" به معنایِ «ابزارِ نظم بخشیدن و سازماندهی ( ِ دادهها)»
است.
احتمال میرود که سازندگان این واژه به واژهیِ فرانسویِ این مفهوم، یعنی ordinateurتوجّه داشتهاند که در فرانسه از مصدرِ ordre «ترتیب و نظم دادن و سازمان بخشیدن» ساخته شده. به هرحال، معنادهیِ واژهیِ رایانه برایِ این دستگاه جامعتر و رساتر از کامپیوتر است. یادآور میشود که computerبه معنایِ «حسابگر» یا «مقایسه گر» است، حال آنکه کارِ این دستگاه براستی فراتر از "حساب کردن" است.
در گذشته دستگاههای مختلف مکانیکی سادهای مثل خطکش محاسبه و چرتکه نیز رایانه خوانده میشدند. در برخی موارد از آنها بهعنوان رایانه آنالوگ
نام برده میشود. البته لازم به ذکر است که کاربرد واژه رایانه آنالوگ در
علوم مختلف بیش از این است که به چرتکه و خطکش محاسبه محدود شود. به طور
مثال در علوم الکترونیک، مخابرات و کنترل روشی برای محاسبه مشتق و انتگرال
توابع ریاضی و معادلات دیفرانسیل توسط تقویت کننده های عملیاتی، مقاومت،
سلف و خازن متداول است که به مجموعه سیستم مداری Analog Computer گفته می
شود [?].
چرا که برخلاف رایانههای رقمی، اعداد را نه بهصورت اعداد در پایه دو
بلکه بهصورت کمیتهای فیزیکی متناظر با آن اعداد نمایش میدهند. چیزی که
امروزه از آن بهعنوان «رایانه» یاد میشود در گذشته به عنوان «رایانه رقمی (دیجیتال)» یاد میشد تا آنها را از انواع «رایانه آنالوگ» جدا سازند.
به تصریح دانشنامه انگلیسی ویکی پدیا، بدیعالزمان ابوالعز بن اسماعیل
بن رزاز جَزَری (درگذشته? ??? ق.) یکی از نخستین ماشین های اتوماتا را که
جد رایانه های امروزین است ، ساخته بوده است. این مهندس مکانیک مسلمان از
دیاربکر در شرق آناتولی بوده است. رایانه یکی از دو چیز برجستهای است که
بشر در سده? بیستم اختراع کرد. دستگاهی که بلز پاسکال در سال ???? ساخت اولین تلاش در راه ساخت دستگاههای محاسب خودکار بود. پاسکال آن دستگاه را که پس از چرتکه
دومیت ابزار ساخت بشر بود، برای یاری رساندن به پدرش ساخت. پدر وی حسابدار
دولتی بود و با کمک این دستگاه میتوانست همه اعدادشش رقمی را با هم جمع و
تفریق کند.[?]
لایبنیتز
ریاضیدان آلمانی نیز از نخستین کسانی بود که در راه ساختن یک دستگاه
خودکار محاسبه کوشش کرد. او در سال ???? دستگاهی برای محاسبه ساخت که کامل
شدن آن تا ???? به درازا کشید. همزمان در انگلستان ساموئل مورلند در سال ???? دستگاهی ساخت که جمع و تفریق و ضرب میکرد.[?]
در سده هجدهم میلادی هم تلاشهای فراوانی برای ساخت دستگاههای محاسب
خودکار انجام شد که بیشترشان نافرجام بود. سرانجام در سال ???? میلادی استیفن بالدوین نخستین دستگاه محاسب را که هر چهار عمل اصلی را انجام میداد، به نام خود ثبت کرد.[?]
از جمله تلاشهای نافرجامی که در این سده صورت گرفت، مربوط به چارلز بابیچ
ریاضیدان انگلیسی است. وی در آغاز این سده در سال ???? در اندیشه? ساخت
دستگاهی بود که بتواند بر روی اعداد بیست و شش رقمی محاسبه انجام دهد. او
بیست سال از عمرش را در راه ساخت آن صرف کرد اما در پایان آن را نیمهکاره
رها کرد تا ساخت دستگاهی دیگر که خود آن را دستگاه تحلیلی
مینامید آغاز کند. او میخواست دستگاهی برنامهپذیر بسازد که همه عملیاتی
را که میخواستند دستگاه برروی عددها انجام دهد، قبلا برنامهشان به
دستگاه داده شده باشد. قرار بود عددها و درخواست عملیات برروی آنها به
یاری کارتهای سوراخدار وارد شوند. بابیچ در سال ???? مرد و ساخت این
دستگاه هم به پایان نرسید.[?]
کارهای بابیچ به فراموشی سپرده شد تا این که در سال ???? و در بحبوحه جنگ جهانی دوم دولت آمریکا طرحی سری برای ساخت دستگاهی را آغاز کرد که بتواند مکالمات رمزنگاریشده? آلمانیها را رمزبرداری کند. این مسئولیت را شرکت IBM و دانشگاه هاروارد به عهده گرفتند که سرانجام به ساخت دستگاهی به نام ASCC
در سال ???? انجامید. این دستگاه پنج تنی که ?? متر درازا و ??? متر بلندی
داشت، میتوانست تا ?? عدد ?? رقمی را در خود نگاه دارد و با آنها کار
کند. دستگاه با نوارهای سوراخدار برنامهریزی میشد و همه? بخشهای آن
مکانیکی یا الکترومکانیکی بود.[?]
داده به آن دسنه از ورودیهایی خام گفته میشود که برای پردازش به رایانه ارسال میشوند.
اطلاعات به دادههای پردازش شده میگویند.
از زمان رایانههای اولیه که در سال ???? ساخته شده بودند تا کنون
فناوریهای دیجیتالی رشد نمودهاست، معماری فون نوِیمن یک رایانه را به
چهار بخش اصلی توصیف میکند: واحد محاسبه و منطق (Arithmetic and Logic Unit یا ALU)، واحد کنترل یا حافظه، و ابزارهای ورودی و خروجی ( که جمعا I/O نامیده میشود). این بخشها توسط اتصالات داخلی سیمی به نام گذرگاه (bus) با یکدیگر در پیوند هستند.
در این سامانه، حافظه بصورت متوالی شماره گذاری شده در خانهها است، هرکدام محتوی بخش کوچکی از دادهها میباشند. دادهها ممکن است دستورالعملهایی باشند که به رایانه میگویند که چه کاری را انجام دهد باشد. خانه ممکن است حاوی اطلاعات مورد نیاز یک دستورالعمل
باشد. اندازه هر خانه، وتعداد خانهها، در رایانه? مختلف متفاوت است،
همچنین فناوریهای بکاررفته برای اجرای حافظه نیز از رایانهای به رایانه
دیگر در تغییر است(از بازپخشکنندههای الکترومکانیکی تا تیوپها و فنرهای
پر شده از جیوه و یا ماتریسهای ثابت مغناطیسی و در آخر ترانزیستورهای واقعی و مدار مجتمعها با میلیونها فیوز نیمه هادی یا MOSFET هایی با عملکردی شبیه ظرفیت خازنی روی یک تراشه تنها).
واحد محاسبه و منطق یا ALU دستگاهی است که عملیات پایه مانند چهار عمل اصلی حساب (جمع و تفریق و ضرب و تقسیم)، عملیات منطقی (و،یا،نقیض)، عملیات قیاسی (برای مثال مقایسه دو بایت
برای شرط برابری) و دستورات انتصابی برای مقدار دادن به یک متغیر را انجام
میدهد. این واحد جائیست که «کار واقعی» در آن صورت میپذیرد.
البته CPUها به دو دسته کلی RISC و CISC تقسیم بندی میشوند. نوع اول
پردازشگرهای مبتنی بر اعمال ساده هستند و نوع دوم پردازشگرهای مبتنی بر
اعمال پیچیده میباشند. پردازشگرهای مبتنی بر اعمال پیچیده در واحد محاسبه
و منطق خود دارای اعمال و دستوراتی بسیار فراتر از چهار عمل اصلی یا منطقی
میباشند. تنوع دستورات این دسته از پردازندهها تا حدی است که توضیحات
آنها خود میتواند یک کتاب با قطر متوسط ایجاد کند. پردازندههای مبتنی
بر اعمال ساده اعمال بسیار کمی را پوشش میدهند و در حقیقت برای
برنامهنویسی برای این پردازندهها بار نسبتاً سنگینی بر دوش برنامهنویس
است. این پردازندهها تنها حاوی ? عمل اصلی و اعمال منطقی ریاضی و
مقایسهای به علاوه چند دستور بیاهمیت دیگر میباشند.هرچند ذکر این نکته
ضروری است که دستورات پیچیده نیز از ترکیب تعدادی دستور ساده تشکیل
شدهاند و برای پیادهسازی این دستورات در معماریهای مختلف از پیادهسازی
سختافزاری(معماری CISC) و پیادهسازی نرمافزاری(معماری RISC) استفاده
میشود.
(قابل ذکر است پردازندههای اینتل از نوع پردازنده مبتنی بر اعمال پیچیده میباشند.)
واحد کنترل همچنین این مطلب را که کدامین بایت از حافظه حاوی دستورالعمل فعلی اجرا شوندهاست را تعقیب میکند، سپس به واحد محاسبه و منطق
اعلام میکند که کدام عمل اجرا و از حافظه دریافت شود و نتایج به بخش
اختصاص داده شده از حافظه ارسال گردد. بعد از یک بار عمل، واحد کنترل به دستورالعمل بعدی ارجاع میکند(که معمولاً در خانه حافظه بعدی قرار دارد، مگر اینکه دستورالعمل جهش دستورالعمل بعدی باشد که به رایانه اعلام میکند دستورالعمل بعدی در خانه دیگر قرار گرفتهاست).
بخش ورودی/خروجی
(I/O) این امکان را به رایانه میدهد تا اطلاعات را از جهان بیرون تهیه و
نتایج آنها را به همان جا برگرداند. محدوده فوق العاده وسیعی از
دستگاههای ورودی/خروجی وجود دارد، از خانواده آشنای صفحهکلیدها، نمایشگرها، نَرمدیسک گرفته تا دستگاههای کمی غریب مانند رایابینها (webcams). (از سایر ورودی/خروجیها میتوان موشواره mouse، قلم نوری، چاپگرها (printer)، اسکنرها، انواع لوحهای فشرده(CD, DVD) را نام برد ).
چیزی که تمامی دستگاههای عمومی در آن اشتراک دارند این است که آنها
رمزکننده اطلاعات از نوعی به نوع دیگر که بتواند مورد استفاده سیستمهای
رایانه دیجیتالی قرار گیرد، هستند. از سوی دیگر، دستگاههای خروجی آن اطلاعات به رمز شده را رمزگشایی میکنند تا کاربران آنها را دریافت نمایند. از این رو یک سیستم رایانه دیجیتالی یک نمونه از یک سامانه دادهپردازی میباشد.
هر رایانه تنها دارای یک مجموعه کم تعداد از دستورالعملهای ساده و تعریف شده میباشد. از انواع پرکاربردشان میتوان به دستورالعمل «محتوای خانه ??? را در خانه ??? کپی کن!»، «محتوای خانه ??? را با محتوای خانه ??? جمع کن، نتایج را در خانه ??? کن!»، «اگر محتوای خانه ??? برابر با صفر است، به دستورالعمل واقع در خانه ??? رجوع کن!».
دستورالعملها در داخل رایانه بصورت اعداد مشخص شدهاند - مثلاً کد دستور العمل (copy instruction) برابر ??? میتواند باشد. مجموعه معین دستورالعملهای تعریف شده که توسط یک رایانه ویژه پشتیبانی میشود را زبان ماشین مینامند. در واقعیت، اشخاص معمولاً به زبان ماشین دستورالعمل نمینویسند بلکه بیشتر به نوعی از انواع سطح بالای زبانهای برنامهنویسی، برنامهنویسی میکنند تا سپس توسط برنامه ویژهای (تفسیرگرها (interpreters) یا همگردانها (compilers) به دستورالعمل ویژه ماشین تبدیل گردد. برخی زبانهای برنامهنویسی از نوع بسیار شبیه و نزدیک به زبان ماشین که اسمبلر (یک زبان سطح پایین) نامیده میشود، استفاده میکنند؛ همچنین زبانهای سطح بالای دیگری نیز مانند پرولوگ نیز از یک زبان انتزاعی و چکیده که با زبان ماشین تفاوت دارد بجای دستورالعملهای ویژه ماشین استفاده میکنند.