زبان C در اوایل دهه 1970 میلادی توسط دنیس ریچی در لابراتوار کمپانی BELL و بعنوان زبان برنامهنویسی سیستمها طراحی گردید. این زبان از دو زبان پیشین بنامهای BCPL و B منتج شده است که این دو نیز در همین لابراتوار ساخته شده بودند ..زبان C تا سال 1978 منحصر به استفاده در همین لابراتوار بود تا اینکه توسط دو تن بنامهای ریچی و کرنیه نسخه نهایی این زبان منتشر شد . به سرعت کامپایلرها و مفسرهای متعددی از C توسعه یافت لیکن برای جلوگیری از ناسازگاری های ایجاد شده و نیز حفظ قابلیت حمل زبان ، تعاریف متحدالشکلی توسط استاندارد ANSI ارایه گردید . آنچه در این درس ارایه شده بر اساس همین استاندارد میباشد . بطور کلی ویژگیهای مهم زبان C به اختصار به شرح زیر است : زبان C ، بطور گسترده ای در دسترس میباشد . کامپایلرهای تجارتی آن برای بیشتر کامپیوترهای شخصی ، مینی کامپیوترها و نیز در mainframe قابل استفاده اند . C ، زبانی است همه منظوره ، ساختیافته سطح بالا (مانند زبان پاسکال و فرترن ) و انعطافپذیر که برخی از خصوصیات زبانهای سطح پایین را که معمولاً در اسمبلی یا زبان ماشین موجود است ، نیز دارا میباشد . در عین حال C برای کاربردهای ویژه طراحی نشده است و میتوان از آن در همة زمینهها ، بخصوص به لحاظ نزدیکی آن به زبان ماشین در برنامه نویسی سیستم استفاده کرد . بنابراین C بین زبانهای سطح بالا و سطح پایین قرار دارد و در نتیجه اجازه میدهد که برنامه نویس خصوصیات هر دو گروه زبان را بکار برد . از اینرو در بسیاری از کاربردهای مهندسی بطور انحصاری زبان C را بکار میبرند . ( زبانهای سطح بالا ، دستورالعملهایی شبیه زبان انسان و پردازش فکری او دارند ، همچنین یک دستورالعمل زبان سطح بالا معادل چند دستورالعمل به زبان ماشین است .) برنامههای نوشته شده به زبان C بطور کلی مستقل از ماشین یا نوع کامپیوتر است و تقریباً تحت کنترل هر سیستم عاملی ، اجرا میگردد . کامپایلرهای C معمولاً فشرده و کم حجم میباشد و برنامههای هدف ایجاد شده بوسیلة آنها در مقایسه با سایر زبانهای برنامهسازی سطح بالا ، خیلی کوچک و کارآمد میباشد . ( کامپایلر یا مفسر ، خود برنامه ای کامپیوتری است که برنامه سطح بالا را بعنوان یک داده ورودی می پذیرد و برنامه ایجاد شده به زبان ماشین را بعنوان خروجی ایجاد می کند .) برنامههای C در مقایسه با سایر زبانهای برنامهسازی سطح بالا ، بهراحتی قابل انتقال میباشند . دلیل این کار آن است که C خیلی از ویژگیهای وابسته به نوع کامپیوتر را در توابع کتابخانهای خود منظور داشته است . بنابراین هر نسخه از C با مجموعهای از توابع کتابخانهای مخصوص به خود همراه است که براساس خصوصیات و ویژگیهای کامپیوتر میزبان مربوط نوشته شده است . این توابع کتابخانهای تا حدودی استاندارد میباشد و معمولاً هر تابع کتابخانهای در نسخههای متعدد C بشکل یکسان قابل دسترسی میباشد . C ، روش برنامهسازی ماژولار را پشتیبانی میکند . همچنین از نظر عملگرها نیز یک زبان قوی بوده و شامل اپراتورهای گوناگونی برای دستکاری روی دادهها در سطح bit میباشد . بطور کلی جامعیت ، عمومیت ، خوانایی ، سادگی ، کارآیی و پیمانه ای بودن که همگی از مشخصات یک برنامه ایده آل است توسط زبان C قابل پیاده سازی میباشد . ویژگیهای فوق موجب شده زبان C بعنوان یکی از قویترین و محبوبترین زبانهای برنامه سازی دنیا مطرح شود . زبان برنامهنویسی C مجموعهای خاص از کاراکترها را شناسایی میکند. این مجموعه که در حکم مصالح اولیه جهت شکل دادن به اجزا اصلی برنامه هستند عبارتند از : - حروف بزرگ و کوچک : زبان C برخلاف بعضی زبانها مثلاً پاسکال بین حروف بزرگ و کوچک فرق میگذارد . مثلاً FOR با for یکسان نیست . - ارقام دهدهی : شامل 0 تا 9 - کاراکترهای مخصوص : شامل ^ % $ # @ ! + - = / * ? < > { } [ ] ~ - جای خالی یا Blank - کاراکترهای فرمتدادن یا Formating Characters ، که عبارتند از : کاراکتر خط جدید (New Line) یا \n کاراکتر برگشت به عقب (Back Space) یا \b کاراکترHorizontal Tab یا \t کاراکترVertical Tab یا \v کاراکتر تغذیه فرم (Form Feed) یا \f کاراکتر ابتدای سطر یا \r کاراکتر تهی یا \0 و غیره که با کاربرد آنها آشنا خواهید شد . شناسهها علایم سمبولیکی هستند که برای مراجعه به انواع دادهها مانند مقادیر ثابت ، متغیرها ، نوعها و توابع بکار برده میشوند. به عبارتی دیگر شناسهها اسامی هستند که به عناصر مختلف برنامه مانند متغیرها ، توابع و آرایهها اختصاص داده میشود. یک شناسه C دنبالهای است از حروف ، ارقام یا علامت زیر خط که با حروف یا علامت زیر خطدار شروع میشود. برحسب قرارداد شناسههایی که با Underscore شروع میگردند فقط در برنامههای سیستم کاربرد دارند و در برنامههای کاربردی غیرقابل استفادهاند. در انتخاب طول اسامی یا تعداد کاراکترهای آن از نظر C محدودیتی وجود ندارد گرچه هر زبان قواعد و محدودیت خاص خودش را بکار میبرد . طول اسامی در زبان C استاندارد تا 31 کاراکتر مجاز است . مثال - اسامی زیر شناسه های معتبر هستند : x1 , sum , payam_noor , maximum مثال - اسامی زیر شناسه های معتبر نیستند : book-5 , 4s , $tax , "p" , number one متغیرها در زبان C شناسههایی هستند که محلهایی از حافظه را به خود اختصاص میدهند. یک متغیر ترکیبی است از ارقام ، حروف و علامت زیرخط )_( . لازم به ذکر است متغیرهایی که با علامت زیر خط شروع می شوند برای متغیرهای داخلی سیستم رزرو شدهاند. طول هر متغیر در ANSI استاندارد تا 31 کاراکتر است ، ولی در بعضی از کامپایلرهای قدیمی زبان محدود به 8 کاراکتر میباشد. بعضی از شناسههای زبان C کلمات رزرو شده یا کلیدی هستند. یعنی معنی و مفهوم آن از قبل در زبان تعریف و پیشبینی شده است. بنابراین نمیتوانند در برنامه به عنوان شناسههای تعریف شده به وسیله برنامهنویس بکار برده شوند . متداولترین کلمات کلیدی C به شرح زیر است : for | goto | else | if | char | float | int | main | enum | register | return | signed | default | while | do | double | sizeof | static | struct | auto | case | short | coutinue | const | union | unsigned | extern | typedef | void | switch | long | break |
البته در بعضی از کامپایلرهای زبان C ممکن است کلمات کلیدی دیگری نیز وجود داشته باشد که باید به کتاب راهنمای مربوطه مراجعه شود . توجه داشته باشید که همه کلمات کلیدی با حروف کوچک نوشته میشود پس main کلمه کلیدی است درحالی که Main کلمه کلیدی نمیباشد زیرا حرف اول آن بزرگ است . همینطور void کلمه کلیدی است اما VOID کلمه کلیدی نیست . در زبان C هر عبارتی که بین دو علامت */ و /*قرار گیرد صرفاً بعنوان توضیحات محسوب میگردند . مثلاً اگر بخواهیم در مورد یک دستور توضیح دهیم که چه کاری را انجام میدهد در هر جای برنامه که فضای خالی مجاز باشد میتوان برای توضیح از علامت فوق استفاده کرد. ( در اغلب نسخه ها علامت // هم مجاز است . ) مثال - در برنامه زیر از علامت توضیح استفاده شده است : #include<stdio.h> main ( ) { int j , k ; for ( j =1 ; j <= 10 ; j+ + ) /* outer loop */ { printf("%5d ", j ) ; for ( k=1; k<=10; k+ +) /* inner loop */ printf("%5d", j * k ) ; printf("\n") ; } } همه برنامههای C شامل یک یا چندین تابع هستند که یکی از آنها تابع اصلی یا main نامیده میشود . هر برنامه فقط یک تابع اصلی دارد و برنامه همیشه با اجرای تابع اصلی آغاز میگردد. تعریف توابع دیگر ممکن است قبل یا بعد از تابع اصلی قرار گیرد . ادامه دارد...
سوالات و مشکلات خود را از درس سی پلاس پلاس بپرسید .. پاسخگویی به سوالات از طرف مهندس دهقانی می باشد..
|