کامپیوتر

کامپیوتر

این وبلاگ برای علاقه مندان به کامپیوتر طراحی شده است.
کامپیوتر

کامپیوتر

این وبلاگ برای علاقه مندان به کامپیوتر طراحی شده است.

برنامه نویسی

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


مقدمه سیستم های کامپیوتری جدید ، تاثیرات وسیع و رشد یابنده ای بر اکثر فعالیت های بشری داشته و دارند. کامپیوتر امکان داده است تا زمینه های جدیدی از تحقیقات در علوم ایجاد شوند که پیشتر ، به سبب کمبود داده ها و محدودیت در انجام تحلیل ها و محاسبات عددی ، چندان شناخته شده نبودند. کامپیوتر ، پیشرفت های تکنولوژی ، از قبیل سفر به ماه ، را تسهیل کرده و بعنوان وسیله ای برای کنترل فرایندهای صنعتی ، به گستردگی مورد استفاده قرار می گیرد . اکثر سیستم های حسابداری و بانکی ، اینک کامپیوتری شده و در فعالیت هایی مثل مدیریت موجودی و انبار ، پرداخت حقوق حمل و نقل و مراسلات ، از کامپیوتر در حد وسیع استفاده می شود . سازمان های دولتی ، اینک برای ذخیره و بازیابی اطلاعات ، کامپیوتر را بکار می گیرند . در دانشگاه ها برای ذخیره و بازیابی اطلاعات ، امور حسابداری و پرداخت حقوق ، برنامه ریزی دروس و ثبت نام دانشجویان و فعالیت های دیگر از کامپیوتر بهره برداری می شود . بسیاری از سیستم های کتابداری ، اینک کامپیوتری شده اند و در کتابخانه ها ، حتی برای نگاهداری و بازیابی اسناد و مدارک و چکیده های علمی ، از کامپیوتر استفاده می کنند. سخن کوتاه ، کامپیوتر در تمام فعالیت هایی که در آنها پردازش سریع حجم زیادی از اطلاعات ، مورد نیاز باشد، بکار برده می شود . هدف از هر برنامه ای پیاده سازی یک الگوریتم بر روی یک ماشین یا ابزار (همانند کامپیوتر، موبایل، قطعه ای الکترونیکی و ...) و بهره گیری از منابع سخت افزاری و نرم افزاری آن می باشد. برنامه شامل مجموعه ای از دستورات است که طی یک سیکل و ترتیب منظم و مشخص اجرا می شوند. این دستورات ابتدا در یک فایل متنی نوشته می شوند که به آن فایل منبع (Source File) می گویند سپس توسط یک مترجم (Compiler) به زبان ماشین ترجمه (تبدیل) می شوند. حاصل این ترجمه فایلی اجرایی (Execut File) است که درون یک پلت فرم (Platform) مناسب اجرا می شود. این پلت فرم به عنوان مثال می تواند سیستم عامل ویندوز کامپیوترهای شخصی یا سیستم موبایل باشد. هر کدام از دستورات تشکیل دهنده یک برنامه اصولاً ساده هستند و تنها یک عمل کوچک و مشخص را انجام می دهند. برنامه نویسان با کنار هم قرار دادن این دستورات (بر طبق یک الگوریتم مشخص) یک برنامه را خلق می کنند. این برنامه می تواند کوچک و در حد چند دستور و یا بسیار بزرگ و پیچیده در حد چند صد هزار دستور باشد. زبان برنامه نویسی (Programming Language) زبان برنامه نویسی نرم افزاری است که به کمک آن برنامه نویسان، برنامه های خود را می نویسند. زبان برنامه نویسی محیطی را فراهم می کند تا یک برنامه نویس بتواند فایل منبع خود را ایجاد کند. همچنین خطاهای احتمالی برنامه نویسان را شناسایی کرده و به آنها اعلام می کند. زبان برنامه نویسی حاوی یک کامپایلر است تا فایل منبع را به زبان ماشین تبدیل کند. هر زبان برنامه نویسی دارای اصول و قواعد (Syntax) مشخصی است و برنامه نویسان را به رعایت کردن آنها ملزم می کند. اگر یک برنامه نویس این قواعد را رعایت نکند، زبان برنامه نویسی علاوه بر اعلان خطا به برنامه نویس، از ترجمه برنامه ممانعت می کند. پسوند فایل های منبع به زبان برنامه نویسی بکار رفته شده بستگی دارد. مثلاً در زبان Visual Basic.Net این پسوند vb است اما در C#.Net این پسوند cs می باشد. اصول و قواعد حاکم بر دستورات نیز به زبان برنامه نویسی موردنظر بستگی دارد. در بعضی از زبان های برنامه نویسی این قواعد ساده و در بعضی دیگر کمی سخت و دست و پا گیر هستند. اغلب زبان های برنامه نویسی الگوریتم مشابهی را دنبال می کنند: 1- فراهم کردن محیطی مناسب برای ایجاد فایل منبع. 2- بررسی صحت قواعد دستورات نوشته شده در فایل منبع. 3- کشف خطای احتمالی و اعلان آن به برنامه نویس (Programmer). 4- تحویل فایل منبع به مترجم و تولید فایل اجرایی. 5- اجرای برنامه جهت بررسی نحوه کارکرد آن و کشف خطاهای احتمالی. انواع زبان های برنامه نویسی در حال حاضر زبان های برنامه نویسی متعددی وجود دارند و توسعه دهندگان نرم افزار در سراسر جهان با بهره گیری از آنها برنامه های خود را توسعه می دهند. زبان‌های برنامه نویسی را می‌توان از پنج دیدگاه متفاوت مورد بررسی قرار داده و تقسیم بندی کرد: الف) روش‌های برنامه نویسی 1- زیر روالی (Subroutine) یا تابعی (Functional) : روال یا تابع (به آن زیر برنامه هم می گویند) یک قطعه از برنامه است که دارای نام مشخص می باشد و در برنامه اصلی با فراخوانی نام آن، می توان آن را اجرا کرد. برنامه نویسان به کمک این روش علاوه بر افزایش خوانایی برنامه، می توانند از یک قطعه کد بارها استفاده کنند. 2- ساخت یافته : علاوه بر مزایای روش تابعی، کد را در قالب بلوک (Block) می نویسند. هر بلوک نماینگر قسمتی از کد برنامه است که وظایف مشخصی دارد. 3- مدولار یا ماژولار (Modular) : در این روش از ماژول ها استفاده می شود. ماژول قسمتی از کد برنامه است که در یک فایل مجزای دیگر نوشته می شود. در ماژول معمولاً توابع و متغیرهایی (Variables) ایجاد می شوند که در تمامی برنامه عمومیت داشته باشند. 4- شئ گرا (Object Oriented) : به روز ترین روش برنامه نویسی است که در آن همه چیز به دید شیء (Object) نگریسته می شود. شیء از یک کلاس (Class) مشتق می شود. برنامه نویسان با شناسایی مسئله و انتزاع موجودیت های (Entities) آن، کلاس ها را طراحی می کنند. کلاس مجموعه ای از خواص (Properties)، متدها (Method) و رویدادها (Events) می باشد که یک بار طراحی می شود اما می توان چندین نمونه (Instance) از آن ایجاد کرد. در حال حاضر روش مورد استفاده برنامه نویسان روش شیء گرایی است. ب) نزدیکی به زبان ماشین 1- سطح پایین : زبان های سطح پایین به زبان ماشین نزدیک هستند و معمولاً در حوزه علم سخت افزار بکار برده می شوند. دستورات این نوع زبان ها بسیار ابتدایی اما یادگیری آن ها مشکل است. 2- سطح میانی : در این نوع زبان ها از دستورات قابل فهم تری نسبت به زبان های سطح پایین استفاده شده است و بیشتر برای کنترل سخت افزار از آنها استفاده می شود. در برنامه نویسی کامپایلرها و سیستم عامل ها به شکل گسترده ای از این نوع زبان ها استفاده شده است. دستورات این نوع زبان ها تا حدودی ابتدایی اما یادگیری آن ها معمولاً مشکل است. 3- سطح بالا : برای برنامه نویسی برنامه های کاربردی مختلف از این نوع زبان های استفاده می شود. قسمت عمده ای از زبان های برنامه نویسی موجود در دنیا در این گروه قرار دارند. دستورات این نوع زبان ها مرکب و دارای پیچیدگی می باشند اما یادگیری آن ها ساده است. ج) نوع ترجمه 1- مفسری : زبان هایی که در حین اجرا خط به خط ترجمه و تفسیر می شوند زبان های مفسری نام دارند. در این نوع زبان ها امکان اشکال زدایی تمامی دستورات برنامه وجود ندارد و اشکالات در حین اجرا مشخص می شوند. همچنین سرعت اجرای آنها پایین است زیرا همزمان با عمل ترجمه و تفسیر دستورات، عمل اجراء نیز انجام می شود. نسل این نوع زبان ها منقرض شده است و دیگر کاربردی ندارند. 2- کامپایلری : زبان هایی که ابتدا کل دستورات برنامه را بررسی کرده و اشکالات نحوی (Syntax Error) آنها را شناسایی می کنند سپس آنها را ترجمه می کنند، زبان های کامپایلری نامیده می شوند. این روشی است که در حال حاضر در اکثر زبان های برنامه نویسی به کار می رود. د) رابط برنامه نویسی 1- مبتنی بر متن : در این نوع زبان ها یک صفحه ویرایشگر متن وجود دارد که برنامه نویس فایل منبع خود را در آن تایپ می کند. در این روش امکانات خاصی برای ایجاد رابط کاربری (User Interface) وجود ندارد و برنامه در یک محیط کاملاً متنی اجرا می شود. زبان های سطح میانی از این نوع می باشند و بیشتر برای ایجاد برنامه های فاقد رابط کاربر بکار برده می شوند. برنامه هایی که معمولاً برای کنترل سخت افزار یا ارائه خدمات به سیستم عامل مورد استفاده قرار می گیرند. اگر یک برنامه نویس بخواهد با این نوع زبان ها برنامه ای بسازد که دارای رابط گرافیکی باشد، مجبور می شود تا رابط کاربر شخصی خود را طراحی کند که بسیار وقت گیر است. 2- مبتنی بر گرافیک (ویژوال) : این نوع زبان ها نسبت به گروه قبلی از محبوبیت و مقبولیت بیشتری برخوردارند. اکثر زبان های برنامه نویسی مطرح جهان از این نوع می باشند. در این زبان ها، امکاناتی وجود دارد تا برنامه نویس بدون صرف وقت زیاد اقدام به طراحی رابط های گرافیکی کابر پسند نماید. ه) دامنه کابرد 1- همه منظوره : از این نوع زبان های برنامه نویسی برای توسعه طیف گسترده ای از نرم افزارها استفاده می شود. این نوع زبان های برنامه نویسی عمومیت بیشتری دارند و در بین متخصصان نرم افزار از محبوبیت بیشتری برخوردارند. معمولاً کار کردن با آنها آسان و یادگیری آنها سریع است. 2- تک منظوره : این نوع زبان ها برای توسعه شکل خاصی از نرم افزارها بکار می روند. در بعضی پروژه ها استفاده از این نوع زبان ها معقول تر و به صرفه تر است و هزینه های تولید نرم افزار را کاهش می دهند. ولی غالباً یادگیری آنها مشکل و کار کردن با آنها نیاز به مهارت خاصی دارد. انتخاب زبان برنامه نویسی مناسب جهت توسعه نرم افزار بستگی به عوامل متعددی دارد. ماهیت پروژه، تواناییها و کاربردهای یک زبان و علاقه برنامه نویسان به یک زبان خاص می تواند از اهم این عوامل باشد. امروزه زبان های برنامه نویسی بسیار پیشرفت کرده اند و توانایی خلق طیف وسیعی از پروژه های نرم افزاری را دارند.