زبان برنامه نویسی سی/آشنایی با زبان سی C: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جزبدون خلاصۀ ویرایش |
جزبدون خلاصۀ ویرایش |
||
خط ۸:
شاید از خود بپرسید استاندارد به چه معناست ؟ از زمانی که زبان سی تعریف و اختراع شد قابلیتهای بسیار زیادی به رایانه افزوده شدند. برای همین در طول زمان ، ارائه دهندههای بستههای نرمافزاری پیادهساز زبان سی ، همواره هر کدام برای خود کلید واژه هایی را اضافه یا کم میکردند و یا عملکرد دلخواه خود را برای آن به کار میبستند . هر کدام کتابخانه مجزای خود را ایجاد میکردند . استانداردهای ISO در طول این مدت بیشتر نیازهای برنامهنویسی را پوشش میدادند و میدهند اما باز هم برخی از کامپایلرها از استانداردهای قدیمی C98 و یا C99 استفاده میکنند یا با اینکه سازگار با C11 یا C18 هستند به صورت کامل استاندارد را پشتیبانی نمیکنند ، مثلاً برخی کامپایلرها هنوز اجازه استفاده از متون Unicode ( مثل UTF-16 ) را در داخل متن منبع برنامه ( Program Source Code ) نمیدهند
اما چرا C ؟ برخی زبانها خیلی سطح بالا هستند ، مثل Python یا COBOL که با آنها نمیتوانید خیلی از کارها را انجام بدهید ، چون دسترسی به CPU و سختافزار را ندارید ؛ برخی زبانها ، همترازِ زبان C هستند ، اما کارایی و قدرت زبان C را ندارند مثل پاسکال Pascal . در خانواده زبان C و زبانهایی که از آن الگو گرفتهاند ، مثلاً زبان مشهوری همچون جاوا Java از شرکت Sun Microsystems باز هم قدرت زبان C را ندارند . با جاوا نمیتوان یک کرنل نوشت ، مخصوصاً با تغییراتی که پس از فروخته شدن Sun به Oracle پیش آمد ( که قدرت زبان جاوا ، بسیار کاهش یافت ) ؛ همین طور خیلی از ابزارهای قدرتمند ( Tools ) که با سختافزار ارتباط برقرار میکنند و سطح پائین نوشته میشوند یا مثلاً Daemon ها و ... که امکان نوشته شدن در زبانهای سطح بالا را ندارند . در این بین میماند زبان ++C که با کامپایلر C نوشته شد تا کارهایی را سهولت بخشد و قابلیت شیئگرائی را به C اضافه کند و رقیب سرسخت زبان C میباشد . اما اول اینکه زبان C قدرت بیهمتایی دارد و دارای کامپایلرها و پیادهسازهای قدرتمندی بوده و هست که قابلیتهای اضافهتر از زبان استاندارد C را به آن داده و میدهند که با کمک آنها میتوان از ترفندهایی استفاده کرد که به عنوان مثال ، شیئگرایی را در C تقلید کرد ؛ همچنین با قابلیتهایی که در استانداردهای جدید به زبان C اضافه شد برنامهنویسی سطح بالا بسیار راحتتر از قبل شده است ؛ ضمن اینکه پروژههای زیادی در دنیای GNU / Linux و با پروانههای انتشار آزاد GPL یا BSD به زبان C عرضه شدند که تقریباً تمام کارهایی که بخواهید انجام بدهید را از قبل نوشتهاند و شما با مجموعه کتابخانههای بسیار بزرگ و کاملی مواجه هستید ؛ که در صورتی که بخواهید برنامه خود را آزاد و رایگان ارائه دهید ( Free and Open Source ) متن منبع برنامه را استفاده کرده و یا ویرایش میکنید و سپس از آن در برنامه خود استفاده میکنید و یا در صورتی بخواهید برنامه خود را تجاری یا متن بسته ارائه دهید ؛ در صورتی که پروانه ( License ) انتشار BSD را داشته باشد به راحتی میتوانید از آنها در برنامه تجاری و یا متن بسته خود ( Closed Source ) استفاده کنید و ممنوعیتی ندارید و در صورتی نیز که برنامه نوشته شده پروانه انتشار عمومی گنیو را داشته باشد ( GNU GPL ) شما میتوانید برنامه کامپایل شده آن را در برنامه خودتان استفاده کنید ولی فقط به صورت کامپایل شده ( و از متن منبع آن در برنامه خود استفاده نکنید ) . شما در زبان C میتوانید از کدهای Assembly نیز استفاده کنید ؛ شاید بگوئید در ++C هم میشود ولی فراموش نکنید که به تازگی پیادهسازهای ++C به وضعیت مطلوبی در مورد پردازندههای ARM رسیدند و از قدیمالایام تا به کنون فقط برای پردازندههای x86 کامپایل میشوند در حالی که زبان C تقریباً برای هر پردازنده و دستگاه الکترونیکی ( Device ) ـی دارای کامپایلر است ؛ چه به صورت عمومی در کامپیوترهای خانگی و چه به صورت خصوصی در کمپانیها و شرکتها و کارخانجات که استخدام شوید که البته برای برنامهنویسی سطح پائین ، باید به الکترونیک نیز تسلط داشته باشید . همین طور که میبینید ، قابلیتها و قدرت C باعث محبوبیت بیهمتای آن در بین برنامهنویسان قدر و قهار و
برای نوشتن برنامههای سی نیاز به مجموعهای از نرم افزارها خواهید داشت . که در صفحه بعدی می توانید آنها را پیدا کرده و مهیّا نمائید . به صورت اختصار ، اول باید یک ویرایشگر متن داشته باشید. در ویندوز برنامه Notepad و در سیستم عامل مک TextEdit و در نسخ مختلف لینوکس ویرایشگرهای متن به همراه سیستم عامل وجود دارند ( نظیر gEdit ) . اما ویرایشگر های متنی همچون ++Notepad یا Geany ، GNU Emacs ، JuffEd ، Programmer's Notepad ، Scribus ، SuperEdi ، Vim ، WinVi یا خیلی از ویرایشگرهای دیگر امکاناتی دارند که سهولت نوشتن و کامپایل برنامه را فراهم مینمایند . امکاناتی نظیر تفکیک قسمتهای برنامه با رنگی کردن ، کلفت کردن ، ایتالیک کردن و از همه مهمتر جمع کردن قسمتهای آن که میتوانید قسمتها و بلوکهای متن خود را مدیریت کنید ؛ جستجو و جایگزین کردنهای پیچیده و کامل ، کدنویسی خودکار و ... که کار را راحتتر میکنند
خط ۱۴:
پیادهسازها ، برنامه بعدی مورد نیاز هستند که عمدتاً کامل هستند و کامپایلر ، لینکر و دیباگر را با هم ارائه میکنند . هر کدام از پیادهسازها ممکن است علاوه بر زبان استاندارد ، دارای کلیدواژههای اضافی باشند که کاربردهای اختصاصی خود را دارند . به علاوه کتابخانههایی را عرضه میکنند که استفاده از توابع و ماکروهای آنها ، کار برنامهنویس را برای نوشتن برنامه سهولت میبخشند
در انتها باید بدانید که برخی نرمافزارها مجموعه کاملی از ویراشگر و پیادهساز به همراه تمام یا بخشی از نیاز های برنامهنویس مبتدی یا حرفهای ( نظیر ساخت رابط کاربری خودکار ) را فراهم میکنند که به آنها آی.دی.ای IDE گفته می شود و سرنام Integrated Development Environment به معنی محیط تولید یکپارچه میباشد . اما استفاده از آنها برای افراد مبتدی توصیه نمیشود ، چرا که کار کردن با کامپایلر را یاد نمیگیرند و معمولاً نیز برای ایجاد پروژه هستند و کار با آنها برای افراد مبتدی ، ممکن است گیجکننده باشد
[[رده:زبان برنامه نویسی سی]]
|