منو
 صفحه های تصادفی
تحقیقات انجام شده قبلی
قانون اساسی جمهوری اسلامی ایران فصل هفتم، شوراها
غلبه اسلام بر تعصبات
حضرت اسماعیل علیه السلام
آگاهی و اطلاعات اثر بخش در تنیس
نقش مطبوعات در انقلاب مشروطیت
امام حسین علیه السلام و تفسیر آیه 35 سوره نور و آیه 36 سوره قصص
: اقتصاد و تجارت در عهد صفویه
سر انجام و سرنوشت نهایی جهان
تمرینات عادتی
 کاربر Online
699 کاربر online
تاریخچه ی: زبان برنامه نویسی

تفاوت با نگارش: 1

Lines: 1-36Lines: 1-130
-V{maketoc}
__زبان برنامه نویسی__ یا __زبان کامپیوتری__ یک تکنیک ارتباطی استاندارد برای بیان دستورالعمل ها به یک ((رایانه)) است. در زبان برنامه نویسی از مجموعه ای از قواعد (( نحوی)) و (( معنایی)) برای تعریف یک (( برنامه کامپیوتری)) استفاده می شود. یک زبان به برنامه نویس اجازه می دهد که دقیقا مشخص کند که رایانه روی چه داده ی عمل کند، این داده چگونه ذخیره یا منتقل شود، و دقیقا تحت شرایط مختلف کدام (( الگوریتم )) روی آن اعمال شود.
+||V{maketoc}||
^ />@#16: />!زبان برنامه نویسی
 +{*__زبان برنامه نویسی__ یا __زبان کامپیوتری__ یک تکنیک ارتباطی استاندارد برای بیان دستورالعمل ها به یک ((رایانه)) است. در زبان برنامه نویسی از مجموعه ای از قواعد (( نحوی)) و (( معنایی)) برای تعریف یک (( برنامه کامپیوتری)) استفاده می شود. یک زبان به برنامه نویس اجازه می دهد که دقیقا مشخص کند که رایانه روی چه داده ی عمل کند، این داده چگونه ذخیره یا منتقل شود، و دقیقا تحت شرایط مختلف کدام (( الگوریتم )) روی آن اعمال شود.*}
 +---
 !جنبه های یک زبان برنامه نویسی !جنبه های یک زبان برنامه نویسی
-هر زبان برنامه نویسی را می توان به عنوان یک مجموعه از مشخصات در باره ی نحو، کلمات و معانی دانست. +{*هر زبان برنامه نویسی را می توان به عنوان یک مجموعه از مشخصات در باره ی نحو، کلمات و معانی دانست.
 این مشخصات معمولا شامل موارد زیر می شوند: این مشخصات معمولا شامل موارد زیر می شوند:
 *انواع داده و ساختمان های داده *انواع داده و ساختمان های داده
 *دستورالعمل ها و (( کنترل جریان)) *دستورالعمل ها و (( کنترل جریان))
 *مکانیزم های ارجاع و استفاده ی مجدد *مکانیزم های ارجاع و استفاده ی مجدد
 *فلسفه ی طراحی *فلسفه ی طراحی
-اغلب زبان هایی که کاربرد گسترده دارند و یا زبان هایی که برای یک دوره ی قابل توجه پر کاربرد بوده اند، دارای قالب های استانداردی برای تعریف، تعمیم و تکمیل برنامه ها می باشند.
+اغلب زبان هایی که کاربرد گسترده دارند و یا زبان هایی که برای یک دوره ی قابل توجه پر کاربرد بوده اند، دارای قالب های استانداردی برای تعریف، تعمیم و تکمیل برنامه ها می باشند.*}
---
#@
@#16:
 !!انواع داده و ساختمان های داده !!انواع داده و ساختمان های داده
-در یک رایانه رقمی مدرن، تمامی داده ها بصورت صفر و یک ((«سیستم عددی باینری))) ذخیره می شوند. عموما داده بیانگر اطلاعاتی از دنیای واقعی همچون نام ها، حساب های بانکی و ... می باشد. بنابراین زبان های برنامه نویسی داده های سطح پایین باینری را به این مفاهیم سطح بالا سازماندهی می کنند. +{*در یک رایانه رقمی مدرن، تمامی داده ها بصورت صفر و یک ((سیستم عددی باینری)) ذخیره می شوند. عموما داده بیانگر اطلاعاتی از دنیای واقعی همچون نام ها، حساب های بانکی و ... می باشد. بنابراین زبان های برنامه نویسی داده های سطح پایین باینری را به این مفاهیم سطح بالا سازماندهی می کنند.
 سیستم ویژه ای که چگونگی سازماندهی داده ها در برنامه را مشخص می کند، ((نوع داده)) ی یک زبان برنامه نویسی نامیده می شود. طراحی و مطالعه ی سیستم های ''نوع'' را (( تئوری نوع)) می نامیم. زبان ها را می توان به دو دسته ی (( نوع دار ایستا)) و (( نوع دار پویا)) طبقه بندی کرد. در زبان های نوع دار ایستا برای تعریف هر متغیر یا زیر برنامه، نوع آن نیز مشخص می شود. بر خلاف آن در زبانهای نوع دار پویا نیازی به تعریف دقیق نوع متغیر ها یا زیر برنامه ها نیست و خود زبان نوع آن ها را استنتاج می کند. گاه به این گونه زبان ها ((نوع دار مخفی)) گفته می شود. سیستم ویژه ای که چگونگی سازماندهی داده ها در برنامه را مشخص می کند، ((نوع داده)) ی یک زبان برنامه نویسی نامیده می شود. طراحی و مطالعه ی سیستم های ''نوع'' را (( تئوری نوع)) می نامیم. زبان ها را می توان به دو دسته ی (( نوع دار ایستا)) و (( نوع دار پویا)) طبقه بندی کرد. در زبان های نوع دار ایستا برای تعریف هر متغیر یا زیر برنامه، نوع آن نیز مشخص می شود. بر خلاف آن در زبانهای نوع دار پویا نیازی به تعریف دقیق نوع متغیر ها یا زیر برنامه ها نیست و خود زبان نوع آن ها را استنتاج می کند. گاه به این گونه زبان ها ((نوع دار مخفی)) گفته می شود.
-در زبان های نوع دار ایستا، انواع از پیش تعیین شده ای برای اجزای داده ها (همچون اعداد در یک بازه ی خاص، رشته ها یا حروف و ...) وجود دارد و متغیر ها (مقادیری که از دید برنامه نام دارند) می توانند فقط یک نوع ثابت را داشته باشند و عملیات خاصی را بپذیرند. مثلا اعداد نمی توانند به نام تبدیل شوند و برعکس. اغلب زبانهای اصلی نوع دار ایستا همچون ((C language|C)) و ((C PLUS PLUS)) و ((Java)) به تعری واضح تمامی انواع نیاز دارند. و بیان می شود که این کار فهم برنامه را سریع می کند. +در زبان های نوع دار ایستا، انواع از پیش تعیین شده ای برای اجزای داده ها (همچون اعداد در یک بازه ی خاص، رشته ها یا حروف و ...) وجود دارد و متغیر ها (مقادیری که از دید برنامه نام دارند) می توانند فقط یک نوع ثابت را داشته باشند و عملیات خاصی را بپذیرند. مثلا اعداد نمی توانند به نام تبدیل شوند و برعکس. اغلب زبانهای اصلی نوع دار ایستا همچون ((زبان برنامه نویسی C| C)) و ((C++)) و ((Java)) به تعریف واضح تمامی انواع نیاز دارند. و بیان می شود که این کار فهم برنامه را سریع می کند.
زبان های ((برنامه نویسی شی گرا
|شیءگرا)) به برنامه نویسان امکان تعریف انواع داده ای ''شیء'' که متغیرها و توابع ذاتی خود را دارند می دهند (که به ترتیب ویژگیها و روش ها نامیده می شوند).
#@
@#16:
یک برنامه ی شامل اشیاء به آنها اجازه ی عمل مستقل را می دهد اما زیر برنامه ها را تحت تأثیر قرار می دهد: این اثر متقابل می تواند در زبان کد کردن طراحی می شود تا اشیاء با اثر متقابل را شبیه سازی کند. این کار یک عمل مفید و شهودی است. زبان هایی مثل
((python)) و ((Ruby)) به عنوان زبان های شی گرا گسترش یافته اند. آنها نسبتاً برای یادگیری و استفاده آسان هستند و در محدوده های برنامه نویسی حرفه ای و غیر حرفه ای عمومیت پیدا کرده اند. تفکر عامه چنین است که شی گرایی، زبان ها را شهودی می کندو دسترسی عمومی و قدرت کاربردهای کامپوتری مشتری پسند را افزایش می دهد.
جدای از اینکه کی و چگونه تطابق بین انواع و عبارات تعیین شده است، یک سؤال اساسی وجود دارد که که زبان چه انواعی را تعریف می کند و چه انواعی را به عنوان مقادیر عبارات (ارزش های بیان شده) و به عنوان مقادیر نام دار (ارزش های دلالت شده) اجازه می دهد. زبان های سطح پایین مثل
C به برنامه اجازه ی نام دهی به مکان های حافظه و ثابت های زمان کامپایل را می دهد در حالی که به عبارت امکان باز گرداندن مقادیر که در ثبات ماشین قرار گرفته اند را می دهد؛ ANSIC این قابلیت را با اجازه به عبارات به منظور باز گرداندن مقادیر struct ، توسعه داده است. (پیوند ((رکورد)) را ببینید). ((برنامه نویسی تابعی |زبان های تابعی)) اغلب نام هارا به منظور دلالت مستقیم بر مقادیر محاسبه شده ی زمان اجرا، به جای مکان های حافظه ی نام دار که مقادیر در آن ذخیره می شوند، محدود می کنند و در بعضی از موارد به مقادیر دارای نام امکان تغییر نمی دهند. زبان هایی که از ((جمع آوری زباله)) استفاده می کننددر امکان دادن به ساختارهای داده ای مختلط دلخواه به عنوان مقادیر بیان شده آزادند. در پایان، در بعضی زبان ها، رویه ها تنها به عنوان مقادیر استدلال شده اجازه ی استفاده دارند (نمی توانند با عبارات باز گردانده شوندیا به نام های جدید محدود شوند)؛ در دیگر زبان ها رویه ها می توانند به عنوان پارامتر به رویتن ها منتقل شوند اما نمی توانند محدود به نام های جدید گردند؛ در بعضی دیگر آنها در استفاده مانند مقدار بیان شده محدودیتی ندارند اما در زمان اجرا نمونه های جدیدی نمی تواند ایجاد شود؛ و در انواع دیگری، رویه ها مقادیر کلاس اول هستند که می توانند در زمان اجرا ایجاد شوند.*}
---
#@
@#16:
!دستور العمل و جریان کنترل

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

{*به خاطر اهداف ذکر شده، هر زبان با استفاده از طراحی، فلسفه ی ویژه ای گسترش یافت. بعضی از جنبه ها، با روشی که زبان از ساختمان های داده استفاده می کند، تأکید می شدند یا اینکه نشانگذاری ویژه ی آن، راه های مشخص حل مسائل یا بیان ساختارشان را ترویج کرد.
چون زبان های برنامه نویسی زبان های مصنوعی هستند، نیاز به درجه ی نظم زیاد دارند تا به دقت مشخص کنندکه چه عملی مطلوب است. زبان های برنامه نویسی تحمل خطا را ندارند؛ اگر چه بار شناخت و کاربرد لغات ویژه با کمک پیغام های تولید شده به وسیله ی پیاده سازی زبان برنامه نویسی کاهش یافته است. زبان های کمی وجود دارند که آزادی زیادی در ایجاد تغییر می دهند یعنی در آن یک برنامه بخش هایی از خودش را برای مدیریت موردهای جدید دوباره نویسی می کند. نوعاً، تنها زبان ماشین و اعضای ((خانواده
Lisp)) ) ((scheme)) و ((Common Lisp)) ) این قابلیت را دارند. بعضی از زبان ها مانند ((MUMPS)) و زبان های (( با کامپال مجدد پویا))، ((رقابت کننده ها)) و دیگر ((ماشین های مجازی)) از این تکنیک برای اجرای بهتر استفاده می کنند.
راه های زیادی برای طبقه بندی ربان های برنامه نویسی وجود دارد. مقاصد کاملاً مشخص نیستند. یک استاندارد زبان خاص ممکن است در چند طبقه بندی پیاده سازی شود. مثلاً، یک زبان می تواند هر دو پیاده سازی تفسیر شده و کامپایل شده را داشته باشد.
به علاوه اغلب زبان های کامپایل شده شامل بعضی از ویژگی های مفسر شده ی زمان اجرا هستند. یک مثال قابل توجه رشته با فرمت I/o است که در یک زبان تخصصی نوشته شده و برای توصیف چگونگی تبدیل داده های برنامه به نمونه ی خارجی به کار می رود. این رشته در زمان اجرا تفسیر شده است. بسیاری از برنامه نویسان این قابلیت سازماندهی را بسیار ارزشمند می دانند.
!تاریخچه زبان های برنامه نویسی
پیشرفت زبان های برنامه نویسی بیسار نزدیک به پیشرفت عملیات الکترونیکی و فیزیکی مورد استفاده در کامپیوتر های امروزی است.
#@
@#16:
طراحی اولین ماشین های شبیه کامپیوتر به ((Ch
ales Babbage)) نسبت داده می شود که ((Ada levelace)) برنامه های زیادی را برای آن نوشته بودد ( معادل زبان ((اسمبلی)) ). در دهه 1940 اولی کامپیوترهای الکتریکی مدرن به وجود می آمدند. بعضی نیازهای محاسبه ی نظامی یک عامل توسعه ی کامپیوترهای اولیه بود. مثل رمزگذار رمزگشایی محاسبه ی مسیر گلوله و متراکم سازی زیاد مورد نیاز در توسعه ی بمب های اتمی. در آن زمان، کامپیوترها بسیار بزرگ، گران و کند بودند: پیشرفت ها در تکنولوژی الکترونیک در سال های جنگ منجر به ساخت کامپیوترهای الکترونیکی عملی تر شد. در آن زمان تنها ((konrad zuse)) استفاده از زبان برنامه نویسی ( که عاقبت به عنوان ((Plankalkul)) گسترش یافت) مثل آنهایی که امروزه مسائل را حل می کنند، را پیشنهاد کرد.
پیشرفت های بعدی در تکنولوژی الکترونیک (ترانزیستورها، مدارهای مجتمع و تراشه ها) گسترش کامپیوترهای مفیدتر و قابل اعتمادتر را سرعت بخشید
ند. این پیشرفت با توسعه ی زبان های کامیوتری استاندارد برای اجرا روی آنها موازی شد. موجود بودن و استفاده ی آسان از کامپیوترها منجر شد که افراد بیشتری با کامپیوترها کار کنند. پیشرفت انفجاری بعدی منجر به ایجاد اینترنت، حضور کامپیوترهای شخصی در همه جا، و استفاده ی روز افزون از برنامه نویسی کامپیوتر با استفاده از زبان هایی مثل ((phthon))، ((Visual Basic)) و غیره شد.*}
---




{picture=img/daneshnameh_up/9/9f/compics051.jpg}

!طبقه بندی زبان های
برنامه نویسی
*((زبان های ب
رنامه نویسی سریع)) />*((زبان های برنامه نویسی آرایه ای))
*((زبان های برنامه نویسی پیوسته))
*((زبان های برنامه نویسی همزمان))
*((زبان های برنامه نویسی تعریفی))
*((زبان های برنامه نویسی با دامنه ویژه))
*((زبان های برنامه نویسی پویا))
*((زبان های برنامه نویسی آموزشی))
*((زبان های برنامه نویسی رمزی))
*((زبان های برنامه نویسی سریع))
*((برنامه نویسی تابعی |زبان های برنامه نویسی تابعی))
*((زبان های برنامه نویسی همه منظوره))
*((زبان های برنامه نویسی منطقی))
*((برنامه نویسی شی گرا |زبان های برنامه نویسی شی گرا))
*((زبان های برنامه نویسی متنی))
#@
@#16:


---
!زبان های اصلی

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

|| (( زبان برنامه نویسی Ada|Ada)) | ((ALGOL)) | ((APL زبان برنامه نویسی|APL)) |((AWK زبان برنامه نویسی|AWK)) ((BASIC زبان برنامه نویسی|BASIC)) | ((زبان برنامه نویسی C|C)) | ((C++)) | ((C#)) | ((COBOL)) | ((ColdFusion)) | ((Common Lisp)) | ((Delphi زبان برنامه نویسی |Delphi)) | ((Eiffel زبان برنامه نویسی|Eiffel)) |
((Focus software|Focus)) |((Fortran)) | ((زبان برنامه نویسی Haskell|Haskell)) | ((Interface description language|IDL)) | ((Java زبان برنامه نویسی|Java)) | ((جاوا اسکریپت |Java script)) | ((Lisp زبان برنامه نویسی|Lisp)) |((Modula-2|Modula)) | ((Objective-C)) |((OCaml)) |((Pascal زبان برنامه نویسی|Pascal)) |
((Perl)) | ((PHP زبان برنامه نویسی|PHP)) | ((Prolog)) | ((Python زبان برنامه ویسی|Python)) | ((Ruby زبان برنامه نویسی|Ruby)) |((SAS Institute|SAS)) |((Scheme زبان برنامه نویسی|Scheme)) |((اسمال تاک)) | ((SQL)) | ((Visual Basic))||

!معنای رسمی
تعریف سخت از معنای زبان های برنامه نویسی موضوع (( معنای رسمی)) است
.
 !همچنین ببینید !همچنین ببینید
 +*__لیست زبان های برنامه نویسی__
 +**(( لیست الفبایی زبان های برنامه نویسی))
 +**(( لیست طبقه بندی زبان های برنامه نویسی))
 +**(( لیست زمانی زبان های برنامه نویسی))
 +**(( لیست تولیدی زبان های برنامه نویسی))
 +**(( لیست رمزی زبان های برنامه نویسی))
 +*((کامپایلر))
 +*((مقید سازی))
 +*((برنامه hello World))، مثال هایی از یک برنامه ساده به زبان های برنامه نویسی مختلف.
 +*((مهندسی نرم افزار)) و ((لیستی از عناوین مهندسی نرم افزار))
 *(( دوباره کامپایل کردن پویا)) *(( دوباره کامپایل کردن پویا))
-*(( درخت دودویی)) 
 *(( برنامه نویسی تابعی)) *(( برنامه نویسی تابعی))
-*(( زبان برنامه نویسی Haskell)) +*(( Haskell|زبان برنامه نویسی Hasekell))
 *(( زبان برنامه نویسی Ada)) *(( زبان برنامه نویسی Ada))
-*(( ساخت یافته)) +*((زبان برنامه نویسی ساخت یافته))
 *(( رابط نوع)) *(( رابط نوع))
-*(( کامپیوتر)) +*((رایانه|کامپیوتر))
 *(( نظریه نوع)) *(( نظریه نوع))
-*(( سیستم عددی دودوئی))  
 *(( Tcl)) *(( Tcl))
-*(( Common Lisp))
*(( چند شکلی«علم کامپیوتر)))
+*((Common Lisp))
*(( چند شکلی«علم کامپیوتر»))
*((زباله روبی خودکار
))
*((رکورد))
*(( زبان برنامه نویسی سطح پایین))
*(( انواع داده ای))
*(( درخت دودویی))
*(( سیستم اعداد دو دویی))
---
!پیوندهای خارجی
*[http://en.wikipedia.org/wiki/Programming_language ]
*[http://www.99-bottles-of-beer.net/ ]
*[http://www.levenez.com/lang/history.html ]
*[http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl ]
*[http://hopl.murdoch.edu.au/ ]
*[http://dmoz.org/Computers/Programming/Languages/ ]
*[http://jvoegele.com/software/langcomp.html ]
*[http://merd.sourceforge.net/pixel/language-study/syntax-across-languages/ ]
#@
^

تاریخ شماره نسخه کاربر توضیح اقدام
 یکشنبه 16 مهر 1385 [08:12 ]   13   زینب معزی      جاری 
 یکشنبه 16 مهر 1385 [07:57 ]   12   زینب معزی      v  c  d  s 
 یکشنبه 16 مهر 1385 [07:51 ]   11   زینب معزی      v  c  d  s 
 چهارشنبه 22 شهریور 1385 [12:35 ]   10   فرید امیرغیاثوند      v  c  d  s 
 دوشنبه 09 آذر 1383 [09:49 ]   9   حمید حسن نیا      v  c  d  s 
 دوشنبه 09 آذر 1383 [08:58 ]   8   حمید حسن نیا      v  c  d  s 
 دوشنبه 09 آذر 1383 [04:42 ]   7   حمید حسن نیا      v  c  d  s 
 یکشنبه 08 آذر 1383 [12:39 ]   6   حمید حسن نیا      v  c  d  s 
 شنبه 07 آذر 1383 [08:14 ]   5   حمید حسن نیا      v  c  d  s 
 شنبه 07 آذر 1383 [07:15 ]   4   حمید حسن نیا      v  c  d  s 
 دوشنبه 02 آذر 1383 [20:45 ]   3   حمید حسن نیا      v  c  d  s 
 شنبه 30 آبان 1383 [10:39 ]   2   حمید حسن نیا      v  c  d  s 
 دوشنبه 27 مهر 1383 [10:19 ]   1   حمید حسن نیا      v  c  d  s 


ارسال توضیح جدید
الزامی
big grin confused جالب cry eek evil فریاد اخم خبر lol عصبانی mr green خنثی سوال razz redface rolleyes غمگین smile surprised twisted چشمک arrow



از پیوند [http://www.foo.com] یا [http://www.foo.com|شرح] برای پیوندها.
برچسب های HTML در داخل توضیحات مجاز نیستند و تمام نوشته ها ی بین علامت های > و < حذف خواهند شد..