مقدمه:
زبان C پس از تولد ، شوك بزرگي به دنياي كامپيوتر وارد كرد . اين زبانبطور
اساسي شيوه هاي تفكر و دستيابي به برنامه نويسي كامپيوتر را دگرگون ساخت . تولد C
ناشي از نياز به يك زبان ساخت يافته ، موثر و سطح بالا بعنوان جايگزينيبراي
كدهاي اسمبلي و پياده سازي برنامه نويسي سيستم بود . هنگاميكه يك زبانبرنامه
نويسي جديد متولد ميشود ، مقايسه ها شروع خواهد شد . مقايسه ها براساسمعيارهاي
زير انجام مي گيرند :
* راحتي كاربري در مقايسه با قدرتمندي زبانبرنامه نويسي
* ايمني در مقايسه با سطح كارآيي
* استحكام در مقايسه باتوسعه پذيري
قبل از ظهور زبان C برنامه نويسان با زبانهايي كار مي كردند كهقدرتبهينه سازي يك مجموعه خاص از خصايص را داشتند . بعنوان مثال هنگاميكه از فرترن براي نوشتن برنامه هاي موثر در كاربردهاي علمي استفاده مي كنيم ، برنامههايحاصله براي كدهاي سيستم چندان مناسب نيست. زبان بيسيك با اينكه براحتيآموختهمي شود ، اما قدرت زيادي نداشته و عدم ساخت يافتگي آن در برنامه هايبزرگ مشكلآفرين خواهد شد . از زبان اسمبلي براي توليد برنامه هاي كاملا" موثر استفادهمي شود ، اما آموزش و كار با اين زبان بسيار مشكل است . بعلاوه اشكالزداييكدهاي اسمبلي بسيار طاقت فرساست . مشكل اصلي ديگر اين بود كه زبانهاياوليه برنامه نويسي نظير بيسيك ، كوبولو فرترن براساس اصول ساخت يافته طراحينشده بودند . اين زبانها از Goto عنوانابزارهاي اوليه كنترل برنامه استفادهمي كردند . در نتيجه ، برنامه هاي نوشته
شده با اين زبانها توليد باصطلاح " كدهاي اسپاگتي "(spaghetti code() مي كردندمنظور مجموعه اي در هم تنيده ازپرشها و شاخه هاي شرطي است كه درك يك برنامهطولاني را ناممكن مي سازد . اگر چهزبانهايي نظير پاسكال ، ساخت يافته هستنداما فاقد كارايي لازم بوده و جنبه هاي ضروري براي كاربرد آنها در طيف وسيعي ازبرنامه ها وجود ندارد . ( بخصوص ويرايش پاسكال) استاندارد فاقد ابزارهاي كافيبراي استفاده در سطح كدهاي سيستم بود ) تا قبل از ابداع زبان C )، زبان ديگري قدرت نداشت تا خصلتهاي متضادي كه درزبانهاي قبلي مشاهده مي شد، را يكجا گردآوري كند . نياز به وجود يك چنين زبانيشديدا" احساس ميشد. در اوايل دهه 1970 ميلادي ، انقلاب رايانه اي در حال شكلگيريبود و تقاضا براي انواع نرم افزارها فشار زيادي روي برنامه نويسان وتواناييهايايشان اعمال ميكرد. درمراكز آموزشي تلاش مضاعفي براي ايجاد يك زبانبرنامه نويسيبرتر انجام مي گرفت . اما شايد از همه مهمتر توليد و عرضه انبوهسخت افزار
كامپيوتري بود كه بعنوان يك نيروي ثانويه روي زبانهاي برنامه نويسيعمل ميكرد. ديگر رايانه ها و اسرار دروني آنها پشت درهاي بسته نگهداري نمي شد . براي اولينبار بود كه برنامه نويسان واقعا" دسترسي نامحدودي به اسرار ماشينهايخود پيدانمودند . اين امر زمينه تجربيات آزادانه را بوجود آورد . همچنينبرنامه نويسانتوانستند ابزارهاي مورد نيازشان را ايجاد نمايند .
براي بررسي تاريخچه بايد به سال 1967 بازگرديم که مارتين ريچاردز زبان BCPL را براي نوشتن نرم افزارهاي سيستم عامل و کامپايلر در دانشگاه کمبريج ابداع کرد. سپس در سال 1970 کن تامپسون زبان B را بر مبناي ويژگيهاي زبان BCPL نوشت و از آن براي ايجاد اولين نسخه هاي سيستم عامل Unix در آزمايشگاههاي بل استفاده کرد. زبان C در سال 1972 توسط دنيس ريچي از روي زبان B و BCPL در آزمايشگاه بل ساخته شد و ويژگيهاي جديدي همچون نظارت بر نوع داده ها نيز به آن اضافه شد. ريچي از اين زبان براي ايجاد سيستم عامل Unix استفاده کرد اما بعدها اکثر سيستم عاملهاي ديگر نيز با همين زبان نوشته شدند. اين زبان با سرعت بسياري گسترش يافت و چاپ کتاب "The C Programming Language" در سال 1978 توسط کرنيگان و ريچي باعث رشد روزافزون اين زبان در جهان شد.
متاسفانه استفاده گسترده اين زبان در انواع کامپيوترها و سخت افزارهاي مختلف باعث شد که نسخه هاي مختلفي از اين زبان بوجود آيد که با يکديگر ناسازگار بودند. در سال 1983 انستيتوي ملي استاندارد آمريکا (ANSI) کميته اي موسوم به X3J11 را را مامور کرد تا يک تعريف فاقد ابهام و مستقل از ماشين را از اين زبان تدوين نمايد.در سال 1989 اين استاندارد تحت عنوان ANSI C به تصويب رسيد و سپس در سال 1990، سازمان استانداردهاي بين المللي (ISO) نيز اين استاندارد را پذيرفت و مستندات مشترک آنها تحت عنوان ANSI/ISO C منتشر گرديد.
با ظهور زبان C ، زمينهجهشهاي بزرگ در زبانهاي برنامه نويسي مهيا بسياري معتقدند كهايجاد زبان C راهگشاي دوران جديدي در زبانهاي برنامه نويسيبوده است . اين زبانبطور موفقيت آميزي تناقضهاي موجود در زبان هاي برنامه نويسيقبلي را مرتفع نمود . نتيجه فرآيند ايجاد زبان C ، يك زبان قدرتمند ، كارا وساخت يافته بود كهبراحتي قابل آموزش و فراگيري بود . اين زبان يك ويژگي غيرمحسوس اما مهم داشت : زبان C ، زبان برنامه نويسان بود . قبل از ابداع زبان C زبانهاي برنامه نويسييا جنبه هاي آموزشي داشته يا براي كارهاي اداري طراحيميشد . اما زبان C چيزديگري بود . اين زبان توسط برنامه نويسان واقعي و درگيربا كارهاي جدي ، طراحيو پياده سازي شده و توسعه يافت . جنبه هاي مختلف اينزبان توسط افرادي كه باخود زبان سر و كار داشته و برنامه نويسي مي كردند موردبررسي ، آزمايش و تفكر وتفكر مجدد قرار گرفته بود .
اصل اين فرآيند هم زبانيبود كه برنامه نويسان آنرا دوست داشتند. در حقيقت زبان C بسرعت مورد توجهبرنامه نويسان قرار گرفت تاجايي كه برنامه نويسان نسبت به C تعصب خاصي پيدانمودند . اين زبان مقبوليت ومحبوبيت زيادي در بين برنامه نويسان يافت . بطورخلاصه زبان C توسط برنامهنويسان و براي برنامه نويسان طراحي شده است .
نياز به++C طي دهه 1970 واوايل دهه 80 ميلادي زبان C نگين انگشتري برنامه نويسان بود و
هنوز هم در سطحوسيعي مورد استفاده قرار مي گيرد . از آنجاييكه C يك زبان موفقو سودمند بوده ،ممكن است بپرسيد چه نيازي به زبانهاي جديدتر وجود داشته است . پاسخ شما يك كلمهيعني پيچيدگي (Complexity) است . طي تاريخ كوتاه برنامه نويسيپيچيدگي فزايندهبرنامه ها نياز براي شيوه هاي بهتر مديريت پيچيدگي را بوجودآورده است . ++C پاسخي است به اين نياز مديريت پيچيدگي برنامه ها كه زمينه اصليپيدايش++C بودهاست . شيوه هاي برنامه نويسي از زمان اختراع رايانه تاكنون بطور قابل توجهيتغييرنموده اند . بعنوان مثال ، هنگاميكه رايانه ها اختراع شدند ، برنامهنويسي بااستفاده از دستور العملهاي باينري (Binary) ماشين انجام مي گرفت . ماداميكه برنامه ها شامل حدود چند دستور العمل بود ، اين روش كارآيي داشت .
بموازات رشد برنامه ها زبان اسمبلي ابداع شد تا برنامه نويسان بتوانند برنامههايبزرگتر و پيچيده تر را با استفاده از نشانه هايي كه معرف دستورالعملهايماشينبودند ، بنويسند . اما پيشرفت و رشد برنامه ها همچنان ادامه يافت وزبانهاي سطحبالايي معرفي شدند كه ابزارهاي مناسب براي مديريت پيچيدگي روزافزونبرنامه ها رادر اختيار برنامه نويسان قرار مي دادند .
اولين زبان مطرح دراين زمينه فرترن بود . اگر چه فرترن اولين گام در اين مسير بود، اما زباني استكه توسط آن برنامه هاي تميز و سهل الادراك نوشته مي شود.
در دهه 1960 ميلاديبرنامه نويسي ساخت يافته مطرح شد . با استفاده از زبانهايساخت يافته، براياولين بار امكان راحت نوشتن برنامه هاي بسيار پيچيده بوجودآمد . اما حتي باوجود روشهاي برنامه نويسي ساخت يافته ، هنگاميكه يك پروژه بهاندازه معيني ميرسيد ، پيچيدگي آن از توان مديريت برنامه نويس خارج مي شد . دراوائل دهه 1980ميلادي بسياري از پروژه هاي مديريت برنامه نويسي از مرزهايبرنامه نويسي ساختيافته گذشتند . براي حل اين قبيل مشكلات ، يك روش نوينبرنامه نويسي ابداع شد . اين روش را برنامه نويسي شي گرا يا باختصار oop مي نامند .
توصيف مختصراين روش عبارت استاز : oop يك نوع روش شناسي برنامه نويسي است كهامكان سازماندهي برنامه هايپيچيده از طريق بهره گيري از سه روش : وراثت ، كپسولسازي و چند شكلي ، راايجاد مي كند . در تحليل نهايي ، اگر چه C بزرگترين و مهمترين زبان برنامهنويسي جهان استاما محدوديتهايي در مديريت پيچيدگي برنامه ها دارد . هنگاميكهيك برنامه ازمحدوده 25000 تا 100000 خط از كدها تجاوز نمايد، آنچنان پيچيده ميشود كه دركآن بعنوان يك برنامه كلي ناممكن خواهد شد. ++C اين محدوديت را ازبين برده وبه برنامه نويس كمك مي كند تا برنامه هايي از اين بزرگتر را نيز دركو مديريتنمايد.
++C در سال 1979 ميلادي توسط Bjarne stoustrup هنگاميكه درآزمايشگاه بل در Marry Hill ايالت New jersy مشغول كار بود ، ابداع شد . او درابتدا اين زبانجديد را (C with classes) ناميد . اما در سال 1983 ميلادي ناماين زبان جديد به ++ Cتغيير يافت++C. تداوم زبان C بود كه جنبه هاي oop نيز بهآن اضافه مي شد. از آنجايي كه زبان++C براساس زبان C شكل گرفته ، در بر گيرندهكليه جنبه هاخسلتها (attributes) و مزاياي زبان C مي باشد . اين عوامل دلايلقاطعي برايموفقيت حتمي++C عنوان يك زبان برنامه نويسي هستند . ابداع++C درحقيقت تلاشيبراي ايجاد يك زبان كاملا" جديد برنامه نويسي نبود. در حقيقت پروژه++C منجر بهافزايش تواناييهاي زبان موفق C شد . چون++C از ابتداي تولدتاكنون داراي روايتهاي گوناگوني شده است ، در حالحاضر در تلاش استاندارد نمودناين زبان هستند.
با گسترش شبکه و اينترنت، نياز به زباني احساس شد که برنامه هاي آن بتوانند برروي هر ماشين و هر سيستم عامل دلخواهي اجرا گردد. شرکت سان مايکروسيستمز در سال 1995 ميلادي زبان Java را برمبناي C و ++C ايجاد کرد که هم اکنون از آن در سطح وسيعي استفاده مي شود و برنامه هاي نوشته شده به آن برروي هر کامپيوتري که از Java پشتيباني کند(تقريبا تمام سيستمهاي شناخته شده) قابل اجرا مي باشد. شرکت مايکروسافت در رقابت با شرکت سان، در سال 2002 زبان جديدي بنام #C(سي شارپ) را ارائه داد که رقيبي براي Java بشمار مي رود.



زمينه هاي پيدايش جاوا

تاريخچه زبانهاي برنامه نويسي بشرح زير است : زبان B منجر به ظهور زبان C و C
زمينه پيدايش C++ شد و در نهايت زبان جاوامتولد شد . درك زبان جاوا مستلزم :
درك زمينه هاي لازم براي ايجاد جاوا ،نيروهايي كه اين زبان را شكل داده اند و
مشخصاتي است كه اين زبان از اسلاف خودبه ارث برده است . نظير ساير زبانهاي
برنامه نويسي موفق ، جاوا نيز عناصر بارثبرده از اسلاف خود را با ايده هاي
ابتكاري كه ناشي از محيط منحصر بفرد اين زبانبوده درهم آميخته است . فصول بعدي
جنبه هاي عملي زبان جاوا شامل دستور زبان (syntax) و كتابخانه ها (libraries)
و كاربردهاي جاوا را توصيف مي كند . فعلا" چگونگي و علت ظهور جاوا و اهميت آن
را بررسي مي كنيم .
اگر چه جاوا تفكيكناپذيري با محيط هاي همزمان اينترنت پيوستگي دارد ، اما
بخاطر بسپاريد كه جاواقبل از هر چيز يك زبان برنامه نويسي است . ابداعات و
پيشرفت ها در زبانهايبرنامه نويسي كامپيوتر بدو دليل بروز مي كنند :
-
تطابق با تغييرات محيط ها وكاربردها .
-
ايجاد پالايش و پيشرفت در هنر برنامه نويسي .