جزوه تایپ شده برنامه نویسی شی گرا
علمی کاربردی دانلود پایتون دانلود سی شارپ مجید باقری استاد محمود هزاری دانشگاه پیام نور جواد وحیدی امد همایون موتمنی امد
: § § [4] [5] [6] [7] «» ً – [8]
ً [9]
[10] ً () یک شکل در حافظه رایانه ذخیره و دستکاری شدند . [11]
زبان ماشین
کد ماشین زبان برنامه های اولیه بود که در مجموعه دستورات ماشین خاص نوشته می شد، اغلب به صورت دودویی . زبانهای اسمبلی به زودی توسعه یافتند که به برنامهنویس اجازه میداد دستورالعملها را در قالب متنی (مثلاً ADD X، TOTAL) با اختصارات برای هر کد عملیات و نامهای معنیدار برای تعیین آدرسها مشخص کند. با این حال، از آنجایی که یک زبان اسمبلی کمی بیشتر از یک نماد متفاوت برای یک زبان ماشین است، دو ماشین با مجموعههای دستورالعمل متفاوت نیز زبانهای اسمبلی متفاوتی دارند.
کنترل پنل سیمی برای ماشین حسابداری IBM 402 . سیمها جریانهای پالس را از کارتخوان به شمارندهها و دیگر منطقهای داخلی و در نهایت به چاپگر متصل میکنند.
زبان های کامپایلر
همچنین ببینید: کامپایلر
زبانهای سطح بالا ، فرآیند توسعه یک برنامه را سادهتر و قابل فهمتر کرده و کمتر به سختافزار زیرین محدود میشوند . اولین ابزار مرتبط با کامپایلر، سیستم A-0 ، در سال 1952 [12] توسط گریس هاپر ، که اصطلاح “کامپایلر” را نیز ابداع کرد، توسعه یافت. [13] [14] FORTRAN ، اولین زبان پرکاربرد سطح بالا که دارای یک پیاده سازی کاربردی بود، در سال 1957 منتشر شد، [15] و بسیاری از زبان های دیگر به زودی توسعه یافتند – به ویژه، COBOL با هدف پردازش داده های تجاری، و Lisp . برای تحقیقات کامپیوتری
این زبانهای کامپایلشده به برنامهنویس اجازه میدهند تا برنامههایی را با عباراتی بنویسد که از نظر نحوی غنیتر هستند، و توانایی بیشتری در انتزاع کد دارند، و هدف قرار دادن مجموعههای دستورات ماشینی مختلف از طریق اعلانهای کامپایل و اکتشافی را آسانتر میکنند. جزوه برنامه نویسی شی گرا از قدرت رایانهها برای آسانتر کردن برنامهنویسی استفاده کردند [15] با اجازه دادن به برنامهنویسان برای تعیین محاسبات با وارد کردن یک فرمول با استفاده از نماد infix

برنامه نویسی شی گرا
ورودی کد منبع
همچنین ببینید: برنامه نویسی کامپیوتر در عصر کارت پانچ
برنامه ها بیشتر با استفاده از کارت های پانچ یا نوار کاغذی وارد می شدند . در اواخر دهه 1960، دستگاههای ذخیرهسازی داده و پایانههای رایانه به اندازهای ارزان شدند که میتوان برنامهها را با تایپ مستقیم در رایانه ایجاد کرد. ویرایشگرهای متنی نیز توسعه یافتند که اجازه میدادند تغییرات و اصلاحات بسیار راحتتر از کارتهای پانچ انجام شود.
برنامه نویسی مدرن
الزامات کیفیت
مقاله اصلی: کیفیت نرم افزار
رویکرد توسعه هر چه باشد، برنامه نهایی باید برخی از ویژگی های اساسی را برآورده کند. خواص زیر از مهمترین آنها است
دانلود جزوه برنامه نویسی شی گرا رایگان خلاصه کتاب pdf
قابلیت اطمینان : هر چند وقت یکبار نتایج یک برنامه صحیح است. این بستگی به صحت مفهومی الگوریتمها و به حداقل رساندن اشتباهات برنامهنویسی دارد، مانند اشتباهات در مدیریت منابع (مثلاً سرریزهای بافر و شرایط مسابقه ) و خطاهای منطقی (مانند تقسیم بر صفر یا خطاهای یک به یک ).
استحکام : برنامه چقدر خوب مشکلات ناشی از خطاها (نه باگ) را پیش بینی می کند. این شامل موقعیت هایی مانند داده های نادرست، نامناسب یا خراب، در دسترس نبودن منابع مورد نیاز مانند حافظه، خدمات سیستم عامل و اتصالات شبکه، خطای کاربر، و قطع برق غیرمنتظره است.
قابلیت استفاده : ارگونومی یک برنامه: سهولتی که با آن شخص می تواند از برنامه برای هدف مورد نظر خود یا در برخی موارد حتی برای اهداف پیش بینی نشده استفاده کند. چنین مسائلی می تواند موفقیت آن را حتی بدون توجه به مسائل دیگر ایجاد یا شکست دهد. این شامل طیف گسترده ای از عناصر متنی، گرافیکی و گاهی اوقات سخت افزاری است که وضوح، شهودی بودن، انسجام و کامل بودن رابط کاربری برنامه را بهبود می بخشد.
قابل حمل بودن: گستره ای از سخت افزار کامپیوتر و پلتفرم های سیستم عامل که می توان کد منبع یک برنامه را بر روی آنها کامپایل ، تفسیر و اجرا کرد. این بستگی به تفاوت در امکانات برنامه نویسی ارائه شده توسط پلتفرم های مختلف، از جمله منابع سخت افزاری و سیستم عامل، رفتار مورد انتظار سخت افزار و سیستم عامل، و در دسترس بودن کامپایلرهای خاص پلت فرم (و گاهی اوقات کتابخانه ها) برای زبان کد منبع دارد.
قابلیت نگهداری : سهولتی که با آن می توان یک برنامه را توسط توسعه دهندگان فعلی یا آینده آن به منظور ایجاد بهبود یا سفارشی سازی، رفع اشکالات و حفره های امنیتی یا تطبیق آن با محیط های جدید تغییر داد. شیوه های خوب [18] در طول توسعه اولیه تفاوت را در این زمینه ایجاد می کند. این کیفیت ممکن است مستقیماً برای کاربر نهایی آشکار نباشد، اما می تواند به طور قابل توجهی بر سرنوشت یک برنامه در دراز مدت تأثیر بگذارد.
کارایی / عملکرد : اندازه گیری منابع سیستمی که یک برنامه مصرف می کند (زمان پردازنده، فضای حافظه، دستگاه های کند مانند دیسک ها، پهنای باند شبکه و تا حدی حتی تعامل کاربر): هر چه کمتر، بهتر. این همچنین شامل مدیریت دقیق منابع، به عنوان مثال جزوه برنامه نویسی شی گرا فایل های موقت و از بین بردن نشت حافظه است . این اغلب در سایه یک زبان برنامه نویسی انتخاب شده مورد بحث قرار می گیرد. اگرچه زبان مطمئناً بر عملکرد تأثیر می گذارد، حتی زبان های کندتر مانند پایتون می توانند برنامه ها را فوراً از دیدگاه انسانی اجرا کنند. سرعت، استفاده از منابع و عملکرد برای برنامه هایی که تنگنا هستند مهم هستندسیستم، اما استفاده کارآمد از زمان برنامه نویس نیز مهم است و با هزینه مرتبط است: سخت افزار بیشتر ممکن است ارزان تر باشد.
خوانایی کد منبع
در برنامه نویسی کامپیوتر، خوانایی به سهولتی که خواننده انسانی می تواند هدف، جریان کنترل و عملکرد کد منبع را درک کند، اطلاق می شود. این بر جنبه های کیفیت فوق تأثیر می گذارد، از جمله قابلیت حمل، قابلیت استفاده و از همه مهمتر قابلیت نگهداری.
خوانایی مهم است زیرا برنامه نویسان بیشتر وقت خود را صرف خواندن، تلاش برای درک، استفاده مجدد و اصلاح کد منبع موجود می کنند، نه نوشتن کد منبع جدید. کدهای ناخوانا اغلب منجر به اشکالات، ناکارآمدی ها و کدهای تکراری می شود . یک مطالعه نشان داد که چند تغییر خوانایی ساده کد را کوتاهتر کرده و زمان درک آن را به شدت کاهش میدهد. [19]
پیروی از یک سبک برنامه نویسی ثابت اغلب به خوانایی کمک می کند. با این حال، خوانایی چیزی فراتر از سبک برنامه نویسی است. بسیاری از عوامل، که ارتباط کمی با توانایی رایانه در کامپایل و اجرای مؤثر کد دارند، به خوانایی کمک می کنند. [20] برخی از این عوامل عبارتند از:
سبک های مختلف تورفتگی (فضای سفید)
نظرات
تجزیه
قراردادهای نامگذاری برای اشیا (مانند متغیرها، کلاس ها، توابع، رویه ها و غیره)
جنبه های ارائه این (مانند تورفتگی، شکسته شدن خط، برجسته کردن رنگ، و غیره) اغلب توسط ویرایشگر کد منبع مدیریت می شود ، اما جنبه های محتوا نشان دهنده استعداد و مهارت های برنامه نویس است.
زبان های برنامه نویسی بصری مختلف نیز با هدف رفع نگرانی های مربوط به خوانایی با جزوه برنامه نویسی شی گرا رویکردهای غیر سنتی برای ساختار و نمایش کد توسعه داده شده اند. محیط های توسعه یکپارچه (IDE) با هدف ادغام تمام این کمک ها هستند. تکنیک هایی مانند بازآفرینی کد می توانند خوانایی را افزایش دهند.
پیچیدگی الگوریتمی
رشته آکادمیک و تمرین مهندسی برنامه نویسی کامپیوتر، هر دو عمدتاً به کشف و پیاده سازی کارآمدترین الگوریتم ها برای یک کلاس معین از مسائل مربوط می شوند. برای این منظور ، الگوریتمها با استفاده از نماد Big O به ترتیبی طبقهبندی میشوند که استفاده از منابع مانند زمان اجرا یا مصرف حافظه را بر حسب اندازه ورودی بیان میکند. برنامه نویسان خبره با انواع الگوریتم های به خوبی تثبیت شده و پیچیدگی های مربوط به آنها آشنا هستند و از این دانش برای انتخاب الگوریتم هایی استفاده می کنند که به بهترین وجه مناسب شرایط هستند.
روش شناسی
اولین گام در اکثر فرآیندهای رسمی توسعه نرم افزار ، تجزیه و تحلیل نیازمندی ها است ، به دنبال آن آزمایش برای تعیین مدل سازی ارزش، پیاده سازی، و حذف شکست (اشکال زدایی) انجام می شود. برای هر یک از این وظایف، رویکردهای متفاوتی وجود دارد. یکی از رویکردهای رایج برای تحلیل نیازمندی ها، تحلیل Use Case است. بسیاری از برنامه نویسان از اشکال توسعه نرم افزار Agile استفاده می کنند که در آن مراحل مختلف توسعه نرم افزار رسمی بیشتر با هم در چرخه های کوتاهی که چند هفته طول می کشد به جای سال ها یکپارچه می شوند. رویکردهای زیادی برای فرآیند توسعه نرم افزار وجود دارد.
تکنیکهای مدلسازی محبوب شامل تحلیل و طراحی شی گرا ( OOAD ) و معماری مدل محور ( MDA ) است. زبان مدلسازی یکپارچه ( UML ) نمادی است که برای هر دو OOAD و MDA استفاده می شود.
تکنیک مشابهی که برای طراحی پایگاه داده جزوه برنامه نویسی شی گرا می شود، مدلسازی نهادی-رابطه ( ER Modeling ) است.
تکنیک های پیاده سازی شامل زبان های امری ( شی گرا یا رویه ای )، زبان های تابعی و زبان های منطقی است .
اندازه گیری استفاده از زبان
مقاله اصلی: اندازه گیری محبوبیت زبان برنامه نویسی
تعیین محبوب ترین زبان های برنامه نویسی مدرن بسیار دشوار است. روشهای اندازهگیری محبوبیت زبان برنامهنویسی عبارتند از: شمارش تعداد آگهیهای شغلی که به آن زبان اشاره میکنند، [21] تعداد کتابهای فروخته شده و دورههای آموزش زبان (این امر اهمیت زبانهای جدیدتر را بیش از حد برآورد میکند)، و تخمین تعداد خطوط موجود. کد نوشته شده در زبان (این تعداد کاربران زبان های تجاری مانند COBOL را دست کم می گیرد).

خلاصه کتاب برنامه نویسی شی گرا دانلود رایگان
برخی از زبان ها برای انواع خاصی از برنامه ها بسیار محبوب هستند، در حالی که برخی از زبان ها به طور منظم برای نوشتن انواع مختلف برنامه ها استفاده می شوند. به عنوان مثال، COBOL هنوز در مراکز داده شرکتی [22] اغلب در رایانه های بزرگ بزرگ ، Fortran در برنامه های مهندسی، زبان های اسکریپت در توسعه وب و C در نرم افزارهای جاسازی شده قوی است . بسیاری از برنامه ها از ترکیبی از چندین زبان در ساخت و استفاده خود استفاده می کنند. زبانهای جدید عموماً حول نحو یک زبان قبلی با قابلیتهای جدید اضافه شده طراحی میشوند (برای مثال C++ شیگرایی را به C اضافه میکند، وجاوا مدیریت حافظه و بایت کد را به C++ اضافه می کند، اما در نتیجه کارایی و توانایی دستکاری در سطح پایین را از دست می دهد.
اشکال زدایی
مقاله اصلی: اشکال زدایی
اولین باگ واقعی شناخته شده که باعث ایجاد مشکل در رایانه میشود، شب پرهای بود که در یک رایانه اصلی هاروارد به دام افتاده بود و در یک دفترچه ثبت نام در تاریخ 9 سپتامبر 1947 ثبت شد. [23] «اشکال» قبلاً یک اصطلاح رایج برای نقص نرمافزاری بود که حشره پیدا شد
اشکال زدایی یک کار بسیار مهم در فرآیند توسعه نرم افزار است زیرا وجود نقص در یک برنامه می تواند عواقب قابل توجهی برای کاربران آن داشته باشد. برخی از زبان ها بیشتر مستعد برخی از اشکالات هستند، زیرا مشخصات آنها نیازی به کامپایلرها ندارد که به اندازه زبان های دیگر بررسی کنند. استفاده از ابزار تجزیه و تحلیل کد استاتیک می تواند به شناسایی برخی مشکلات احتمالی کمک کند. معمولاً اولین قدم در اشکال زدایی، تلاش برای بازتولید مشکل است. این می تواند یک کار غیر ضروری باشد، به عنوان مثال در مورد فرآیندهای موازی یا برخی از اشکالات نرم افزاری غیر معمول. همچنین، محیط کاربری خاص و سابقه استفاده می تواند بازتولید مشکل را دشوار کند.
پس از بازتولید اشکال، ممکن است لازم باشد ورودی برنامه ساده جزوه برنامه نویسی شی گرا تا اشکال زدایی آسانتر شود. به عنوان مثال، هنگامی که یک اشکال در یک کامپایلر میتواند هنگام تجزیه برخی از فایلهای منبع بزرگ باعث خرابی آن شود، سادهسازی مورد آزمایشی که تنها چند خط از فایل منبع اصلی ایجاد میکند میتواند برای بازتولید همان خرابی کافی باشد. آزمایش و خطا/تقسیم و غلبه مورد نیاز است: برنامه نویس سعی می کند برخی از قسمت های مورد آزمایشی اصلی را حذف کند و بررسی کند که آیا مشکل همچنان وجود دارد یا خیر. هنگام اشکال زدایی مشکل در یک رابط کاربری گرافیکی، برنامه نویس می تواند سعی کند برخی از تعاملات کاربر را از توضیحات اصلی مشکل نادیده بگیرد و بررسی کند که آیا اقدامات باقی مانده برای نمایش باگ ها کافی است یا خیر. اسکریپت و نقطه شکست نیز بخشی از این فرآیند است.
اشکال زدایی اغلب با IDE ها انجام می شود . دیباگرهای مستقل مانند GDB نیز مورد استفاده قرار می گیرند، و اینها اغلب محیط بصری کمتری را ارائه می دهند، معمولاً از خط فرمان استفاده می کنند. برخی از ویرایشگرهای متن مانند Emacs به GDB اجازه می دهند تا از طریق آنها فراخوانی شود تا یک محیط بصری فراهم شود.
زبانهای برنامه نویسی
مقالات اصلی: زبان برنامه نویسی و فهرست زبان های برنامه نویسی
همچنین نگاه کنید به: برنامه کامپیوتری § زبانها
زبان های برنامه نویسی مختلف از سبک های مختلف برنامه نویسی پشتیبانی می کنند (به نام پارادایم های برنامه نویسی ).). انتخاب زبان مورد استفاده به ملاحظات زیادی بستگی دارد، مانند خط “” “” «» ً «» ”” ” :
ً :
: : : : : ً (ً )،
فهرست مطالب