//انواع زبان های برنامه نویسی//sunup
فناوري اطلاعات و ارتباطات
//انواع زبان های برنامه نویسی//sunup
نوشته شده توسط برتررایانه در ساعت 11:56

 

//انواع زبان های برنامه نویسی//

آموزش کامپیوتر | انواع زبان های برنامه نویسی
زبان برنامه نویسی یا زبان کامپیوتری یک تکنیک ارتباطی استاندارد برای بیان دستورالعمل ها به یک رایانه است.
 

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

جنبه های یک زبان برنامه نویسی

هر زبان برنامه نویسی را می توان به عنوان یک مجموعه از مشخصات در باره ی نحو، کلمات و معانی دانست. این مشخصات معمولا شامل موارد زیر می شوند:

*انواع داده و ساختمان های داده
*دستورالعمل ها و کنترل جریان
*مکانیزم های ارجاع و استفاده ی مجدد
*فلسفه ی طراحی

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

  • انواع داده و ساختمانهای داده

در یک رایانه رقمی مدرن، تمامی داده ها بصورت صفر و یک سیستم عددی باینری ذخیره می شوند. عموما داده بیانگر اطلاعاتی از دنیای واقعی همچون نامها،حسابهای بانکی و … می باشد. بنابراین زبانهای برنامه نویسی داده های سطح پایین باینری را به این مفاهیم سطح بالا سازماندهی می کنند.

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

در زبانهای نوع دار ایستا، انواع از پیش تعیین شده ای برای اجزای داده ها(همچون اعداد در یک بازه ی خاص، رشته ها یا حروف و …) وجود دارد و متغیرها (مقادیری که از دید برنامه نام دارند) می توانند فقط یک نوع ثابت را داشته باشند و عملیات خاصی را بپذیرند. مثلا اعداد نمی توانند به نام تبدیل شوند و برعکس. اغلب زبانهای اصلی نوع دار ایستا همچون C و C++ وJava به تعریف واضح تمامی انواع نیاز دارند. و بیان می شود که این کار فهم برنامه را سریع می کند.

زبانهای شیءگرا به برنامه نویسان امکان تعریف انواع داده ای شیء که متغیرها و توابع ذاتی خود را دارند می دهند (که به ترتیب ویژگیها و روش ها نامیده می شوند). یک برنامه ی شامل اشیاء به آنها اجازه ی عمل مستقل را می دهد اما زیر برنامه ها را تحت تأثیر قرار می دهد: این اثر متقابل می تواند در زبان کد کردن طراحی شود تا اشیاء با اثر متقابل را شبیه سازی کند. این کار یک عمل مفید و شهودی است. زبانهایی مثل python و Ruby به عنوان زبانهای شی گرا گسترش یافته اند. آنها نسبتاً برای یادگیری و استفاده آسان هستند و درمحدوده های برنامه نویسی حرفه ای و غیر حرفه ای عمومیت پیدا کرده اند. تفکر عامه چنین است که شی گرایی، زبانها را شهودی می کند و دسترسی عمومی و قدرت کاربردهای کامپوتری مشتری پسند را افزایش می دهد.

جدای از اینکه کی و چگونه تطابق بین انواع و عبارات تعیین شده است، یک سؤال اساسی وجود دارد که که زبان چه انواعی را تعریف می کند و چه انواعی را به عنوان مقادیر عبارات (ارزشهای بیان شده) و به عنوان مقادیر نام دار (ارزشهای دلالت شده) اجازه می دهد. زبانهای سطح پایین مثل C به برنامه اجازه ی نام دهی به مکانهای حافظه و ثابتهای زمان کامپایل را می دهد در حالی که به عبارت امکان باز گرداندن مقادیر که در ثبات ماشین قرار گرفته اند را می دهد؛ ANSIC این قابلیت را با اجازه به عبارات به منظور باز گرداندن مقادیر struct ، توسعه داده است.

زبانهای تابعی اغلب نامها را به منظور دلالت مستقیم بر مقادیر محاسبه شده ی زمان اجرا، به جای مکانهای حافظه ی نام دار که مقادیر در آن ذخیره می شوند، محدود می کنند و در بعضی از موارد به مقادیر دارای نام امکان تغییر نمی دهند. زبانهایی که از جمع آوری زباله استفاده می کنند در امکان دادن به ساختارهای داده ای مختلط دلخواه به عنوان مقادیر بیان شده آزادند.

در پایان، در بعضی زبانها، رویه ها تنها به عنوان مقادیر استدلال شده اجازه ی استفاده دارند (نمی توانند با عبارات باز گردانده شوند یا به نامهای جدید محدود شوند)؛ در دیگر زبانها رویه ها می توانند به عنوان پارامتر به رویتنها منتقل شوند اما نمی توانند محدود به نامهای جدید گردند؛ در بعضی دیگر آنها در استفاده مانند مقدار بیان شده محدودیتی ندارند اما در زمان اجرا نمونه های جدیدی نمی تواند ایجاد شود؛ و در انواع دیگری، رویه ها مقادیر کلاس اول هستند که می توانند در زمان اجرا ایجاد شوند.

دستور العمل و جریان کنترل

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

فلسفه ی طراحی

به خاطر اهداف ذکر شده، هر زبان با استفاده از طراحی فلسفه ی ویژه ای گسترش یافت. بعضی از جنبه ها، با روشی که زبان از ساختمانهای داده استفاده می کند، تأکید می شدند یا اینکه نشانگذاری ویژه ی آن، راههای مشخص حل مسائل یا بیان ساختارشان را ترویج کرد. چون زبانهای برنامه نویسی زبانهای مصنوعی هستند، نیاز به درجه ی نظم زیاد دارند تا به دقت مشخص کنندکه چه عملی مطلوب است. زبانهای برنامه نویسی تحمل خطا را ندارند؛ اگر چه بار شناخت و کاربرد لغات ویژه با کمک پیغامهای تولید شده به وسیله ی پیاده سازی زبان برنامه نویسی کاهش یافته است. زبانهای کمی وجود دارند که آزادی زیادی در ایجاد تغییر می دهند یعنی در آن یک برنامه بخشهایی از خودش را برای مدیریت موردهای جدید دوباره نویسی می کند. نوعاً، تنها زبان ماشین و اعضای خانواده Lisp ) scheme وCommon Lisp ) این قابلیت را دارند. بعضی از زبانها مانند MUMPS و زبانهای با کامپال مجدد پویا، رقابت کننده ها و دیگر ماشینهای مجازی از این تکنیک برای اجرای بهتر استفاده می کنند. راههای زیادی برای طبقه بندی زبانهای برنامه نویسی وجود دارد. مقاصد کاملاً مشخص نیستند. یک استاندارد زبان خاص ممکن است در چند طبقه بندی پیاده سازی شود. مثلاً، یک زبان می تواند هر دو پیاده سازی تفسیر شده و کامپایل شده را داشته باشد.

به علاوه اغلب زبانهای کامپایل شده شامل بعضی از ویژگیهای مفسر شده ی زمان اجرا هستند. یک مثال قابل توجه رشته با فرمت I/o است که در یک زبان تخصصی نوشته شده و برای توصیف چگونگی تبدیل داده های برنامه به نمونه ی خارجی به کار می رود. این رشته در زمان اجرا تفسیر شده است. بسیاری از برنامه نویسان این قابلیت سازماندهی را بسیار ارزشمند می دانند.

تاریخچه زبانهای برنامه نویسی

پیشرفت زبانهای برنامه نویسی بسیار نزدیک به پیشرفت عملیات الکترونیکی و فیزیکی مورد استفاده در کامپیوترهای امروزی است. طراحی اولین ماشینهای شبیه کامپیوتر به Chales Babbage نسبت داده می شود که Ada levelace برنامه های زیادی را برای آن نوشته بود ( معادل زبان اسمبلی ). در دهه 1940 اولین کامپیوترهای الکتریکی مدرن به وجود می آمدند. بعضی نیازهای محاسبه ی نظامی یک عامل توسعه ی کامپیوترهای اولیه بود. مثل رمزگذاری، رمزگشایی محاسبه ی مسیر گلوله و متراکم سازی زیاد مورد نیاز در توسعه ی بمبهای اتمی. در آن زمان، کامپیوترها بسیار بزرگ، گران و کند بودند: پیشرفتها در تکنولوژی الکترونیک در سالهای جنگ منجر به ساخت کامپیوترهای الکترونیکی عملی تر شد. در آن زمان تنها konrad zuse استفاده از زبان برنامه نویسی ( که عاقبت به عنوان Plankalkul گسترش یافت) مثل آنهایی که امروزه مسائل را حل می کنند، را پیشنهاد کرد.

پیشرفتهای بعدی در تکنولوژی الکترونیک (ترانزیستورها، مدارهای مجتمع و تراشه ها) گسترش کامپیوترهای مفیدتر و قابل اعتمادتر را سرعت بخشیدند. این پیشرفت با توسعه ی زبانهای کامیوتری استاندارد برای اجرا روی آنها موازی شد. موجود بودن و استفاده ی آسان از کامپیوترها منجر شد که افراد بیشتری با کامپیوترها کار کنند. پیشرفت انفجاری بعدی منجر به ایجاد اینترنت، حضور کامپیوترهای شخصی در همه جا، و استفاده ی روز افزون از برنامه نویسی کامپیوتر با استفاده از زبان هایی مثل phthon، Visual Basic و غیره شد.

زبانهای اصلی زبانهای زیر زبانهای برنامه نویسی اصلی هستند که حداقل توسط هزاران برنامه نویس در سراسر دنیا استفاده می شوند:

  • Ada
  • ALGOL
  • APL
  • AWK BASIC
  • C
  • C++
  • C#
  • COBOL
  • ColdFusion
  • Common Lisp
  • Delphi
  • Eiffel
  • Focus
  • Fortran
  • Haskell
  • IDL
  • Java
  • Java script
  • Lisp
  • Modula
  • Objective-C
  • OCaml
  • Pascal
  • Perl
  • PHP
  • Prolog Python
  • Ruby
  • SAS
  • Scheme
  • اسمال تاک
  • SQL
  • Visual Basic

نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه: