زبان برنامهنویسی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
کمی از غلط املایی ها کاسته شد. برچسبها: ویرایشگر دیداری ویرایش همراه ویرایش از وبگاه همراه |
FreshmanBot (بحث | مشارکتها) جز اصلاح فاصله مجازی + اصلاح نویسه با ویرایشگر خودکار فارسی |
||
خط ۶:
عموماً زبانهای [[برنامهنویسی]] را به پنج نسل تقسیم میکنند:
* نسل اول [[زبان ماشین]] است همان زبان صفرو یک
* نسل دوم زبانهایی مانند اسمبلی و مشتق آن است که قابل فهم تر برای انسان
* نسل سوم زبانهایی مانند کوبول و پی ال وان و… است که دستورهای قابل فهم تر برای انسان و نیاز به کامپایلرها
* نسل چهارم مثل زبانهای اوراکل و [[فاکس پرو]] و اس کیو
* نسل پنج زبانهایی مانند prolog , ops5، [[ویژوال بیسیک]] - تمرکز بر [[حل مسئله]] و استفاده از
یک زبان برنامهنویسی یک [[زبان مصنوعی انگلیسی]] است که برای بیان محاسباتی که توسط یک ماشین (مخصوصا رایانه) قابل انجام است، طراحی شدهاست.زبانهای برنامهنویسی برای ایجاد برنامههایی به کار میروند که رفتار یک ماشین را مشخص میکنند، الگوریتم دقیق را بیان میکنند، یا روشی برای ارتباط انسانند.
خط ۴۶:
== کاربرد ==
زبان برنامهنویسی یک مکانیزم [[ساخت یافته]] برای تعریف دادهها، و عملیات یا تبدیلهایی که ممکن است
[[زبانهای برنامهنویسی]] با غالب [[زبانهای انسانی]] تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبانهای طبیعی برای ارتباط با دیگر انسانها، نویسندگان و گویندگان میتوانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانهها «دقیقاً آنچه که به آنها گفته شده را انجام میدهند.» و نمیتوانند «بفهمند» که نویسنده دقیقاً چه کدی مد نظر نویسنده بودهاست] البته امروزه برنامههایی برای انجام این کار تولید شدهاند و تلاشهای بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیدهاست[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه
برنامههای یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورهای را در یک مرحله فعل و انفعال مفسر تایپ کند. در این حالت «دستور»ها همان برنامهها هستند، که اجرای آنها زنجیروار به هم مرتبطند. به زبانی که برای دستور دادن به برنامهای استفاده میشود، زبان اسکریپت میگویند.
بسیاری از زبانها کنار گذاشته شدهاند، برای رفع نیازهای جدید جایگزین شدهاند، با برنامههای دیگر ترکیب شدهاند و در نهایت استعمال آنها متوقف شدهاست. با وجود اینکه تلاشهایی برای طراحی یک زبان رایانه« کامل» شدهاست که تمام اهداف را تحت پوشش قرار دهد، هیچیک نتوانستند
* محدوده برنامهها از متون بسیار کوچک نوشته شده توسط افراد عادی تا سیستمهای بسیار بزرگ نوشته شده توسط صدها برنامهنویس است.
* توانایی برنامهنویسها: از تازهکارهایی که بیش از هر چیز به سادگی نیاز دارند تا حرفهایهایی که با پیچیدگی قابل توجهی کنار میآیند.
* برنامهها باید سرعت، اندازه و سادگی را بسته به سیستمها از ریزپردازندهها تا ابر رایانهها متناسب نگه دارند.
خط ۱۳۴:
اغلب زبانهای برنامهنویسی یک کتابخانه هسته مرتبط دارند (گاهی اوقات "کتابخانه استاندارد" نامیده میشوند، مخصوصاً وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که بهطور قراردادی توسط تمام پیادهسازیهای زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتمها، داده ساختارها و مکانیزمهای ورودی و خروجی پرکاربرد را در خود دارد.
کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار میکنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هستهای را مشخص میکنند که باید در تمام پیادهسازیها موجود باشند، و در زبانهای استاندارد شده این کتابخانه هسته ممکن است نیاز باشد؛ بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبانها به گونهای تعریف شدهاند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند.
برای مثال در جاوا، یک رشته به عنوان نمونهای از کلاس “java.lang.String” تعریف شدهاست؛ مشابهاً، در سمال تاک(smalltalk) یک تابع بینام (یک "بلاک") نمونهای از کلاس BlockContext کتابخانه میسازد.
=== مدیریت منابع و نشت حافظه ===
خط ۱۵۶:
=== پیادهسازی ===
پیادهسازی یک زبان برنامهنویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سختافزار و نرمافزار را فراهم میکند.
خروجی یک کامپایلر ممکن است با سختافزار یا برنامهای به نام مفسر اجرا شود. در برخی پیادهسازیها که از مفسر استفاده میشود، مرز مشخصی بین کامپایل و تفسیر وجود ندارد. برای مثال، برخی پیادهسازیهای زبان برنامهنویسی بیسیک کامپایل میکنند و سپس کد را خط به خط اجرا میکنند.
خط ۱۷۰:
در دهه ۴۰، اولین رایانههای دیجیتال که توسط برق تغذیه میشدند ایجاد شدند. اولین [[زبان برنامهنویسی سطح بالا]] طراحی شده برای کامپیوتر پلان کلکول بود، که بین سالهای ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.
کامپیوترهای اوایل ۱۹۵۰،
=== پالایش ===
|