0

زبان برنامه نویسی d قسمت اول

 
jazereyearam
jazereyearam
کاربر نقره ای
تاریخ عضویت : آذر 1387 
تعداد پست ها : 1313
محل سکونت : زنجان

زبان برنامه نویسی d قسمت اول
سه شنبه 15 تیر 1389  11:03 PM


 

قسمت اول D زبان برنامه نویسی
یک زبان D . یک زبان برنامه سازی سیستمی و کاربردی ھمه منظوره است D ؟ چیست D چشم انداز
ھای سیستم API است اما توانایی نوشتن کدھای قدرتمند و تعامل مستقیم با C++ سطح بالاتر از
به خوبی برای نوشتن برنامه ھای متداول و برنام هھای بزرگ چند D. عامل و سخت افزار را حفظ می کند
به آسانی قابل آموختن است ، توانائیھای D . میلیون خطی با تیمھای برنامه نویسی مناسب است
زیادی را برای کمک به برنامه نویس فراھم می کندوبه خوبی برای فناوری پرتکاپوی بھینه سازی کامپایلر
نیست. ھمچنین دارای (interpreter) یک زبان اسکریپتی(متنی) یا دارای مفسر D . مناسب است
ماشین مجازی ، مذھب خاص یا فلسفه برتری جویی نمی باشد. بلکه یک زبان عملی است برای
برنامه نویسان حرفه ای که نیاز به انجام سریع و قابل اعتماد پروژه دارند و به کد قابل فھم آسان نیاز
اوج چند دھه تجربه به کارگیری کامپایلرھایی از D . دارند و مسئول عملکرد صحیح برنامه ھستند
از زبانھای دیگر D . زبانھای گوناگون و تلاش برای بنانھادن پروژه ھای بزرگ توسط آن زبا نھا است
واقعاً ؟ D الھام م یگیرد و آن را با تجربه و کاربرد به معنای واقعی درھم می آمیزد. چرا C++ مخصوصاً
C چرا؟ چه کسی زبان برنامه نویسی دیگری نیاز دارد؟ صنعت نرم افزار راه درازی از زمان اختراع زبان
افزوده شد. اما سازگاربا C تعداد زیادی مفاھیم جدید به زبان C++ تاکنون پیموده است. به وسیله
تلاشھای . C در آن ادامه یافت ، شامل سازگاری با تقریباً تمام ضعفھای طراحی اصلی زبان C گذشته
زیادی برای برطرف ساختن آن ضعفھا تاکنون صورت گرفته است اما در پی حفظ سازگاری با گذشته
دستخوش یک رشد پیوسته خصوصیات جدید شده اند. C++ و C خنثی شده است. در ضمن ھر دوی
این خصوصیات جدید باید به دقت و بدون نیاز به بازنویسی کد قدیمی به ساختار موجود خورانده شود.
استاندارد حدود ٧۵٠ C++ استاندارد تقریباً ۵٠٠ صفحه است و C ؛ نتیجه نھایی بسیار پیچیده است
این است که کامپایلرھای اندکی به طور مؤثر استاندارد را ++C صفحه ! حقیقت شلوغی کامپایلر
گرایش می یابند که در جزایر خاصی از زبان برنامه ++C دست نخورده به کار م یگیرند. برنامه نویسان
بسازند و در نظر م یگیرند کاربرد بسیار خوب بعضی خصوصیات را در حالی که از دیگر مجموع هھا
اجتناب م یکنند . با وجود اینکه کد از یک کامپایلر به کامپایلر دیگر قابل حمل است م یتواند مشکل
این است که ++C باشد که از برنامه نویسی به برنامه نویسی دیگر منتقل شود. توانایی بزرگ
می تواند تعداد زیادی سبکھای اصلی برنامه نویسی را پشتیبانی کنند . در کاربرد طولانی مدت سبکھای
دارای اشتراک و متناقض یک مانع و در نتیجه سبب تأخیر ھستند. ناامید کننده است که زبانی چنین
++C قدرتمند ، اعمال پایه ا ای مانند تغییر اندازه آرایه ھا و الحاق رشته ھا را انجام نم یدھد.البته
توانایی برنامه نویسی قدرتمند برای پیاده سازی آرایه ھای قابل تغییر اندازه و رشته ھا را فراھم
اما به ھرحال چنین خصوصیات بنیادی ، بایستی جزء قسمتھای . ( STL می کنند (مانند نوع بردار در
قابل گسترش ، طراحی مجدد و پیاده سازی به یک زبان ساده ، ++C زبان باشد. آیا قدرت و قابلیتھای
وارتگنال (متمایز و مستقل )و کاربردی می باشد؟ آیا تمامی آنھا می تواند داخل بسته ای قرار گیرد که
برای کامپایلرنویسان به آسانی قابل پیاد هسازی صحیح باشد و کامپایلرھا را قادر کند که به نحوی کارا ،
کدھای بھینه شده و پرتکاپو ایجاد کند؟ فناوری پیشرفته کامپایلر به نقط های رسیده است که
خصوصیاتی از زبان که به منظور جبران کردن فناوری ابتدایی کامپایلر وجود دارند ، می توانند حذف شوند.
باشد ، مثالی ظریفتر ماکروی پیش پردازنده در C در ”Register“ (مثالی ازاین نمونه می تواند واژه کلیدی
است) . ما م یتوانیم به فناوری پیشرفت هی بھینه سازی کامپایلر اعتماد کنیم تا دیگر به خصوصیاتی C
از زبان که برای دست یافتن به کیفیت کد قاب لقبول (جدای از کامپایلرھای ابتدائی) لازم است نیاز
درنظر دارد که ھزینه ھای گسترش نرم افزار را حداقل % ١٠ کاھش دھد توسط افزودن D . نداشته باشیم
خصوصیات بھینه سازی بالابرنده میزان سودمندی و تولید و ھمچنین با تعدیل کردن خصوصیات زبان ، به
منظره ++C/C طوری که اشکالات وقت گیر متداول از ابتدا حذف م یشوند. خصوصیات حفظ شده از
و انتقال کد به آن را آسانتر م یکند. گذر از D است . این موضوع آموختن ++C و C شبیه D کلی
باید طبیعی حس شود و برنامه نویس مجبور نخواھد بود که یک راه کاملاً جدید D به سوی ++C/C
به این معنا نیست که برنامه نویس به یک ماشین مجازی خاص D انجام کارھا را فراگیرد. استفاده از
وجود ندارد یک D ھیچ ماشین مجازی . Smalltalk زبان اجرا محدود شود مانند ماشین مجازی جاوا یا
به سیستم عامل متصل D . تولید می کند (Link) ھای قابل پیوند Objectfile کامپایلر سرراست است که
گنجانده D مستقیماً در برنامه نویسی ”MAKE“ ابزارھای آشنای متداول مانند . C می شود دقیقاً مانند
ابقا خواھد شد . ھمان املای جبری به کار ++C/C شده است. ١.منظره عمومی و احساس موجود در
C ھم به سبک D خواھد رفت و اغلب عبارات و فرمھای دستورات و طرح بندی عمومی. ٢.برنامه ھای
برای چه D . نه شیءگرا) یاترکیبی از ھردو قابل نوشتن است ) ++C (توابع و داده ھا) و ھم در سبک
کسانی مناسب است؟ ١.برنامه نویسانی که به طور مداوم از ابزارھای تجزیه و تحلیل کد استفاده
می کنند تا خطاھا را حتی قبل از کامپایل شدن ازبین ببرند. ٢.افرادی که عمل کامپایل را با بالاترین
سطح ھشدارھا انجام می دھند یا از کامپایلر می خواھند که ھشدارھا را به منزله خطا تلقی کند.
٣.مدیران برنامه نویسی که مجبورند به راھنماییھای سبک برنام هنویسی برای اجتناب از اشکالات
به خاطر ++C اعتماد کنند. ۴.افرادی که براین باورند که وعده ھای سبک شیءگرای C معمول
لذت م یبرند اما به خاطر ++C پیچیده گیھایش برآورده نمی شود. ۵.برنامه نویسانی که از قدرت بیانگر
نیاز به صرف تلاش زیاد برای اداره حافظه و یافتن اشکالات اشاره گرھا ، ناامید شد هاند. ۶.پروژه ھایی که
نیاز به تست ھمراه و تصدیق و تأیید دارند. ٧.برنامه نویسانی که فکر می کنند زبان باید دارای خصوصیات
کافی باشد . برای رفع نیاز دائمی اداره دستی و مستقیم اشاره گرھا. ٨.برنامه نویسان محاسبات
دارای خصوصیات زیادی برای پشتیبانی مستقیم اعمال مورد نیاز برنامه نویسان محاسبات D . عددی
NAN’S می باشد ، مانند پشتیبانی مستقیم از نوع داده مرکب و اعمال تعریف شده برای ب ینھایت و
از D نه) ٩.بخش تجزیه لغوی و تجزیه نحوی ++C ٩٩ اضافه شد ولی در C (این خصوصیات در استاندارد
یکدیگر در نھایت مجزا ھستند و ھمچنین از تجزی هگر معنایی. این بدین معناست که نوشتن ابزارھای
در سطح عالی آسان است بدون اینکه مجبور به ساختن یک کامپایلر D ساده برای اداره کردن کد منبع
ھا token کامل باشیم . ھمچنین بدین معناست که کد منبع ،برای کاربردھای خاص قابل انتقال به فرم
است.

 
تشکرات از این پست
دسترسی سریع به انجمن ها