بازگشت   پی سی سیتی > کامپیوتر اینترنت و شبکه Computer internet > زبان های برنامه نویسی Programming

زبان های برنامه نویسی Programming بحث در مورد زبانهای مختلف برنامه نویسی

پاسخ
 
ابزارهای موضوع نحوه نمایش
  #1  
قدیمی 09-05-2009
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض 10 سوال اساسي در موردي زبان C - مصاحبه با مخترع زبان C++

10 سوال اساسي در موردي زبان C - مصاحبه با مخترع زبان C++







مجله الکترونيکي کامپيوترورلد با مخترع++ C، بيارن استراستروپ (Bjarne Stroustrup) مصاحبه‌اي انجام داده که تقريبا تمام جوانب اين زبان برنامه‌نويسي را از ديد سازنده آن بررسي كرده است، از ميان اين مصاحبه طولاني، چند سوال را انتخاب کرديم که دانستن آنها در مورد اين زبان برنامه‌نويسي محبوب خالي از لطف نيست:


چه کسي++ C را شروع کرد؟
من به دنبال ابزاري بودم که بتوانم نگارش توزيع‌شده از هسته يونيکس را طراحي و پياده‌سازي کنم. در آن سال (1979) چنين چيزي وجود نداشت. به ابزاري نياز داشتم که مي‌توانست ساختار يک برنامه را بيان کند و مستقيما با سخت‌افزار سرو کار داشته باشد و به‌درد برنامه‌نويسي‌هاي اساسي و جدي سيستم بخورد.
نام++ C از کجا آمده است؟
ابتداي کار، اسمش C with Classes بود. بسياري نمي‌توانستند آن را تلفظ کنند و کم‌کم به اسم C معروف شد. اما گويا متوجه نبودند که C صدا زدن اين برنامه يعني اشاره کردن به برنامه دنيس ريچي () نه برنامه من، براي همين اسم‌هاي مختلفي براي زبان‌ها گذاشتند. سي‌ قديم، سي بهتر، و چنين چيزهايي... تا اين‌که يک روز از طرف آزمايشگاه‌هاي بل (Bell Labs) براي من نامه آمد که يک اسم درست و حسابي براي اين زبان انتخاب کنيم که ما آن موقع به C++ بسنده کرديم. انتخاب زيادي نداشتيم، يک ليست بود که به ما دادند و من از ميان آنها همين را انتخاب کردم. البته بيشتر موافق بودند که ++C را انتخاب کنيم، اما به نظر من تلفظش ديگر بسيار سخت مي‌شد.
تا به حال به موانع يامشکلاتي برخورده‌ايد که توسعه زبان را به خطر بياندازد؟
تا دل‌تان بخواهد! قوانين اصلي طراحي برنامه چيست؟ چه چيزي بايد در زبان باشد و چه چيز نبايد باشد؟ اغلب مردم به‌دنبال زباني مي‌گردند که بسيار کوچک باشد و در عين حال تمام امکاناتي که آنها به‌دنبالش هستند را هم در خود داشته باشد، خب اين غيرممکن است.
بعد از مدت کوتاهي که به شانس و اقبال اکتفا کرده بودم، بالاخره به اين نتيجه رسيدم که بايد به قانوني مشخص برسم. زباني که در آن واحد هم پايدار باشد و هم براي برنامه‌نويسي سيستم (همچون زبان C) مناسب باشد. واضح است که هيچ برنامه‌اي نمي‌تواند هر دو را به‌طور کامل داشته باشد. اما هدف C++ اين بود، حالا چقدر به آن نزديک شديم، بعدا مشخص شد.
فرق بين زبان C همراه با كلاس که گفتيد و C++ چيست؟
اصل فرق در تکنيک پياده‌سازي آن نهفته است.C همراه با كلاس را يک پيش‌پردازنده پياده‌سازي مي‌کرد، اما++ C‌ به يک کامپايلر درست و حسابي نياز داشت (که من نوشتم). انتقال برنامه‌ها از C همراه با كلاس به++ C بسيار ساده بود اما اين دو زبان 100درصد سازگار نبودند. از ديدگاه زباني اگر به اين سوال نگاه کنيم، شايد به اين پاسخ برسيم که++ C از نظر توابع مجازي بهتر عمل مي‌کرد. ارزش گفتن دارد که مديريت منابع، سازنده‌ها و ويرانگرهاي++ C درست همان‌هايي بودند که در C همراه با كلاس از آن استفاده شد. از طرف ديگر، Templateها و استثناها در نسخه‌هاي بعدي C++ (1989) معرفي شد.
اگر الان شانس اين را داشتيد که C++ را دوباره اختراع کنيد، کدام بخش آن را تغيير مي‌داديد؟
- عجب سوال کليشه‌اي پرسيديد، آن موقع خب معلوم است که 30 سال تجربه کار با++ C را نداشتم و آن موقع، تنها منبعي که مي‌شد براي++ C به او مراجعه کرد، خودم بودم که تازه آن هم تمام وقت نبود. اما در بهترين حالت، دوست داشتم که توابع مجازي، Templateها و استثناها را اگر در سال 85 پياده مي‌کردم،++ Cزبان بسيار بهتري از آب در مي‌آمد.
وقتي در سال 1998،++ C به يک استاندارد بدل شد، چه احساسي داشتيد و چه نقشي را در روند استانداردسازي بازي کرديد؟
سال‌هاي زياد بود که سخت کار مي‌کردم (1989 – 1997)، هر چند که الآن دارم روي استاندارد زيرمجموعه‌اش کار مي‌کنم. اينکه زبان استانداردي را بخواهي محبوب حفظ کني، کاري دشوار و وظيفه‌اي سخت است. C++ هيچ پدري ندارد و هيچ کس نيست که براي توسعه‌اش از جيب بزند، کتابخانه‌هايش رايگان هستند و رايگان هم بازاريابي مي‌شوند. باز هم دست موسسه ايزو درد نکند که به رشد جامعه C++ کمک کرد و همين رشد باعث شد داوطلبان زيادي از سراسر دنيا داشته باشد.
جالبترين برنامه‌اي که تا به‌حال ديده‌اي که با++ C نوشته‌اند چيست؟
نمي‌توانم يکي را انتخاب کنم.. بيشتر به سيستم‌هاي کامل نگاه مي‌کنم که بخشي از آنها را با++ C نوشته‌اند. مثلا زيرسيستم خودروهاي مريخ‌نشين ناسا، موتور جستجوي گوگل، سيستم رزرو هوايي آمادئوس به ذهنم مي‌رسد. اگر فقط بخواهم به کد نگاه کنم، به‌نظرم STL الکساندر استپانو يکي از مفيدترين، موثرترين و جالب‌ترين کدهاي++ C بود که تا به‌حال ديده‌ام.
آيا فکر نمي‌کني که++ GNU C بهتر است خطاهاي طولاني کمتري داشته باشد که دانشجويان نترسند؟
البته، اما واقعا تقصير کامپايلر گنو نيست. مشکل اصلي اينجاست که C++ استاندارد 98 هيچ راه ساده‌اي براي تعريف يک تمپليت پيش‌پاي برنامه‌نويس نمي‌گذارد. اين يکي از ضعف‌هاي اين زبان است، نه کامپايلر آن! و فقط با تغيير زبان مي‌شود آن را درست کرد که قرار است بخشي از C++0x (استاندارد جديد C++ باشد).
در آخر چيز ديگري هست که بخواهيد اضافه کنيد؟
- بله من فکر مي‌کنم که ما بايد هنر انتقال مفاهيم پايه‌اي++ C را هم داشته باشيم. بسيار سخت است که بخواهيم از نظر فني برنامه را توسعه بدهيم، اما به برنامه‌نويسان نگوييم که قابليت‌هاي فني آن چيست. از طرف ديگر، خود ويژگي‌هاي زباني کسل‌کننده‌اند. برنامه‌نويسان بايد خودشان با ترکيب ويژگي‌هاي پايه، به ويژگي جامع‌تري برسند و اين نيازمند زمان است.
اخيرا من از صنعت خارج شدم و به سمت دانشگاهي‌شدن پيش رفته‌ام و حالا مشکلات تحصيلي را از زواياي مختلف درک مي‌کنم. ما بايد سطح سواد توسعه‌دهندگان نرم‌افزارمان را بالا ببريم. طي سه سال گذشته، شيوه جديد تدريس براي سال اولي‌ها طراحي کردم و نتيجه آن کتابي شده است با عنوان برنامه‌نويسي، مفاهيم و تمارين با استفاده از++ C.

امير بهاالدين سبط‌الشيخ
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست



پاسخ با نقل قول
جای تبلیغات شما اینجا خالیست با ما تماس بگیرید




پاسخ


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 05:52 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


سایت دبیرستان وابسته به دانشگاه رازی کرمانشاه: کلیک کنید




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها