مقدمات زبان C
زبان C در سال 1970 توسط دنيس ريچي طراحي گرديد. اين زبان تكامل يافته زبان BCPL
ميباشد كه طراح آن مارتين ريچاردز است ،و زبان BCPL از زبان B كه طراح آن
كن تامپسون مي باشد ، نتيجه شده است .
زبان C معمولا" يك زبان مياني ناميده مي شود . اين بدان معني نيست كه آموزش
اين زبان مشكل است ، يا قدرت آن از زبان هاي برنامه سازي مثل پاسكال و بيسيك
كمتر است و يا اين كه مشكلاتي مشابه زبان اسمبلي براي برنامه نويس ايجاد مي كند.
علت مياني بودن زبان C اين است كه عناصر زبان هاي سطح بالا را با خصيصه تابعي
زبان اسمبلي درهم آميخته است .براي پي بردن به جايگاه زبان C درمقايسه با ساير
زبان هاي برنامه سازي به جدول (1) مراجعه نماييد .
جدول (1) . سطوح زبان هاي برنامه سازي
زبان C همانند ساير زبانهاي مياني با مفاهيم بيت ، بايت و آدرس كه از عناصر
ابتدايي ماشين هستند سر و كار دارد . يعني در اين زبان مي توان محتويات بيت ها
و بايت ها را تيز تغيير داد .
برنامه هاي نوشته شده به زبان C براحتي از ماشيني به ماشين ديگر قابل انتقال
مي باشند . مثلا" برنامه نوشته شده براي كامپيوتر APPL در كامپيوترهاي IBM قابل
اجرا است . اين خصيصه را قابل حمل بودن (Portability) زبان مي گويند .
كليه زبان هاي برنامه سازي سطح بالا و مياني داراي نوعهاي داده (data types)
هستند . هر نوع داده ، مجموعه اي از مقادير را مشخص مي كند كه اعمال خاصي روي
آنها قابل انجام است . نوع داده اي كه در اكثر زبانها وجود دارد عبارتند از :
اعداد صحيح ، كاراكتري و اعداد اعشاري . C داراي 5 نوع داده اصلي است كه در آن
تقريبا" تبديل هر نوع داده به نوع ديگر امكان پذير است . مثلا" در يك عبارت
مي توان نوع كاراكتري را با نوع عددي صحيح و يا اعشاري تركيب كرد .
زبان C خطاي زمان اجرا مثل boundray checking را چك نمي كند . منظور از boundray checking
اين است كه در آرايه ها تجاوز از حدود مشخص شده ، به راحتي
امكان پذير بوده و از نظر كامپايلر با خطايي مواجه نميشود. اين مساله برميگردد
به اين كه در زبان C آرايه يك اشاره گر (pointer) است . در اين راستا ، نوع
پارامترها و آرگومان هاي توابع نيز در گونه هاي قديمي C با يكديگر مطابقت نشده و
از نظر كامپايلر با خطا مواجه نمي شد ولي در گونه هاي جديد C با معرفي الگوي
تابع (Function prototype) اين مشكل رفع شده است . C
همانند زبان هاي ALGOL، PASCAL، و... يك زبان ساخت يافته است . يك زبان
برنامه سازي ساخت يافته امكانات زيادي ، از جمله استفاده از چند ساختار حلقه سازي
مثل while، do-while،و forو را فراهم مي كند . در اين گونه زبان ها از goto به
ندرت استفاده مي شود و نوشتن دستورات برنامه در هر ستوني از خط و در هر جاي
فايل امكان پذير بوده ، مثل زبان فرترن مقيد به ستون هاي خاصي نيستند. استفاده
از زيربرنامه ها و بلاك ها نيز از خصيصه هاي اين نوع زبان ها هستند . ذكر اسامي
چند زبان ساخت يافته و غير ساخت يافته ، در انتخاب زبان برنامه سازي جهت برنامه
نويسي مفيد است . ( جدول (2) ) .
جدول (2) . بعضي از زبانهاي ساخت يافته و غيرساخت يافته
هر برنامه در زبان C داراي خصيصه هايي است كه بعضي از آنها عبارتند از : 1
در زبان C هر دستور برنامه به يك ; ختم مي شود . 2
هر دستور ميتواند درچند خط ادامه داشته و يك خط ممكن است شامل چند دستور
باشد . 3
حداكثر طول يك خط برنامه 254 كاراكتر است . 4
در زبان C برنامه نويس مي تواند در هر نقطه از برنامه ، بااستفاده از علائم {
و }و يك بلاك را مشخص كرده و هر متغيري را كه مي خواهد در آنجا تعريف نمايد .
اين متغيرها فقط در آن بلاك معني خواهند داشت . توجه داريم كه هر بلاك مجموعه اي
از دستورات وابسته به يكديگر خواهد بود :
ؤؤ { |
بلاك | ; مجموعه دستورات } |
ؤؤ 5
براي داشتن توضيحات در برنامه كافي است آنها را دربين /*و *و/ قرار داد: *
توضيحات /* C
يك زبان ساخت يافته بلاكي نيست . اين بدان معني است كه تعريف يك زيربرنامه
( در اينجا تابع ) در زيربرنامه ديگر ( همانند پاسكال ) امكان پذير نيست و اين
امر از مساله coupling مي كاهد . C
زبان برنامه نويسي سيستم است . منظور از برنامه هاي سيستم عبارتند از : 1
سيستم عامل (Operating system) 2
مفسر (Interpreter) 3
ويراستار (Editor) 4
اسمبلر (Assrmbler) 5
كامپايلر (Compiler) 6
مديريت بانكهاي اطلاعاتي (Database management)
امروزه C در اكثر امور برنامه نويسي مورد استفاده قرار مي گيرد . زيرا اين
زبان هم داراي خصيصه " قابل حمل بودن " است و هم داراي كارآيي خوبي مي باشد و
سرعت زياد C بر محبوبيت آن افزوده است . مساله قابل حمل بودن ، يك مساله بسيار
مهم است زيرا هم موجب صرفه جويي در وقت شده و هم باعث صرفه جويي در هزينه ها
مي گردد .
زبان C فقط داراي 32 كلمه كليدي است ( جدول (3) ) كه 27 كلمه كليدي آن توسط
ريچي ( طراح زبان ) معرفي شده و 5 كلمه كليدي ديگر توسط موسسه استاندارد سازي
زبان به آن اضافه شده است . اين تعداد در مقايسه با 159 كلمه كليدي كه در زبان
بيسيك وجود دارد قابل توجه است .
| auto | double | int | struct |
| break | else | long | switch |
| case | enum* | register | typedef |
| char | extern | return | union |
| const* | float | short | unsigned |
| continue | for | signed* | void* |
| default | goto | sizeof | volatile* |
| do | if | static | while |
اضافه شدن توسط موسسه استاندارد سازي زبان
جدول (3) . كلمات كليدي زبان C
بعضي از كامپايلرها علاوه بر 32 كلمه كليدي جدول (3) كلمات كليدي ديگري به
زبان اضافه نموده اند . ( جدول (4) ) .
| asm | ess |- ds |- es |
|- ss | cdecl | far | huge |
| intrrupt | near | pascal | |
جدول (4) . كلمات كليدي زبان C كه بعضي از كامپايلرها اضافه كرده اند
كليه كلمات كليدي در زبان C به حروف كوچك نوشته مي شوند . چون در اين زبان
بين حروف كوچك و بزرگ تفاوت است ، به عنوان مثال كلمه else يك كلمه كليدي است