چقدر لذتبخش است که انسان بتواند خواسته خود را به یک موجود دقیق و حرف گوشکن بگوید و او هم بدون چون و چرا، با خستگیناپذیری آن کار را انجام دهد. تنها مشکلی که در این میان وجود دارد آن است که این موجود تنها زبان منطقی صفر و یک را متوجه میشود و تنها شرطی که برای
برطرف کردن نیازهای بشر و خواستههای ما دارد آن است که به زبان خودش با او صحبت شود. خوب است بدانیم که چیزی به نام صفر یا یک در رایانه وجود ندارد. منطق رایانه یک منطق دوحالته است که این دو حالت میتواند هر چیزی باشد. خاموش و روشن، مثبت و منفی و ... اما با در نظر گرفتن صفر و یک و معادل کردن این دو حالت به این دو عدد، توانستند روابط منطقی و ریاضی را با هم ترکیب کرده و به موفقیتهای چشمگیری دست یابند.
زبان رایانه
زبان رایانه همانند هر زبان دیگر از الفبا تشکیل میشود. همانطور که زبان فارسی 32 حرف و زبان انگلیسی 26 حرف دارد، زبان رایانه نیز از 2 حرف تشکیل شده است.
البته این امکان نیز وجود داشت که زبانی با بیش از دو حرف برای آن تعریف شود، اما دلایل بسیاری موجب شد که کارشناسان و طراحان به این نتیجه برسند که بهترین حالت برای طراحی یک رایانه آن است که زبان آن از تعداد کمتری حرف الفبا تشکیل شده باشد.
مزایای کم بودن تعداد حروف
یکی از مهمترین دلایلی که باعث شد برای رایانه تنها دو حرف الفبایی در نظر گرفته شود آن بود که این دو حرف را به راحتی میتوانستند با سختافزار پیادهسازی کنند. صفر و یک در رایانههای اولیه که از لامپهای خلاء استفاده میکردند، با روشن و خاموش بودن لامپها پیادهسازی میشد. جریان مثبت و منفی، دوقطبیهای الکتریکی و مغناطیسی، وجود یا عدم وجود، بالا یا پایین و ... هر کدام میتوانند به طور قراردادی، صفر و یک در نظر گرفته شوند و با توجه به آن خصوصیات، به دنیای رایانه وارد شوند.
به عنوان مثال در ذخیرهسازی روی دیسک سخت، صفر و یک با استفاده از دوقطبیها و روی دیسکهای لیزری با استفاده از برجستگیها و فرورفتگیها شبیهسازی میشوند. دلیل دیگر برای دوحرفی بودن زبان رایانه آن است که منطق آن ساده بوده و به راحتی میتوان مدارهای محاسباتی برای آن طراحی کرد. البته طراحی مدار برای حالتهای دیگر نیز امکانپذیر است، اما هر چه تعداد حروف الفبای زبان افزایش یابد، طراحی مدارات مشکلتر و ساختار آن پیچیدهتر خواهد شد.
همچنین هنگامی که مدارات سختافزاری پیچیده میشوند، سرعت عملکرد آنها کمتر خواهد شد. در نتیجه برای دست یافتن به مداراتی با حداکثر سرعت، باید حتیالامکان تعداد حروف الفبای زبان کم باشد.
زبان ماشین و اسمبلی
زبان ماشین اولین زبانی است که برای رایانهها طراحی شد و همان زبان صفر و یک است. در ابتدای کار با رایانهها، متخصصان با این زبان برنامه مینوشتند که البته بسیار مشکل و پیچیده است. در حال حاضر اگر بخواهیم با زبان ماشین برنامه بنویسیم اولا نیاز به دانستن کدهای زبان ماشین و تخصص کافی در آن زمینه داریم. ثانیا کاری بسیار دشوار و زمانگیر پیشرو خواهیم داشت؛ بنابراین در حال حاضر هیچکس به زبان ماشین برنامه نمینویسد.
در حقیقت در همان ابتدای کار در زمانهای قدیم نیز به دلیل همین دشواریها، زبان دیگری به نام زبان اسمبلی طراحی شد که در مقایسه با زبان ماشین راحتتر و قابل درکتر است.
اسمبلی نزدیکترین زبان به زبان ماشین است که بعد از نوشته شدن در یک محیط متنی، توسط برنامهای به نام اسمبلر به زبان ماشین تبدیل میشود. البته باید بدانیم که برنامهنویسی به زبان اسمبلی نیز مشکل است، اما نسبت به زبان ماشین بسیار سادهتر است.
زبانهای سطح بالا
زبان ماشین و زبان اسمبلی زبانهای سطح پایین هستند. در همینجا لازم است مفهوم سطح پایین را نیز تعریف کنیم. منظور از زبان سطح پایین، زبانی است که از زبان انسان فاصله دارد و با خواندن یک برنامه، دستورات به راحتی درک نمیشوند، اما زبانهایی که در حال حاضر برای برنامهنویسی طراحی شدهاند بسیار به زبان انسان نزدیک هستند و تا حدودی در هنگام خواندن درک میشوند. به این زبانها به اصطلاح سطح بالا گفته میشود.
زبانهایی همچون پاسکال از جمله زبانهای سطح بالا هستند. به عنوان مثال دستور زیر را در نظر بگیرید.
21 then <If Time
Application. Terminate;
یک شخص با خواندن این دستور میتواند متوجه شود که منظور آن است که اگر زمان از 12 بیشتر
بود آنگاه برنامه باید خاتمه بپذیرد.
برخی افراد معتقدند زبانی مثل C یک زبان مابین زبان سطح پایین و سطح بالاست. به عبارتی با این که این زبان سطح پایین نیست، اما گاهی درک آن مشکل است.
بنابراین نباید مفهوم سطح بالا یا سطح پایین بودن زبان را به اشتباه به توانمندی، سرعت، قدرت انجام عمل و قابلیتهای زبان ربط داد. به عنوان مثال اسمبلی که یک زبان سطح پایین است یکی از قدرتمندترین زبانها است. میتوان گفت برنامهای نیست که بتوان با زبان دیگری نوشت و با اسمبلی نتوان نوشت. در حقیقت اکثر زبانهای برنامهسازی به ابزاری به نام مترجم یا کامپایلر مجهز هستند که برنامه را از زبان سطح بالا به زبان اسمبلی تبدیل میکند. هر دستور زبان سطح معادل یک یا چند دستور زبان اسمبلی است که پس از تبدیل به آن، به کد ماشین و فایل اجرایی تبدیل میشود.
دلیل طراحی زبانهای مختلف
همانطور که واضح است، دلیل به وجود آمدن زبان سطح بالا، سادگی برنامهنویسی و طراحی نرمافزار بوده است.
اما خوب است بدانیم که تاکنون تعداد زیادی زبان برنامهنویسی از جانب شرکتها و اشخاص مختلف معرفی شدهاند. آیا به وجود آمدن این تعداد زبان لازم بوده است؟ آیا نمیتوان یک زبان انتخاب کرد و همه کارهای لازم را با همان زبان انجام داد؟
هر زبان به هدف تسهیل برنامهنویسی در زمینه خاص و برای کاربرد خاصی طراحی میشود. یکی برای ساخت نرمافزارهای سیستمی و دیگری برای برنامههای کاربردی و چندرسانهای مناسب است. از یک زبان برای ساخت برنامههای تحت وب و از دیگری برای ساخت برنامههای مستقل تحت ویندوز استفاده میشود. ممکن است هدف طراحی یک زبان آن باشد که بتوان با آن به راحتی برنامههایی طراحی کرد که برای محاسبات ریاضی و حل مسائل به کار رود و یک زبان به این هدف طراحی شود که بتوان با آن برنامههایی نوشت که به سادگی روی سیستمعاملهای مختلف قابل اجرا باشد.
اهداف و دلایل دیگری نیز وجود دارند که عامل به وجود آمدن دیگر زبانها بودهاند. بنابراین هر شخص یا هر گروهی، با توجه به هدفی که دارند و کاربرد مورد نظر خود میتوانند از یک زبان برای به وجود آوردن نرمافزار مورد نظر خود استفاده کند. ممکن است یک زبان برای امور مختلفی طراحی شده باشد و به اصطلاح چندمنظوره باشد. گاهی نیز ممکن است بتوان معادل یک برنامه را با زبانی که برای آن کار ساخته نشده است نوشت. اما انتخاب درست زبان با توجه به هدف میتواند به میزان زیادی روی کیفیت برنامه، سرعت نوشتن و... تاثیر داشته باشد. بنابر این برای کسانی که میخواهند گام در عرصه برنامهنویسی بگذارند، شناخت هدف، داشتن آگاهی از امکانات موجود و انتخاب صحیح زبان از اصلیترین مواردی است که باید به آن توجه کنند.
پارسا ستودهنیا
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم