ساخت پاوپوینت با هوش مصنوعی
کم تر از 5 دقیقه با هوش مصنوعی کافه پاورپوینت ، پاورپوینت بسازید
برای شروع ساخت پاورپوینت کلیک کنید
شما در این مسیر هستید :خانه / محصولات / Powerpoint / دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي (کد17044)
سفارش انجام پاورپوینت - بهترین کیفیت - کم ترین هزینه - تحویل در چند ساعت 09164470871 ای دی e2proir
شناسه محصول و کد فایل : 17044
نوع فایل : Powerpoint پاورپوینت
قابل ویرایش تمامی اسلاید ها دارای اسلاید مستر برای ویرایش سریع و راحت تر
امکان باز کردن فایل در موبایل - لپ تاپ - کامپیوتر و ...
با یک خرید میتوانید بین 342000 پاورپینت ، 25 پاورپوینت را به مدت 7 روز دانلود کنید
هزینه فایل : 105000 : 54000 تومان
فایل های مشابه شاید از این ها هم خوشتان بیاید !!!!
طراحي و پياده سازي زبانهاي برنامه سازي
کلیات
منبع اصلی درس:
Concepts in programming languages, John C. Mitchell, Cambridge university press.
کلیات(ادامه)
منابع فرعی:
Programming Languages: Design and Implementation, Pratt.
Essentials of Programming Languages, Friedman, The MIT Press.
کلیات(ادامه)
منابع فرعی:
Concepts of programming Languages, Sebesta, 10th edition, Pearson.
کلیات(ادامه)
سیستم نمره دهی:
تمرین: 2 نمره ( تا یک نمره اضافه به ازای تمرینهای قابل توجه و باارزش)
ارائه کلاسی: 1 نمره (اختیاری)
امتحان میان ترم: 5-7 نمره
امتحان پایان ترم: 9-11 نمره
سامانه اطلاع رسانی: سامیاد
ایمیل: [email protected]
زبان برنامه نویسی؟
هر نشانهگذاری برای توصیف الگوریتمها و ساختمان دادهها را میتوان یک زبان برنامهنویسی نامید.
نشانهگذاریهایی که پیاده سازی شدهاند: زبانهای برنامه نویسی مورد بحث در این درس را تشکیل میدهند.
هدف درس
ویژگیهای یک زبان برنامه نویسی
چرا زبانهاي برنامه سازي را مطالعه مي کنيم؟
براي بهبود توانايي خود در توسعه الگوريتمهاي کارآمد
استفاده بهينه از زبان برنامه نويسي موجود
مي توانيد با اصلاحات مفيد ساختارهاي برنامه نويسي آشنا شويد.
انتخاب بهترين زبان برنامه سازي
آموزش زبان جديد ساده مي شود.
طراحي زبان جديد ساده مي شود.
تاريخچه مختصري از زبانهاي برنامه سازي
توسعه زبانهاي اوليه
زبانهاي مبتني بر اعداد (اواخر دهه 1930 تا اوايل دهه 1940)
زبان Fortran
زبان IAL
زبان ALGOL
زبان SIMULA
زبان PASCAL
زبان C و C++
زبان BASIC
دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي
تاريخچه مختصري از زبانهاي برنامه سازي (ادامه)
تکامل معماري نرم افزار
دوران کامپيوترهاي بزرگ
محيط دسته اي
محيط محاوره اي
تاثير بر طراحي زبان
دوران کامپيوتر شخصي
کامپيوترهاي شخصي
محيطهاي سيستم تعبيه شده
تاثير بر طراحي زبان
تاريخچه مختصري از زبانهاي برنامه سازي (ادامه)
تکامل معماري نرم افزار(ادامه)
دوران شبکه بندي
محاسبات توزيعي
اينترنت
تاثير بر زبان برنامه سازي
تاريخچه مختصري از زبانهاي برنامه سازي (ادامه)
دامنه هاي کاربرد
کاربردها در دهه 1960
پردازش تجاري
محاسبات علمي
برنامه نويسي سيستم
کاربردهاي هوش مصنوعي
تاريخچه مختصري از زبانهاي برنامه سازي (ادامه)
دامنه هاي کاربرد(ادامه)
کاربردهاي قرن 21
پردازش تجاري
محاسبات علمي
برنامه نويسي سيستم
کاربردهاي هوش مصنوعي
انتشارات
فرآيند
کاربردهاي جديد (مانند شي گراهاو...)
Language Sequence
نقش زبانهاي برنامه سازي
اثرات
قابليتهاي کامپيوتر: کامپيوترهاي بزرگ ، کند و گرانقيمت که از لامپ خلا استفاده مي کردند به ريز کامپيوترها و سوپر کامپيوترها تبديل شدند.
موارد کاربرد: زمينه هاي کاربرد جديد ، طراحي زبانهاي جديد ، ارتقاء و بازبيني زبانهاي قديمي را منجر شد.
متدهاي برنامه نويسي: يافتن متدهاي خوب براي نوشتن برنامه هاي بزرگ و پيچيده و تغيير در محيط برنامه نويسي
دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي
امکان طراحی انتزاعهای مناسب توسط برنامهنویس با استفاده از ویژگیهای اولیه زبان
صفات يک زبان خوب(ادامه)
سهولت در بازرسي برنامه
سادگی ساختارهای نحوی و معنایی زبان موجب سهولت در بازرسی برنامه میشود.
محيط برنامه نويسي
وجود ویراستارهای خاص، امکانات نگهداری و اصلاح نسخههای مختلف.
قابليت حمل برنامه
عدم وابستگی به ماشین خاص.
هزينه استفاده
هزينه اجراي برنامه
هزينه ترجمه برنامه
هزينه نگهداري برنامه
نقش زبانهاي برنامه سازي(ادامه)
زبان خوب چگونه است؟(ادامه)
نحو و معناي زبان
نحو زبان برنامه سازي ظاهر آن زبان است.
مشخص شود دستورات ، اعلانها و ساير ساختارهاي زبان چگونه نوشته مي شوند
معناي زبان همان مفهومي است که به ساختارهاي نحوي زبان داده مي شود.
نقش زبانهاي برنامه سازي(ادامه)
مدلهاي زبان
زبانهاي دستوري: زبانهاي مبتني بر فرمان يا دستورگرا
زبانهاي تابعي : به جاي مشاهده تغيير حالت عملکرد برنامه دنبال مي شود.
زبانهاي قانونمند: شرايطي را بررسي مي کنند و درصورت برقرار بودن آنها فعاليتي را انجام مي دهند.
برنامه نويسي شي گرا: اشياي پيچيده به عنوان بسطي از اشياي ساده ساخته مي شوندو خواصي را از اشياي ساده به ارث مي برند.
نقش زبانهاي برنامه سازي(ادامه)
استاندارد سازي زبان
براي پي بردن به معناي دستورات
به مستندات زبان مراجعه شود.
برنامه را در کامپيوتر تايپ . اجرا کنيد
به استاندارد زبان مراجعه شود.
استاندارد خصوصي
توسط شرکت مالک زبان ارائه میشوند.
استاندارد عمومي :
بین پیادهسازیهای مختلف زبان یکپارچگی بوجود میآورد. (ANSI, IEEE, ….)
مسائل مهم استفاده موثر از استاندارد:
زمان سنجي
اطاعت و پيروي
کهنگي
نقش زبانهاي برنامه سازي(ادامه)
بين المللي شدن برنامه نويسي
ترتيب تلفيق: کاراکترها به چه ترتيبي بايد ظاهر شوند؟
ترتيب: موقعيت کاراکترهاي غير رومي
حالت کاراکترها: حروف کوچک و بزرگ در زبانهايي مثل ژاپني، عربي و يهودي
جهت پيمايش: اغلب زبانها از چپ به راست خوانده مي شوند.
فرمت تاريخ در يک کشور خاص
فرمت زمان در يک کشور خاص
مناطق زماني
سيستمهاي حروفي
علامت پول
محيط هاي برنامه نويسي
تاثير بر طراحي زبان
از دو جهت روی زبانها تأثیر گذاشتهاند:
ویژگیهای مربوط به کامپایل کردن مجزای زیربرنامهها و سایر بخشهای برنامه
تست و اشکال زدايي مانند : ويژگيهاي رديابي اجرا ، نقاط کنترلي ، ادعا
کامپایل مجزا
تست و اشکالزدایی
ویژگیهای ردیابی اجرا
نقاط کنترلی (breakpoint)
ادعا (assertion)
assert (x>0 and A=0) or (X=0 and A>B+10)
فصل دوماثرات معماري ماشين
عملکرد کامپيوتر
کامپيوتر مجموعه اي از الگوريتمها و ساختمان داده ها است که قابليت ذخيره و اجراي برنامه ها را دارد.
هر کامپيوتر از 6 جزء تشکيل شده است:
داده ها
اعمال اوليه
کنترل ترتيب
دستيابي به داده ها
مديريت حافظه
دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي
سخت افزار کامپيوتر (ادامه)
اعمال : کامپيوتر بايد مجموعه اي از اعمال اوليه توکار داشته باشد که متناظر با کدهاي عملياتي هستند که به صورت دستورات زبان ماشين مي باشند.
کنترل ترتيب: در حين اجراي برنامه دستور بعدي که بايد اجرا شود توسط محتويات ثبات آدرس برنامه مشخص مي گردد. اين ثبات حاوي آدرس دستور بعدي است.
عملکرد کامپيوتر(ادامه)
سخت افزار کامپيوتر (ادامه)
دستيابي به داده ها : علاوه بر کد عملياتي، هر دستور ماشين بايد عملوندهايي را مشخص کند که آن عمل از آنها استفاده مي کند. عملوند ممکن است در حافظه اصلي يا در ثبا ت باشد.
مديريت حافظه: تمام منابع کامپيوتر ( مثل حافظه ، پردازنده مرکزي ، دستگاههاي حافظه خارجي) تا آنجايي که ممکن است فعال باشند.
محيط عملياتي : متشکل از مجموعه اي از حافظه جانبي و دستگاههاي ورودي و خروجي است. مثل حافظه هاي سريع ، حافظه هايي با سرعت متوسط ، حافظه هاي کند و دستگاههاي ورودي و خروجي
عملکرد کامپيوتر (ادامه)
کامپيوترهاي ميان افزار
کامپيوتر ميان افزار توسط ريز برنامه اي شبيه سازي مي شود که بر روي کامپيوتر سخت افزار قابل ريزبرنامه نويسي(microprogramming) اجرا مي گردد. زبان ماشين آن مجموعه بسيار سطح پايين از ريز دستورات است که انتقال داده ها را بين حافظه اصلي و ثباتها و بين خود ثباتها از طريق پردازنده ها انجام مي دهد.
عملکرد کامپيوتر (ادامه)
مفسرها و معماريهاي مجازي
ترجمه (کامپايل کردن) : مترجم مي تواند طوري طراحي شود که برنامه اي به يک زبان سطح بالا را به برنامه اي در زبان ماشين ترجمه کند.
مترجم، هر پردازنده زباني است که برنامه اي را به يک زبان منبع ( که ممکن است سطح بالا يا پايين باشد ) به عنوان ورودي گرفته به برنامه اي در زبان مقصد تبديل مي کند که از نظر کارايي با هم يکسان هستند.
اسمبلر
کامپايلر
بارکننده يا ويراستار پيوند
پيش پردازنده يا پردازنده ماکرو
عملکرد کامپيوتر (ادامه)
مفسرها و معماريهاي مجازي (ادامه)
شبيه سازي نرم افزاري (تفسير نرم افزاري): به جاي ترجمه برنامه هاي سطح بالا به برنامه هاي زبان ماشين معادل مي توانيم از شبيه سازي استفاده کنيم که از طريق آن برنامه بر روي کامپيوتر ميزبان اجرا مي شود.
مقایسه مترجم و مفسر
تبدیل برنامه منبع به برنامه مقصد و سپس اجرای برنامه
رمزگشاییهای پیچیده تنها یک بار صورت میگیرد.
در روش ترجمه، اطلاعات برنامه منبع از بین میرود.
در این روش، حجم برنامه مقصد بزرگتر است.
عملکرد کامپيوتر (ادامه)
مفسرها و معماريهاي مجازي (ادامه)
زبانها به دو دسته هستند:
زبان هاي کامپايلري : C,C++ ، فرترن ، پاسکال و ادا . برنامه هاي آن قبل از شروع اجراي برنامه به زبان ماشين کامپيوتر واقعي ترجمه مي شوند به طوريکه شبيه سازي به مجموعه اي از روالهاي پشتيباني زمان اجرا محدود مي شود که اعمال اوليه موجود در زبان منبع را شبيه سازي مي کند که شباهت زيادي به زبان ماشين ندارد.
زبان هاي مفسري: ليسپ ، ام ال، پرل ، پست اسکريپت، پرولوپ و اسمالتاک معمولاً با مفسر نرم افزاري پياده سازي مي شود.
جاوا یک زبان تفسیری است که کامپایلر آن یک کد میانی به نام بایت کد را برای ماشین مجازی جاوا تولید میکند.
کامپيوترهاي مجازي و زمانهاي انقياد
روشهاي ساخت کامپيوتر:
از طريق سخت افزار
از طريق نرم افزار
از طريق ماشين مجازي
از طريق ترکيبي
کامپيوترهاي مجازي و زمانهاي انقياد (ادامه)
کامپيوترهاي مجازي و پياده سازي هاي زبان
دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي
انقیاد: نسبت دادن یک ویژگی یا صفت خاص به یک عنصر برنامه
زمان انقیاد: زمانی که فرایند انقیاد برای یک عنصر از برنامه رخ میدهد.
انقیاد در 4 زمان رخ میدهد:
زمان اجرا
زمان ترجمه
زمان پیادهسازی زبان
زمان تعریف زبان.
انقیاد و زمانهاي انقياد
زمان اجرا
در ورود به زير برنامه يا بلوک
در نقطه خاصي از اجراي برنامه
زمان ترجمه (زمان کامپايل)
انقياد توسط برنامه نويس انتخاب مي شود
انقياد توسط مترجم انجام مي شود
انقيادهايي که توسط بارکننده صورت مي گيرد.
زمان پياده سازي زبان
جزئیات مربوط به نمایش دادهها و اعمال محاسباتی
زمان تعريف زبان
اغلب ساختارهای زبان، در زمان تعریف آن زبان مشخص میشود؛ مثل: شکل مختلف دستورات، ساختمان دادهها و ساختارهای برنامه.
انقياد و زمان انقياد (ادامه)
برای دستور زیر:
x = x + 10 ;
در برنامه اي که به زبان L نوشته مي شود ،انقيادها و زمانهاي انقياد زير بحث مي شود:
مجموعه اي از انواع ممکن براي متغير X: زمان تعریف زبان (انواع اولیه) و زمان ترجمه (انواع انتزاعی)
نوع متغير: زمان ترجمه یا اجرا.
مجموعه اي از مقادير ممکن براي X: زمان پیادهسازی زبان.
مقدار متغير X: زمان اجرا.
نمايش مقدار ثابت 10: زمان تعریف زبان (نمایش دهدهی) یا زمان پیادهسازی زبان (نمایش باینری).
خواص عملگر +: زمان تعریف زبان (نوع نمایش و انواع عملیات)، پیادهسازی زبان (هریک از انواع عمل جمع)، ترجمه (نوع عمل مناسب و اجرا (مقدار حاصل).
انقياد و زمان انقياد (ادامه)
زباني مثل فرترن که در آن انقياد در زمان ترجمه انجام مي شود زبانهايي با انقياد زودرس و زباني با انقياد ديررس مثل ام ال اغلب انقيادها را در زمان اجرا انجام مي دهد.
فصل پنجم (Pratt.)فصل ششم (John Mitchel)انواع دادهای(Types)
خواص انواع و اشياء
هر برنامه صرفنظر از نوع زبان مجموعه اي از عمليات است که بايد به ترتيب خاصي بر روي داده ها اجرا شوند.
تفاوتهاي بين زبانها ناشي از انواع دادهها، عمليات موجود و مکانيزم کنترل ترتيب اجراي عمليات بر روي داده ها است.
خواص انواع و اشياء (ادامه)
اشياي داده ، متغيرها و ثوابت
از اصطلاح شي داده براي گروهبندي زمان اجراي يک يا چند قطعه از داده ها در کامپيوتر مجازي استفاده مي کنيم.
بعضي اشيا در حين اجراي برنامه توسط برنامه نويس تعريف شده اند.
متغیرها، ثوابت، فایل ها و ...
بعضي از اشياي داده توسط سيستم تعريف مي شوند.
پشته زمان اجرا، رکورد فعالیت، بافرهای فایل، لیست های فضای آزاد.
اجزاي تعريف شده توسط سيستم در حين اجراي برنامه در صورت نياز به طور خودکار ايجاد مي شوند.
خواص انواع و اشياء (ادامه)
اشياي داده ، متغيرها و ثوابت (ادامه)
شي داده ظرفي براي مقادير داده است. یعنی محلی است که مقادیر داده در آنجا ذخیره و بازیابی می شوند.
شیئ داده توسط مجموعه ای از صفات مشخص میشود که مهمترین آنها، نوع داده است.
صفات، تعداد و نوع مقادیری را تعیین میکنند که شیئ داده ممکن است حاوی آنها باشد.
صفات، سازمان منطقی مقادیر آن شیئ داه را نیز تعیین میکنند.
خواص انواع و اشياء (ادامه)
شیئ داده و مقدار داده!!:
شیئ داده معمولاً به وسیله محلی در حافظه کامپیوتر نمایش داده میشود.
مقدار داده به صورت الگویی از بیتهاست.
مقدار داده ممکن است يک عدد، کاراکتر يا اشاره گري به شي داده ديگر باشد.
خواص انواع و اشياء (ادامه)
اگر شي داده حاوي مقداري باشد که هميشه به عنوان يک واحد دستکاري شود آن را شیي داده اوليه گويند.
عدد صحیح، عدد اعشاری، ...
اگر شي داده مجموعه اي از ساير اشياي داده باشد ساختمان ناميده مي شود.
لیست، رکورد، آرایه، ...
خواص انواع و اشياء (ادامه)
اشياي داده ، متغيرها و ثوابت (ادامه)
یک شیئ داده در طول عمر خود انقیادهای گوناگونی را میپذیرد.
مهم ترین صفات و انقیاد برای شیئ داده عبارتند از:
نوع
محل: توسط روالهای مدیریت حافظه
مقدار: نتیجه اجرای یک عمل انتساب است.
نام: معمولاً توسط اعلان تعیین میشود و توسط فراخوانی زیربرنامه و برگشت از آن اصلاح میشود.
اجزاء: انقیاد یک شیئ داده به شیئهای دادهای که به عنوان اجزای آن هستند، توسط مقدار اشارهگر نمایش داده میشود.
خواص انواع و اشياء (ادامه)
اشياي داده ، متغيرها و ثوابت (ادامه)
متغيرها و ثوابت
دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي
مثال
const int MAX=30;
int N;
N=27;
N=N+MAX;
سؤال:
تفاوت const int MAX با #defin MAX 30 در چیست؟
خواص انواع و اشياء (ادامه)
انواع داده
نوع داده طبقه اي از شياي داده به همراه مجموعه اي از عمليات براي ايجاد و دستکاري آنها است.
زبان برنامه سازي الزاماً با انواع داده هايي مثل دسته از آرايه ها ، مقادير صحيح ، يا فايلها و عمليات مربوط به دستکاري آرايه ها ، مقادير صحيح يا فايلها سروکار دارد.
هر زبان مجموعه ای از انواع داده اولیه دارد که در زبان ساخته میشوند.
علاوه بر این ممکن است زبان اجازه دهد برنامه نویس نوعهای دادهای جدیدی را تعریف کند.
خواص انواع و اشياء (ادامه)
انواع داده (ادامه)
عناصر اصلي مشخصات يک نوع داده:
صفاتي که اشیاء داده از آن نوع را متمایز میکند.
مقاديري که اشیاء داده از آن نوع میتوانند داشته باشند.
عملياتي که روشهای دستکاری آن نوع اشیاء داده را تعریف میکند.
خواص انواع و اشياء (ادامه)
انواع داده (ادامه)
عناصر اصلي پیاده سازی يک نوع داده:
نمایش حافظهای که برای نشان دادن اشیاء داده از آن نوع (در زمان اجرا) به کار میرود.
پیاده سازی عملیات: یعنی شیوه ای که عملیات تعریف شده برای نوع داده، برحسب الگوریتمها یا رویههایی تعریف میشوند که نمایش حافظهی آن اشیاء داده را دستکاری میکنند.
خواص انواع و اشياء (ادامه)
انواع داده (ادامه)
پياده سازي انواع داده اوليه
نمايش حافظه: حافظه مربوط به انواع داده اوليه تحت تاثير کامپيوتري است که برنامه را اجرا مي کند.
با صفات اشياي داده اوليه به طور مشابه برخورد مي شود:
براي کارايي بعضي از زبانها طوري طراحي شدند که صفات داده ها توسط کامپايلر تعيين شوند. خود صفات در نمایش حافظه زمان اجرا ذخیره نمیشود.
C، پاسکال و فرترن
صفات شي داده ممکن است در زمان اجرا دريک توصيف گر و به عنوان بخشي از شي داده ذخيره شود.
Lisp و Prolog
خواص انواع و اشياء (ادامه)
انواع داده (ادامه)
پياده سازي انواع داده اوليه (ادامه)
پياده سازي عمليات: هر عملياتي که براي نوعي از اشياي داده تعريف شد ممکن است به يکي از سه روش زير پياده سازي شود:
به صورت عمليات سخت افزاري
به صورت زير برنامه رويه يا تابع
به صورت دستوراتي در داخل برنامه نوشته شوند.
خواص انواع و اشياء (ادامه)
اعلانها
دستوري از برنامه است که نام و نوع اشياي داده را که در حين اجراي برنامه مورد نياز هستند مشخص مي کند.
اعلان صریح
اشيايي که در طول عمرشان به اسامي مانند A,B مقيد مي شوند اعلان صريح گويند.
اعلان ضمنی
در بعضي از زبانها اعلان ضمني يا اعلان پيش فرض وجود دارد.
نام INDEX برای متغیری در فرترن، نوع صحیح را برای متغیر درنظر میگیرد.
انقیادهای دیگری در دستور اعلان ممکن است صورت پذیرد.
نام شیء داده یا محل یک شیئ داده به عنوان جزئی از شیئ داده بزرگتر
خواص انواع و اشياء (ادامه)
اعلانها
اعلان عمليات
اعلانها مي توانند اطلاعاتي راجع به عمليات را براي مترجم زبان فراهم کنند.
در حین ترجمه عملیات نیار به امضای هر عمل است.
اهداف اعلان:
انتخاب نمايش حافظه
مدريت حافظه :
تخصیص حافظه به متغیرهای اعلان شده در یک زیربرنامه درون یک بلوک حافظه
تخصیص حافظه heap به اشیاء داده پویا
عمليات چندريختي
کنترل نوع : مهم ترین هدف اعلان، از دیدگاه برنامه نویس
خواص انواع و اشياء (ادامه)
کنترل نوع و تبديل نوع
منظور از کنترل نوع اين است که هر عملياتي که در برنامه انجام مي گيرد تعداد و نوع آرگومانهاي آن درست باشد.
کنترل نوع ممکن است در زمان اجرا صورت گيرد(کنترل نوع پويا)
کنترل نوع ممکن است در زمان ترجمه صورت گيرد(کنترل نوع ايستا)
خواص انواع و اشياء (ادامه)
کنترل نوع و تبديل نوع (ادامه)
معايب کنترل نوع پويا:
اشکالزدايي برنامه و حذف تمام خطاهاي نوع آرگومان مشکل است.
در کنترل نوع پويا لازم است اطلاعات مربوط به نوع در زمان اجراي برنامه نگهداري شوند.
کنترل نوع پويا بايد به صورت نرم افزاري پياده سازي شود.
خواص انواع و اشياء (ادامه)
برای کنترل نوع ایستا اطلاعات زیر نیاز است:
برای هرعمل، تعداد، ترتیب و نوع دادههای آرگومان و نتایج آن.
برای هر متغیر، نام نوع شیئ داده.
خواص انواع و اشياء (ادامه)
کنترل نوع و تبديل نوع (ادامه)
در کنترل نوع ایستا، تمام مسیرهای اجرایی تست شده و در نتیجه نیاز نیست تستی برای خطاهای نوع انجام گیرد.
در کنترل نوع ایستا، نیازی به برچسب نوع نیست، در نتیجه کنترل نوع پویا نیاز نیست و در حافظه و زمان صرقهجویی میشود.
برخی ساختارهای زبان را نمیتوان برایشان کنترل نوع ایستا انجام داد.
راه حل:
کنترل نوع پويا
عمليات کنترل نشوند.
خواص انواع و اشياء (ادامه)
کنترل نوع و تبديل نوع (ادامه)
نوع قوی
اگر تمام خطاهای نوع به طور ایستا برطرف شود، زبان از نظر نوع قوی خواهد بود.
استنتاج نوع:
تعیین نوع اشیاء داده فاقد نوع از روی سایر انواع تعریف شده...
در زبان ML بکار میرفت.
این روش در Type Checking بکار میرود..... برای تعیین خطاهای نوع
Fun area(length,width):int=length*width;
امنیت نوع
یک زبان از نظر نوع امن است، اگر هیچ برنامهای تمایز نوعها را در آن زبان نقض نکند.
خواص انواع و اشياء (ادامه)
کنترل نوع و تبديل نوع (ادامه)
تبديل نوع و تبديل نوع ضمني
عدم تطابق نوع ممکن است به عنوان خطا اعلان شود و فعاليت مناسبي صورت گيرد.
ممکن است تبديل نوع ضمني صورت گيرد تا نوع آرگومان واقعي به نوع درستي تغيير کند.
تبديل نوع و تبديل نوع ضمني( ادامه)
اغلب زبانها تبديل نوع را به دو صورت انجام مي دهند:
به صورت مجموعه اي از توابع پيش ساخته که توسط برنامه نويس فراخواني مي شود تا بر تبديل نوع اثر بگذارند.
همانند round در پاسکال و (int)x در زبان C
تبدیل نوع ضمنی: در مواردي که عدم تطابق نوع صورت گرفت تبديل ضمني به طور خودکار فراخواني مي شود.
برخلاف زبان C، پاسکال تبدیل نوع ضمنی ندارد.
تبديل نوع و تبديل نوع ضمني( ادامه)
تبدیل نوع ضمنی به دو صورت امکانپذیر است:
تبدیل نوع گسترش دهنده
تبدیل نوع short به long
تبدیل نوع محدودکننده
تبدیل نوع double به صحیح
همیشه امکانپذیر نیست.
در زمان اجرا امکان تبدیل ضمنی بررسی میشود.
خواص انواع و اشياء (ادامه)
انتساب و مقدار دهي اوليه
انتساب عمليات اصلي براي تغيير انقياد يک مقدار به يک شي داده است.
اين تغيير اثر جنبي عمليات است.
در زبانهایی مثل C، lisp (نسخه های جدید)انتساب مقداری را برمیگرداند. اما در Pascal مقداری برنمیگرداند.
خواص انواع و اشياء (ادامه)
انتساب و مقدار دهي اوليه (ادامه)
تعريف عمليات انتساب به صورت زير :
مقدار چپ اولين عبارت عملوند را محاسبه کن
مقدار راست دومين عبارت عملوند را محاسبه کن
مقدار راست محاسبه شده را به مقدار چپ عملوند اول نسبت بده
مقدار راست محاسبه شده را به عنوان نتيجه عمليات برگردان
خواص انواع و اشياء (ادامه)
انتساب و مقدار دهي اوليه (ادامه)
تساوي و هم ارزي: انتساب دادن مقدار يا عبارت به متغير!!!!!
در زبان پرولوگ عملگر is به معنای نسبت دادن مقدار همارز است و = به معنای انتساب الگو است.
X is 2+3, X=5.
X =2+3, x=5. ××
مقدار دهي اوليه: شیئ داده فاقد مقدار اولیه يک شي داده است که ايجاد شده ولي هنوز مقداري به آن داده نشده است.
تعریف شیئ داده تنها به معنای تخصیص بلوک حافظه است. در حافظه هر الگوی بیتی ممکن است وجود داشته باشد.
برای مقید کردن یک مقدار معتبر به شیئ داده، نیاز به انتساب صریح است.
APL: هر شیئ داده که ایجاد شد، باید مقدار اولیه برایش تعیین شود.
انواع داده اسکالر
اشياي اسکالر از معماري سخت افزار کامپيوتر پيروي مي کنند.
اعداد صحیح، اعشاری، ممیز شناور، کاراکتر
دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي
انتساب
عمليات بيتي
پياده سازي
انواع داده اسکالر(ادامه)
انواع داده عددي
انواع صحيح :
پياده سازي:
فرترن،C
Lisp
اگر توصیفگر به صورت سخت افزاری پیاده سازی شود.
انواع داده اسکالر(ادامه)
انواع داده عددي (ادامه)
زير بازه ها:
مشخصات : زير بازه اي از نوع داده صحيح زير نوعي از نوع داده صحيح است و شامل دنباله اي از مقادير صحيح و بازه محدود است.
Pascal: A:1..10
Ada: A: integer range 1..10
پياده سازي: انواع زيربازه دو اثر مهم در پياده سازي دارد:
نياز به حافظه کمتر:
اغلب با کمترین تعداد بیتهایی نمایش داده میشوند که سخت افزار عملیات محاسباتی را برای آنها انجام میدهد.
کنترل نوع بهتر
Month:1..12
Month :=0
Month:= Month+1;
انواع داده اسکالر(ادامه)
انواع داده عددي (ادامه)
اعداد حقيقي مميز شناور
مشخصات : معمولاً با صفت نوع داده مثل real در فرترن يا float در C مشخص مي شود.
عملیات محاسباتی، رابطهای و انتساب برای اعداد حقیقی نیز وجود دارد.
عملیات بولی محدود است: زیرا به دلیل قواعد گرد کردن، کمتر اتفاق میافتد دو عدد اعشاری باهم برابر باشند.
پياده سازي: نمايشهاي حافظه براي انواع آن معمولاً به سخت افزار بستگي دارد که در آن مميز حافظه به دو بخش مانتيس (ارقام با ارزش عدد) و توان تقسيم مي شود.
N=m*2k
M بین صفر و یک و k یک عدد صحیح
انواع داده اسکالر(ادامه)
انواع داده عددي (ادامه)
اعداد حقيقي مميز ثابت
مشخصات : اغلب سخت افزارها شامل اشيا داده صحيح و مميز شناور هستند. اما در بعضی موارد نیاز به اعداد گویا است...
بصورت صحیح و اعشاری نمی توان نمایش داد!!!
به صورت دنباله ای از ارقام با طول ثابت نمایش داده می شوند که نقطه اعشار در یک نقطه خاص بین دو رقم قرار دارد.
Cobol: x PICTURE 999V99
Pl/I: DECLARE X FIXED DECIMAL (10,3);
این اعداد به صورت صحیح ذخیره می شوند که نقطه اعشار به عنوان صفت شیئ داده است.
VALUE (X)= R-VALUE(X)* 10-SF
پياده سازي: ممکن است مستقيماً توسط سخت افزار پشتيباني شود يا به صورت نرم افزاري شبيه سازي گردد.
انواع داده اسکالر(ادامه)
انواع داده عددي (ادامه)
ساير انواع داده عددي
اعداد موهومي: عدد موهومي متشکل از يک جفت از اعداد است که يکي از آنها بخش حقيقي و ديگري بخش موهومي را نشان مي دهد.
اعداد گويا: عدد گويا خارج قسمت دو مقدار صحيح است.
انواع داده اسکالر(ادامه)
نوع شمارشي
مشخصات:
ليست مرتبي از مقادير مجزا است.
برنامه نويس اسامي ليترالهايي را که بايد براي مقادير مورد استفاده قرار گيرند و همچنين ترتيب آنها را با استفاده از اعلاني مانند زير در C مشخص مي کند.
enum class {fresh, soph,junior, senior};
دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي
مشخصات : نوع داده کاراکتري اشياي داده را به وجود مي آورد که مقدار آنها يک کاراکتر است.
پياده سازي: مقادير داده هاي کاراکتري هميشه توسط سخت افزار و سيستم عامل پشتيباني مي شوند.
انواع داده مرکب
رشته هاي کاراکتري
مشخصات و نحو
با رشته هاي کاراکتري حداقل به سه روش رفتار مي شود:
طول ثابت: PASCAL
lastname: packed array [1..20] of char;
طول متغير با حد بالا: طول حداکثری برای رشته در زبان تعریف میشود. اگر در حین اجرا اندازه رشته کوچکتر بود، فضاهای اضافی با فضای خالی پر میشود و در صورت بزرگتر بودن از حد بالا، کاراکترهای اضافی حذف میشوند.
طول نامحدود: C.
در زبان جاوا، رشته های کاراکتری، اشیاءای از کلاس String هستند.
انواع داده مرکب(ادامه)
رشته هاي کاراکتري (ادامه)
مشخصات و نحو (ادامه)
عمليات گوناگوني بر روي رشته ها انجام پذير است که بعضي از آنها عبارتند از:
الحاق
عمليات رابطه اي در رشته ها
انتخاب زير رشته با استفاده از انديس
فرمت بندي ورودي – خروجي
انتخاب زير رشته با تطابق الگو
.
انواع داده مرکب(ادامه)
رشته هاي کاراکتري (ادامه)
پياده سازي
براي رشته اي با طول ثابت : نمايش حافظه همان شکلي است که براي بردار فشرده اي از کاراکترها استفاده شد.
براي رشته طول متغير با حد معين : نمايش حافظه از توصيفگري استفاده مي کند حه حاوي حداکثر طول و طول فعلي رشته ذخيره شده در شي داده است.
براي رشته هاي نامحدود : مي توان از نمايش حافظه پيوندي اشيا داده طول ثابت استفاده کرد یا میتوان از آریهای پیوسته از کاراکتر استفاده کرد.
در زبان C، رشته آرایه ای از کاراکترهاست که به کاراکتر تهی ‘’ ختم میشود.
انواع داده مرکب(ادامه)
اشاره گرها و اشياي داده برنامه نويس
زبان بايد ويژگيهاي زير را داشته باشد:
نوع داده اوليه اشاره گر: شیئ داده اشارهگر شامل آدرس شیئ داده دیگری است.
عمل ايجاد کردن برای اشیاء داده طول ثابت مثل آرایهها، رکوردها و انواع اولیه.
New در C++ و پاسکال و malloc در C.
عمليات دستيابي به محتويات:موجب میشود تا محتویات جایی که اشارهگر به آن اشاره میکند دستیابی شود.
انواع داده مرکب(ادامه)
اشاره گرها و اشياي داده برنامه نويس (ادامه)
مشخصات: نوع داده اشاره گر دسته از اشياي داده را تعريف مي کند که مقادير آنها آدرسهاي اشياي ديگري اند
اشاره گر ها ممکن است فقط به يک نوع شي داده مراجعه کنند.
در زبانهایی که اعلان نوع و کنترل نوع ایستا دارند استفاده میشود: C، pascal و Ada
اشاره گرها ممکن است به هر نوع شي داده مراجعه کنند.
در زبانهای با کنترل نوع پویا انجام میشود: SMALTAK
انواع داده مرکب(ادامه)
اشاره گرها و اشياي داده برنامه نويس (ادامه)
عملیات ایجاد کردن:
در زمان کامپایل تنها به p حافظه اختصاص داده میشود و در زمان اجرا فضای لازم برای شیئ دادهای که اشارهگر به آن اشاره میکند، تخصیص داده میشود.
List * P;
عملیات انتخاب:
عملگر * در C: مقدار راست متغیر اشارهگر را گرفته و از آن مقدار چپ میسازد.
عملگر & در C: مقدار چپ متغیر را برمیگرداند.
انواع داده مرکب(ادامه)
اشاره گرها و اشياي داده برنامه نويس (ادامه)
پياده سازي: شي داده اشاره گر به صورت محلي از حافظه نمايش داده مي شود که شامل آدرس محل ديگري از حافظه است.
دو نمايش حافظه براي مقادير اشاره گر استفاده مي شود:
آدرس مطلق
آدرس نسبي
انواع داده مرکب(ادامه)
اشاره گرها و اشياي داده برنامه نويس (ادامه)
آدرس مطلق:
تخصیص حافظه در ناحیه هرم صورت میگیرد.
انتخاب از طریق /آدرسهای مطلق کارآمد است؛ زیرا مقدار اشارهگر بوسیله عملیات سخت افزاری مربوط به دستیابی به حافظه سخت افزاری، مستقیماً به شیئ داده دسترسی دارد.
مدیریت حافظه دشوار است: زیرا شیئ داده در حافظه جابجا نمی شود مگر اینکه مقدار اشارهگر تغییر کند. و نیز بازیابی حافظه از زبالهها نیز دشوار خواهد بود.
آدرس نسبي
هزینه انتخاب دشوار است؛ زیرا آدرس آفست به آدرس پایه اضافه میشود.
امتیاز: بلوک حافظه را میتوان در هر زمان به نقاط دلخواهی از حافظه انتقال داد.
بازیابی حافظه تخصیصی به زیربرنامه بسیار راحت است.
انواع داده مرکب(ادامه)
اشاره گرها و اشياي داده برنامه نويس (ادامه)
مسئله مهم در مورد اشارهگرها: تخصیص حافظه!!!!
نیاز به مدیریت حافظه زمان اجرا
ارائه راهکار برای دو معزل زباله و ارجاع معلق
int * p;
int * q;
q= new int ();
p=q;
free (q);
ارجاع معلق
فصل ششمبسته بندي
مقدمه
تمام فعاليتهاي طراحي را مي توان به عنوان طراحي مشخصات نوع داده انتزاعي در نظر گرفت:
طراحي صفات
طراحي عمليات موردنياز
چهارروش تعریف انواع داده جديد و عملياتي بر روي آنها:
ساختمان داده
زيربرنامه ها
اعلان نوع
وراثت
ساختمان داده ها
اشياي داده ساختاري و انواع داده
شي داده اي که مرکب از اشياي داده ديگري است ساختمان داده نام دارد.
ساختمان داده ها (ادامه)
مشخصات انواع ساختمان داده
صفات اصلي مشخص کننده ساختمان داده:
تعداد عناصر
نوع هر عنصر
دانلود پاورپوینت آشنایی با پياده سازي زبانهاي برنامه سازي
پياده سازي انواع ساختمان داده ها
دو موضوع ديگر که انتخاب نمايش حافظه را تحت تاثير قرار مي دهد:
انتخاب کارآمد عنصر از ساختمان
مديرحافظه کارآمد براي پياده سازي زبان
ساختمان داده ها (ادامه)
پياده سازي انواع ساختمان داده ها (ادامه)
نمايش هاي حافظه شامل:
حافظه اي براي عناصر ساختمان داده
توصيفگر اختياري آنها
دو نمايش اصلي:
نمايش ترتيبي
نمايش پيوندي
ساختمان داده ها (ادامه)
پياده سازي انواع ساختمان داده ها (ادامه)
پياده سازي عمليات ساختمان داده ها
انتخاب عناصر ساختمان داده مهمترين مسئله در پياده سازي آن است
کارآمد بودن عمليات انتخاب تصادفي و انتخاب ترتيبي ضروري است.
ساختمان داده ها (ادامه)
پياده سازي انواع ساختمان داده ها (ادامه)
پياده سازي عمليات ساختمان داده ها (ادامه)
نمايش تصادفی: در انتخاب تصادفي يک آدرس پايه – آفست بايد با استفاده از فرمول دستيابي محاسبه شود.
در ساختار همگن انتخاب دنباله اي از عناصر مي تواند به صورت زير انجام شود:
براي دستيابي به اولين عنصر دنباله از محاسبه آدرس پايه – آفست استفاده کنيد.
براي دستيابي به عنصر بعدي دنباله اندازه عنصر فعلي را به موقعيت عنصر فعلي اضافه کنيد.
ساختمان داده ها (ادامه)
پياده سازي انواع ساختمان داده ها (ادامه)
پياده سازي عمليات ساختمان داده ها (ادامه)
نمايش پيوندي: براي انتخاب بايد زنجيره اي از اشاره گرها را از اولين بلوک موجود در ساختار تا عنصر موردنظر دنبال کرد.
براي انتخاب دنباله اي از مولفه ها بايد اولين عنصر را انتخاب و سپس اشاره گر پيوندي را تا عنصر مورد نظر دنبال کرد.
ساختمان داده ها (ادامه)
پياده سازي انواع ساختمان داده ها (ادامه)
مديريت حافظه و ساختمان داده ها
طول عمر هر شي داده با انقياد شي به محلي از حافظه شروع مي شود.
به علت تاثير متقابل بين طول عمر شي داده و مسيرهاي دستيابي دو مسئله مهم در مديريت حافظه به وجود مي آيد:
زباله
ارجاعهاي معلق
ساختمان داده ها (ادامه)
بردارها و آرايه ها
متداولترين ساختمان داده ها در زبانهاي برنامه سازي اند.
بردار ساختمان مرکب از تعداد ثابتي از عناصر همنوع است که به صورت يک دنباله خطي سازمان دهي شده است.
براي دستيابي به عناصر بردار از انديس استفاده مي شود.
بردارها و آرايه ها (ادامه)
صفات بردارها:
تعداد عناصر
نوع هر عنصر
انديس براي انتخاب هر عنصر
بردارها و آرايه ها (ادامه)
عمليات بر روي بردارها:
عملياتي که عنصري را از برداري انتخاب مي کند انديس گذاري نام دارد که مقدار چپ شیئ داده را برمیگرداند.
براي ذخيره صفات بردار مي توان از توصيفگر استفاده کرد.
اگر نیاز به توصیفگر در زمان اجرا باشد، حد بالا و پایین آرایه صفاتی هستند که معمولاً ذخیره میشوند. سایر صفات در زمان ترجمه و برای کنترل نوع لازمند.
بردارها و آرايه ها (ادامه)
فرمول دستیابی به عنصری از برداز:
lvalue (A[I]) = α + (I-LB) × E
تو پروژه یکی از بزرگ ترین مراجع دانلود فایل های نقشه کشی در کشو در سال 1394 تاسیس گردیده در سال 1396 کافه پاورپوینت زیر مجموعه تو پروژه فعالیت خود را در زمینه پاورپوینت شروع کرده و تا به امروز به کمک کاربران و همکاران هزاران پاورپوینت برای دانلود قرار داده شده
با افتخار کافه پاورپوینت ساخته شده با وب اسمبلی