تاریخچه زبان های برنامه نویسی
همان طور که می دانید کامپیوتر از دو جز اصلی سخت افزار و نرم افزار تشکیل شده است بنابراین برای استفاده از هر کامپیوتر لازم است تا داده ها و دستورالعمل ها برای پردازش به آن داده شودو نتیجه پردازش داده ها یعمی اطلاعات ارایه گردد یا به عبارت دیگر کاربر بتواند با سخت افزار ارتباط برقرار کند. در اینجاست که نقش نرم افزار به عنوان یکی از اجزای اصلی در کامپیوتر کاملاً قابل مشاهده است دراین مقاله شما را با تعریف و تاریخچه تولید و طراحی زبان های برنامه نویسی از ابتدا تا امروز آشنا خواهیم کرد.
نرم افزار ها مجموعه ای از داده ها و دستورالعمل ها هستند که به وسیله برنامه نویس و بر اساس قواعد مشخص , نوشته می شوند و سخت افزار را قابل استفاده می کنند. نرم افزارها به دو دسته کلی سیستمی و کاربردی تقسیم می شوند.


1-1 تقسیم بندی زبان های برنامه نویسی

همان طور که گفته شد به مجموعه ای از قواعد و دستورالعمل های تعریف شده , زبان برنامه نویسی می گویند.به طور کلی می توان زبان های برنامه نویسی را به صورت زیر تقسیم بندی کرد.

به ادامه مطلب مراجعه کنید.
همان طور که در تقسیم بندی ارایه شده , مشاهده گردید , زبان های برنامه نویسی با توجه به نزدیکی که به زبان ماشین یا همان0 و 1 دارند به سه دسته تقسیم ; زبان های سطحپایین بیشتر به زبان ماشین نزدیک هستند و با ظهور اولین نسل از کامپیوتر ها این زبان برنامه نویسی مورد استفاده قرار گرفت که برنامه نویسی با آن نیز کار مشکلی است. با ساخت نسل دوم از کامپیوترها زبان دیگری به نام زبان اسمیلی بوجود آمد که این زبان نیز ه زبان ماشین نزدیک بود ولی استفاده از آن ساده تر از زبان ماشین است.پس از نسلدوم و ارایه نسل سوم از کامپیوتر ها , زبان های سطح میانی و سطح بالا به وجود آمدند که به زبان محاوره انگلیسی نزدیک تر بوده و برنامه نویسی با آن ها به مراتب راحت تر اززبان های سطح پایین می باشد. از آن زمان تاکون کیفیت و کمیت زبان های برنامه نویسی تغییرات زیادی کرده است و برای تهیه برنامه ها در محیط ها و کاربردهای مختلف زبان های برنامه نویسی متفاوتی استفاده می شود. بااین که کار برنامه نویسی زبان های نسل سوم نسبت به زبان ماشین و اسمبلی آسان تر شده بود اما در پروژه های واقعی و بزرگ کار با اینزبان ها سبب سردرگمی برنامه نویسان و پیچیدگی بیش از حد برنامه ها می شد , بنابراین روند تکامل این زبان ها نیز ادامه پیدا کرد تا این که زبان های سطح بالا از نوع ساخت یافتهبه وجود آمدند در این روش از برنامه نویسی می توان برنامه ها را به بخش های کوچک تر تقسیم کرد و از آن در هر جایی از برنامه مورد نظر یا حتی در سایر برنامه ها استفاده نمود.
در زبان های سطح بالایی چون پاسکال , C و ویژوال بیسیک می توان از این روش برنامه نویسی استفاده کرد. با وجود محاسن زیادی که این روش برنامه نویسی دارد , اما به دلیلجدا بودن داده ها از بخش های کوچک تر برنامه , عمل نگهداری داده های با حجم زیاد در آن مشکل است.
برنامه نویسی به روش شی گرا , تحولی در این زمینه ایجاد کرد در این روش از برنامه نویسی می توان مجموعه داده ها و دستورالعمل ها را به صورت یک مجموعه بسته بندی کرد واز آن در هر محل از برنامه که لازم است , استفاده کرد, در واقع شما با مفهوم شی آشنا هستید و به شکلی با آن زندگی می کنید , انسان ها , حیوانات و اشیای بی جان مانند اتومبیل
قطار , هواپیما و غیره نمونه های مشخصی از مفهوم شی هستند . هر شی ویژگی ها و خواصی دارد و هر یک از آن ها می توانند در یک یا چند نوع رفتار و عملکرد داشته باشند , به عبارت دیگر برنامه نویسی به روش شی گراء از همین مفاهیم موجود در طبیعت و اطراف ما استفاده می کند و داده و دستورالعمل های مورد نظر در رابطه با پردازش روی داده ها را به صورت مجموعه ای به نام شی گرد آوری و استفاده می کند. از معروف ترین زبان های شی گرا می توان به زبان برنامه نویسی ++C, ویژوال بیسیک و دلفی اشاره کرد. این زبان هاعلاوه بر ویژگی ساخت یافته , از ویژگی شی گرایی نیز بهره مند هستند . البته زبان برنامه نویسی ویژوال بیسیک از تمام امکانات روش شی گرایی مانند++C برخوردار نیست و به عبارت دیگر ویژوال بیسیک می تواند به صورت شیئی گرا نیز مورد استفاده قرار گیرد.
زبان های برنامه نویسی علاوه بر تقسیم های ارایه شده (صرف نظر از سطح آنها), از نظر نحوه ترجمه و اجرای; دستورالعمل های یک برنامه نیز تقسیم بندی می شوند.در این تقسیم بندیزبان های برنامه نویسی شامل دو گروه مفسرها ( Interpreter ) و مترجم ها ( Compiler ) می شوند.
زبان برنامه نویسی که از نوع مفسر است , دستورالعمل های برنامه را به ترتیب از بالا به پایین اجرا می کند و برای این کار هر خط از برنامه را به زبان ماشین ترجمه کرده و در صورت عدم وجود خطای نوشتاری آن را اجراء می کند; سپس خط بعدی را ترجمه و اجرا می کند و به همین صورت خطوط برنامه را یکی یکی و به ترتیب ترجمه و اجرا می شوند . بنابراین همواره لازم است تا برنامه را در محیط زبان برنامه نویسی اجراء کرد و ایجاد برنامه مستقل ( Application ) امکان پذیر نیست , به عنوان نمونه می توان به زبان برنامه نویسیGWBASIC اشاره نمود.
برخلاف زبان های برنامه نویسی از نوع مفسر , یک زبان برنامه نویسی از نوع مترجم ابتدا تمام دستوالعمل های برنامه را به طور هم زمان و یک جا به زبان ماشین ترجمه می کند و درصورت عدم وجود خطای نوشتاری برنامه ترجمه شده را اجراء می کند; به عبارت دیگر این گونه زبان های برنامه نویسی برنامه نوشته شده را که به آن برنامه منبع ( Source )
می گویند و به زبان ماشین که به آن برنامه مقصد ( Object ) می گویند , تبدیل می کنند و سپس آنرا اجرا می نمایند. از مزایای این نوع زبان های برنامه نویسی این است که برنامه نویس قبل از اجرای برنامه می تواند از خطاهای نوشتاری در برنامه آگاه شود و آن ها را برطرف نماید , سپس برنامه را اجرا کند . به علاوه می توان از برنامه , فایل اجرایی
مستقل ساخت تا بدون نیاز به زبان برنامه نویسی در روی کامپیوتر های دیگر اجرا شود. به عنوان نمونه ای از این زبان های برنامه نویسی می توان به زبان های C,پاسکال و فرترناشاره کرد. البته زبان برنامه نویسی ویژوال بیسیک دارای هر دو ویژگی مفسرها و مترجم هاست.
در این جا لازم است شمار ا با بعضی از زبان های برنامه نویسی سطح بالا آشنا کنیم.
زبان برنامه نوسیی فرترن: یکی از اولین زبان های برنامه نویسی سطح بالاست و در برنامه نویسی های علمی که نیاز به دقت بالا در محاسبات می باشد , از آن استفاده می شود
از این زبان نسخه هایی نیز برای برنامه نویسی تحت سیستم عامل ویندوز طراحی شده است.
زبان برنامه نویسی پاسکال: این زبان یک زبان برنامه نویسی سطح بالا با ویژگی ساخت یافته است و برای برنامه نویسی های علمی و تجاری مورد استفاده قرار می گیرد.نسخه پیشرفته
آن با نام دلفی دارای ویژگی های برنامه نویسی برای محیط ویندوز می باشد.
زبان برنامه نویسی: C  این زبان نیز از نوع زبان های برنامه نویسی سطح بالا با ویژگی ساخت یافته است و از توانایی بالایی در سطوح مختلف برنامه نویسی برخوردار است. به عبارت
دیگر این زبان , زبان برنامه نویسی سیستم است و با آن می توان هر نوع نرم افزاری را طراحی و تولید کرد.
 
مطالبی در مورد دیگر زبانهای برنامه نویسی:

نسخه دیگری از این زیان با نام ++C علاوه بر ویژگی زبان C , دارای قابلیت برنامه نویسی شی گرا نیز می باشد. نسخه های دیگری از این زبان با نام ++Visual C وC#.net برای برنامه نویسی در محیط ویندوز طراحی و ارایه شده اند.
زبان برنامه نویسی ویژوال بیسیک : زبان ویژوال بیسیک در واقع حاصل توسعه و ارتقای زبان بیسیک است. بیسیک اولیه حدود سال 1964 کالج دارت موث (Darth Mouth ) به وسیله آقایان توماس کورتز ( Thomas Kurtz) و جان کمنی ( John Kemeny) با هدف گسترش برنامه نویسی بیش دانش آموزان و دانش آموزان و دانشجویان طراحی و ساخته شد.از آن زمان نسخه های متعدد و متفاوتی از آن مانند (GWBASIC ,QUICK BASIC, TURBOBASIC)ارایه گردید و هموراه سعی در افزایش توانمندی های آن به عنوان یک زبان سطح بالای ساخت یافته شده است . با ظهور سیستم عامل ویندوز 95 و 98 فقدان یک زبان برنامه نویسی آسان و قدرتمند برای استفاده در سیستم عامل های مذکور کاملاً مشهود
بو . از این رو مایکروسافت در سال 1991 نسخه اول ویژوال بیسیک را با امکانات یک زبان برنامه نویسی قدرتمند و حرفه ای برای برنامه نویسی در ویندوز ارایه کرد. آخرین نسخه تکامل یافته آن برای استفاده در سیستم عامل جدید مایکروسافت نیز با نام VISUAL BASIC.NET طراحی و ارایه شده است. 
یکی از مهم ترین ویژگی های زبان برنامه نویسی ویژوال بیسیک رابط گرافیکی آن است. رابط گرافیکی (GUI) در ویژوال بیسیک یکی از کارآمدترین رابط های گرافیکی در زمینه برنامه نویسی است که به وسیله آن می توان به آسانی برنامه های تحت سیستم عامل ویندوز را ایجاد کرده و حتی قبل از اجرا , شکل ظاهری آن را مشاهده کرد با این که برنامه را به صورت یک مفسر یعنی به صورت خط به خط اجرا نموده و عکس العمل برنامه را بررسی کرد. البته این موارد گوشه ای از ویژگی های متعدد رابط گرافیکی ویژوال بیسیک است.
طراحی سریع برنامه (RAD) یکی دیگر از ویژگی های این زبان است. منظور از طراحی سریع برنامه یا RAD در ویژوال بیسیک این است که طراحی و تولید برنامه ها در ویژوال بیسیک به دلیل وجود ابزارهای مناسب به سرعت انجام می شود . بنابراین هزینه های تولید نرم افزار به طور قابل توجهی کاهش می یابد.
ویژگی دیگر زبان برنامه نویسی ویژوال بیسیک ویژگی مدیریت رویداد ها و اتفاقات می باشد ویژوال بیسیک یکی از زبان های برنامه نویسی رویدادگر است . مزیتی که این گونه زبان ها دارند در این است که برنامه نویس می تواند از قبل فرامین لازم را برای وقایع و اتفاقاتی که ممکن است در هنگام اجرای برنامه توسط کاربر رخ دهد سازمان دهی کند.
وجود محیط IDE نیز یکی از ویژگی های مهم این زبان است . محیط IDE به برنامه نویس اجازه می دهد تا برنامه های خود را به سهولت و سرعت , طراحی ,تولید ,خطایابی و اجراکند . این امکانات به وسیله ابزارهای متعددی که به صورت مجتمع در رابط گرافیکی ویژوال بیسیک قرار داده شده است قابل دسترسی است.
علاوه بر مواردی که گفته شد دسترسی به برنامه های کاربردی ویندوز به وسیله توابع(API) یکی دیگر از ویژگی این زبان است. توابع API , توابع داخلی ویندوز هستندکه ویژوال بیسیک را قادر می سازد تا با استفاده از فرامین خاصی بتواند به امکانات داخلی موجود در ویندوز دستیابی پیدا کند و برنامه نویس را نیز قادر می سازد تا در صورت نیاز با استفاده ازاین توابع , برنامه هایی را با توانایی های مورد نظر ایجاد کند.
یکی دیگر از جنبه هایی که تفاوت شگرفی بین ویژوال بیسیک و سایر نسخه های قبلی بیسیک ایجاد می کند امکان استفاده از برنامه نویسی به روش شی گراست . این ویژگی سبب می شود تا ویژوال بیسیک بتواند توقعات برنامه نویس در رابطه با تعریف و به کارگیری اشیا و کلاس های جدید را که سبب راحت تر شدن برنامه نویسی می گردد,برطرف کند. در برنامه نویسی ساخت یافته ,برنامه ها با استفاده از رویه ها به بخش های مختلف تقسیم می شوند که به صورت مجزا از هم قرار می گیرند . دربرنامه نویسی شی گرا با استفاده از اشیا می توان مجموعه ای از دستورالعمل ها و داده ها را در عنصر واحدی به نام شی قرار داد و در زمان مورد نظر از هر یک از بخش های شی مربوطه استفاده کرد.
ویژگی دیگر که در نحوه کار با یک زبان برنامه نویسی مد نظر قرار می کیرد نحوه کشف , تصحیح و برخورد با اشتباهات و خطاهایی است که در هنگام طراحی یا اجرای برنامه رخ می دهد
ویژوال بیسیک علاوه بر اینکه امکانات بسیار مناسبی در زمینه کشف خطاهای نوشتاری و منطقی برنامه در اختیار برنامه نویس می گذارد .به وی امکان می دهد با استفاده از فرامین مناسب ,خطاهای غیر قابل پیش بینی را نیز در هنگام اجرا تشخیص داده و نحوه ارایه راه حل مناسب را برای راهنمایی کاربران در اختیار آنان قرار دهد.
از آغاز ارایه اولین نگارش ویژوال بیسیک , نسخه های متفاوتی از این زبان ارایه شده است.
نگارش آموزشی ویژوال بیسیک که برای مصارف آموزشی ارایه شده است. امکان ایجاد برنامه های اجرایی از نوع exe و dll را به همراه استفاده از کنترل های متعدد فراهم می آورد.
نگارش حرفه ای این زبان علاوه بر ویژگی های نگارش آموزشی ,امکان استفاده از کنترل های مربوط به بانک های اطلاعاتی ,طراحی کنترل های ActiveX و هم چنین به کارگیری ویزاردهای مناسب برای تسهیل امر برنامه نویسی را نیز در اختیار برنامه نویسان قرار می دهد و به عنوان کامل ترین نگارش , نگارش نهایی ارایه شده است که در آن امکان برنامه نویسی در شبکه های محلی و اینترنت همراه با ویژگی های سایر نسخه ها فراهم شده است و دارای توانایی استفاده از زبان SQl و تولید و طراحی برنامه های کاربردی با حجم زیاد نیز می باشد.

آرش خاکبازان