خانه / بیشتر از برنامه نویسی / بیشتر از برنامه نویسی (۵) : برنامه نویسی

بیشتر از برنامه نویسی (۵) : برنامه نویسی

برنامه ریزی کامپیوترها مستلزم داشتن برنامه های کامپیوتری ایست و برنامه های کامپیوتری با برنامه نویسی، ایجاد می شوند. اگر تاکنون مانند یک کاربر عادی تنها استفاده کننده از کامپیوتر بودید، اکنون آماده می شوید تا مانند متخصصین کامپیوتر، برنامه ریزی کامپیوترها را آغاز کنید. اما پیش از آن باید بیش تر پیرامون برنامه نویسی بدانید.

یک تعریف نسبتاً جامع از برنامه نویسی می تواند به صورت زیر باشد:

« برنامه ‌نویسی کامپیوتر (که اغلب در انگلیسی programming یا coding گفته می‌ شود)،  فرآیند نوشتن، اشکال زدایی[۱] و نگهداری کد منبع [۲]برنامه کامپیوتر می ‌باشد. این کد منبع با یک زبان برنامه نویسی نوشته شده که ممکن است تغییر داده شده یک کد قبلی و یا یک کد کاملا جدید باشد. هدف برنامه نویسی ساختن یک برنامه می ‌باشد که یک رفتار خواسته شده را به نمایش بگذارد.[۳] »

عمل برنامه نویسی و ایجاد برنامه خود توسط مفهومی به اسم زبان های برنامه نویسی، صورت می گیرد. زبان برنامه نویسی یک مفهوم انتزاعی است. زبان ‌های برنامه ‌نویسی ساختارهای زبانی دستور مداری در کامپیوترها هستند که به‌ وسیله آن ها می‌ توان یک الگوریتم[۴] را به‌ وسیله ساختارهای دستوری متفاوت برای اجرا در کامپیوتر  توصیف کرد و با این روش امکان نوشتن برنامه جهت تولید نرم ‌افزارهای جدید به وجود می ‌آید.

در سراسر جهان، زبان های گوناگونی وجود دارد که مردم از آن ها برای تعامل با دیگران استفاده می کنند. ما فارسی صحبت می کنیم و فارسی می نویسیم برخی انگلیسی و برخی . . .  . در عین حال این زبان ساختارهای مشابهی دارند؛ مثلاً همه آن ها دارای فعل و فاعل و جمله و … می باشند و شاید واضح ترین تفاوت بین آن ها الفبای این زبان ها باشند. برخی از این زبان ها نیز معروف تر اند و عده بیش تری به آن مسلط هستند و برخی نیز ساده تر و برخی هم سخت تر اند.

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

  • نسل اول زبان ماشین – زبان صفر و یک که زبان اصلی و مادری هر کامپیوتری است.
  • نسل دوم زبان هایی خانواده ای موسوم به اسمبلی – قابل فهم تر برای انسان و در ارتباط تنگاتنگ با زبان ماشین
  • نسل سوم زبان هایی مانند کو بول و PL1 و… – دستورات قابل فهم تر برای انسان و نیاز به کامپایلرها
  • نسل چهارم زبان هایی مانند فاکس پرو و SQL ها – نزدیک به محاوره های انسانی
  • نسل پنج زبان هایی مانند prolog و ops5 تمرکز بر حل مسئله و استفاده از الگوریتم های نوشته شده توسط برنامه نویس

 یک زبان برنامه نویسی در واقع یک زبان مصنوعی است که برای بیان محاسباتی که توسط یک ماشین (مخصوصاً کامپیوتر)، قابل انجام است، طراحی شده ‌است. زبان های برنامه نویسی برای ایجاد برنامه‌ هایی به کار می ‌روند که رفتار یک ماشین را مشخص می ‌کنند، الگوریتم دقیق را بیان می ‌کنند، و یا روشی برای ارتباط انسانند با ماشین. بسیاری از زبان ‌های برنامه نویسی تعدادی قالب از ویژگی ‌های نوشته شده دستوری(syntax)  و معناشناسی (semantics) دارند، چرا که کامپیوتر ‌ها دستورات دقیقا مشخص و آشنا نیاز دارند.

زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف داده ‌ها، و عملیات یا تبدیل ‌هایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم می کند. یک برنامه نویس از انتزاعات آماده در زبان استفاده می کند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از ساده‌ ترین عناصر موجود بیان می شوند(مفاهیم ابتدایی نامیده می‌شوند. زبان‌های برنامه نویسی با غالب زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها “دقیقا آن چه که به آن ها گفته شده را انجام می‌دهند.” و  نمی‌توانند “بفهمند” که نویسنده دقیقا چه کدی مد نظر نویسنده بوده‌است. البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجه رضایت بخشی نرسیده است. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آن ها متوقف شده‌است. با وجود این که تلاش‌هایی برای طراحی یک زبان رایانه” کامل” شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند به طور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود:

  • محدوده برنامه‌ها از متون بسیار کوچک نوشته شده توسط افراد عادی تا سیستم‌های بسیار بزرگ نوشته شده توسط صدها برنامه نویس است.
  • توانایی برنامه نویس‌ها: از تازه کارهایی که بیش از هر چیز به سادگی نیاز دارند تا حرفه‌ای‌هایی که با پیچیدگی قابل توجهی کنار می‌آیند.
  • برنامه‌ها باید سرعت، اندازه و سادگی را بسته به سیستم‌ها از ریزپردازندها تا ابر رایانه‌ها متناسب نگه دارند.
  •  برنامه‌ها ممکن است یک بار نوشته شوند و تا نسل‌ها تغییر نکنند، و یا ممکن است پیوسته اصلاح شوند.
  • در نهایت، برنامه نویس‌ها ممکن است در علایق متفاوت باشند: آن ها ممکن است به بیان مسائل با زبانی خاص خو گرفته باشند.

یک سیر رایج در گسترش زبان‌های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همان طور که زبان‌های برنامه نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورات سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آن ها می‌تواند محاسبات بیش تری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آن ها این امکان را می‌دهد که کارایی بیش تر در واحد زمان داشته باشند. “پردازنده‌های زبان طبیعی” به عنوان راهی برای ازبین بردن نیاز به زبان‌های اختصاصی برنامه نویسی پیشنهاد شده‌اند. هرچند، این هدف دور است و فواید آن قابل بحث است. “ادسگر دیجسترا” موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان “احمقانه” رد کرد، “آلن پرلیس” نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com  در سال ۲۰۱۰، ۱۲ زبان پرکاربرد عبارتند از:

C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic

اولین زبان برنامه نویسی به قبل از رایانه‌های مدرن باز می‌گردد. قرن ۱۹ دستگاه‌های نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثال‌هایی از زبان‌های برنامه نویسی با حوزه مشخص شناخته می‌شوند. با شروع قرن بیستم، پانچ کارت‌ها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتم‌ها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.

کامپیوترهای اوایل ۱۹۵۰، به طور خاص ÜNIVAC1.0  و  IBM701 از برنامه‌های زبان ماشین استفاده می‌کردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده می‌شود، جایگزین شد. در سال‌های بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی دیگر: FORTRAN,LISP , COBOL  مورد استفاده قرار گرفت. نسخه‌های به روز شده این برنامه‌ها همچنان مورد استفاده قرار می‌گیرند، و هر کدام قویاً توسعه زبان‌های بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol60 معرفی شد و بسیاری از زبان‌های برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol60 هستند.



[۱] – debug

[۲] – source code

[۳] – از ویکی پدیا دانشنامه آزاد.  مقاله کامل را می توانید از  برنامه نویسی/ http://fa.wikipedia.org/wiki ، بخوانید.

[۴] – شیوه پرقدرت حل گام به گام مسئله.  در ادامه بیش تر راجع آن می خوانیم.

نقد و بررسی

۰

User Rating: ۳٫۹۷ ( ۳ votes)

درباره ی [مرتضی]

مرتضی ذاکری - عضو تیم کاری تارنمای میکروپدیا دانش آموخته مهندسی کامپیوتر - گرایش نرم افزار

همچنین ببینید

میکروپدیا؛ وب سایت تخصصی انجام پروژه های فنی و مهندسی

بیشتر از برنامه نویسی (۳) : ساختمان کامپیوترها

در این قسمت، نگاهی اجمالی بر سازمان و ساختمان کامپیوترها می اندازیم. خواهیم دید چگونه …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پاسخ عبارت زیر را وارد کنید: *