ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی “ ورود به حساب” کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمیشود، اینجا را کلیک کنید.





نمایش نتایج: از 1 به 1 از 1
  1. #1
    moeintn
    كاربر عادي
    تاریخ عضویت
    2017 Dec
    نوشته ها
    50
    0
    6

    زبان برنامه نویسی c

    [برای نمایش لینک باید عضو شوید. ]

    ویژگی هایی که[برای نمایش لینک باید عضو شوید. ]را منحصر بفرد می سازد





    [برای نمایش لینک باید عضو شوید. ] را می توان مادر تمام زبان های برنامه نویسی مدرن به شمار آورد. تقریبا تمام زبان های برنامه نویسی که امروزه مورد استفاده قرار می گیرند، حداقل چند ویژگی از این زبان را به ارث برده اند.
    زبانC به صورت گسترده برای توسعه نرم افزارهای کوچکترین میکروکامپیوترها تا بزرگترین کارخانه ها و ابر کامپیوترها به کار گرفته شده است.
    اپلیکیشن های نوشته شده به زبان C شامل نرم افزارهای سیستمی، دسکتاپ، شرکتی، دیتابیس و غیره می باشد. در ادامه مقاله اصول این زبان شرح داده شده که می تواند در شروع موفقیت آمیز یک دوره برنامه نویسی تاثیر زیادی داشته باشد.

    تاریخچه زبان C


    توسعه [برای نمایش لینک باید عضو شوید. ] ارتباط نزدیکی با یونیکس داشته است. این زبان در سال 1972 توسعه داده شده اما بسیاری از ویژگی ها در سال های بعد به آن اضافه شده است.
    پیش از توسعه زبان C، سیستم عامل یونیکس با استفاده از زبان اسمبلی برای کامپیوتر PDP-7 توسعه داده شده بود. بعدها بر اساس این پلتفرم و با استفاده از زبان اسمبلی کامپایلری برای C طراحی شد. دراین زمان زبان C برای تسهیل توسعه خود یونیکس طراحی شده بود. با استفاده از این کامپایلر، یونیکس برای کامپیوترPDP-7 در زبان C به صورت کامل بازنویسی شد. علاوه براین، کامپایلر زبان C نیز در زبان C و با استفاده از ابزارهای فوق العادهlex و yacc مجددا بازنویسی شد و از این طریق فرایند بوت*استرپ (چارچوب انتهایی) C و یونیکس کامل شد.
    دلیل اصلی بازنویسی یونیکس به[برای نمایش لینک باید عضو شوید. ] ایجاد قابلیت جابجایی بود. از آنجایی که زبان های اسمبلی نسبت به معماری های مختلف CPU متفاوت هستند، پورت کردن سیستم عامل یونیکس برای هر یک از آنها نیازمند تلاش فراوانی بود. با توسعه یک زبان برنامه نویسی مثل C و بازنویسی سیستم عامل یونیکس به زبان C فرایند پورت کردن تا حد زیادی تسهیل می شد.
    پس از توسعه این زبان، برنامه نویسان پی بردند که علاوه برنوشتن نرم افزارهای سیستمی، در موارد دیگری نیز می توان از آن استفاده کرد. بنابرین این افراد از زبان C برای نوشتن نرم افزارهایی از قبیل سرور فایل، سرورهای دیتابیس، پشته های شبکه، نزم افزار دسکتاپ و بعدا برای توسعه سرورهای وب و غیره استفاده کردند. در سال 1978 برایان کرنیگن و دنیس ریچی کتاب [برای نمایش لینک باید عضو شوید. ]را منتشر کردند که تا سال 1989 و استاندارد سازی این زبان توسط ANSI به عنوان یک راهنمای غیر رسمی مورد استفاده قرار می گرفت.
    گفتنی است آخرین نسخه منتشر شده از این زبان C11 نام دارد و در سال 2011 منتشر شده است.

    آیا C و C++ با هم ارتباطی دارند؟






    با افزایش پیچیدگی برنامه هایی که در C نوشته می شدند، مفاهیم شی گرایی از قبیل کپسوله سازی و چند ریختی برای مدیریت این پیچیدگی ها مورد استفاده قرار گرفتند که در نهایت به توسعه زبان C++ منجر شد.
    C++ با اضافه کردن چند ویژگی خاص به زبان C به منظور توسعه نرم افزارهای شی گرا توسعه پیدا کرد. ایده اصلی توسعه این زبان ایجاد تغییرات تدریجی در زبان C بود به گونه ای که بتوان C و ماژول C++ را در یک برنامه و از طریق یک کامپایلر باهم ترکیب کرد. این مساله امکان استفاده مجدد از ماژول های قدیمی C را در برنامه های بزرگ نوشته شده با استفاده از مفاهیم شی گرایی فراهم می کرد.
    از نظر تئوری می توان یک برنامه C را بدون هیچ تغییری در کامپایلر C++ کامپایل کرد. با این حال در عمل بررسی سختگیرانه تر کدها در کامپایلر C++ خطاهایی را شناسایی می کنند که پیش از کامپایل باید اصلاح شوند.
    زبان C نسبت به قدرتی که دارد بسیار ساده است. این زبان تنها 32 کلمه کلیدی با معنای خاص دارد در حالی که C++ 82 کلمه کلیدی، جاوا 50 کلمه کلیدی، جاوا اسکریپت 63 کلمه کلیدی و COBOL 357 کلمه کلیدی دارد. تصویر کنید به خاظر سپردن صدها کلمه کلیدی و کاربردهای آنها تا چه می تواند دشوار باشد. زبان C برخلاف بسیاری از زبان های مدرن، هیچ رشته خاصی ندارد. در این زبان رشت ها به عنوان آرایه ای از کاراکتها در نظر گرفته می شود که با کاراکتر 0 ( با “\0” نشان داده می شود) پایان می یابد.
    طول این رشته از طریق یک قرار داد مشخص می شود: تعداد کارکترها تا کاراکتر 0. با این حال میتوانید این قرارداد را نادیده گرفته و کاراکترهای قبل از “\0” را شمارش کرده یا ذخیره کنید.
    گفتنی است عدم وجود نوع خاصی از کاراکتر یا قرارداد مذکور در سال های گذشته به باگ های فراوانی از قبیل سرریز بافر منجر شده است.
    برای مثال اولین کرمی که به اینترنت راه پیدا کرد موریس نام داشت، و در نتیجه وقوع همین باگ در بخش مهمی از نرم افزار سیستم به نام فینگر دایمون ایجاد شده بود. در مثال زیر احتمال بالای وقوع این باگ در یک برنامه نشان داده شده است. این برنامه کامپایل می شود اما خطای سرریز بافر در آن رخ می دهد:# include
    main()
    }
    ;"char *buf = "hello world
    ;'buf[12] = 'a
    ;(printf("%s\n", buf
    {


    برخلاف [برای نمایش لینک باید عضو شوید. ] در بیشتر زبان های مدرن نوع رشته باید دقیقا مشخص شود . حتی در C++ هم پیش از کامپایل کد بالا باید با افزودن کد std::stringtype نوع رشته را مشخص کرد.
    اشاره گر مرجعی به یک مکان در حافظه است. C از نظر خواندن و نوشتن مکان های حافظه انعطاف پذیری بالایی دارد. با این حالا این انعطاف پذیری هزینه زیادی به دنبال داشته و منشا باگ های بسیاری بوده است.
    مهم ترین و تاثیرگذارترین باگ های ناشی از این انطعاف پذیری که اینترنت را تحت تاثیر قرار می دهند در سرورهای وب، ایمیل و FTP رخ می دهند. حتی امروزه نیز شاهد وقوع باگهایی در زمینه درج و بروزرسانی مکان های نامعتبر در حافظه هستیم.




    باگ امنیتی مشهور SSL HeartBleed که در سال 2014 شناسایی شد در نتیجه مدیریت غلط مکان های اشاره گر به وقوع پیوست که اهمیت حیاتی مدیریت صحیح اشاره گر در C را نشان می دهد. حتی یکی از مهمرین خطاهای ویندوز به نام صفحه آبی مرگ که اغلب کاربران با آن آشنایی دارند به خطاهای اشاره گرمربوط می شود. زبان های دیگر امکان تغییر اشاره گر را فراهم نکرده و بدین ترتیب امکان وقوع چنین خطاهایی در آنها وجود ندارد.

    آرایه ها و اشاره گرها را می توان به جای هم مورد استفاده قرار داد


    زبان C اجازه استفاده از مرجع آرایه را هنگام نیاز به یک اشاره گر (و برعکس آن) فراهم کرده است. اگرچه این مساله قدرت ایجاد تغییرات فراوانی را به کاربر می دهد اما همچون مورد قبلی احتمال وقوع خطا و باگ در آن نیز زیاد است.

    کاربردهای گسترده تعریف کردن ماکروها


    ماکرو یک تکه کد است که نامی به آن اختصاص داده می شود. هر زمانی که این نام در طول برنامه استفاده شود، محتوای ماکرو به جای آن قرار داده خواهد شد. از ماکروها برای جایگزینی یک نام برای اهداف مختلف از قبیل تغییر تعریف نام در زمان کامپایل یا جایگزینی یک نام طولانی با نامی ساده تر استفاده کرد.
    سیستم ماکروی C از شرط های ifdef پشتیبانی می کند که امکان ایجاد شرط های کامپایل را فراهم می کنند. این قابلیت یکی از راه های پورت کردن نرم افزار بر اساس معماری های و سیستم عامل های مختلف است.
    بدین منظور نام های موردنظر در زمان کامپایل بر اساس شرایط مختلف در نسخه های مختلف تعریف و جایگزین می شوند. علاوه بر این امکان حذف یا درج یک بخش کامل از کدها هنگام کامپایل نیز وجود دارد.
    زبان های دیگر از قبیل جاوا، جاوا اسکریپت یا پایتون چنین امکاناتی را در اختیار کاربر قرار نمی دهند.

    ماژول های کپسوله شده در فایل ها


    C مفهومی به نام کلاس ندارد و به همین خاطر از آشکاری محافظت شده، عمومی و خصوصی پشتیبانی نمی کند. تنها کپسوله سازی ممکن در C، به فایل ها برمی گردد. توابع، متغیرهای جهانی و انواع متغیرهایی که در یک فایل منبع نوشته می شوند در آن فایل نمایان هستند مگر اینکه نام های آنها صادر شده باشد.
    کلمات کلیدی static و extern به منظور کنترل نمایانی اسامی توابع و متغیرها ارائه شده اند.
    از طرف دیگر زبان هایی از قبیل C++، جاوا و پایتون از کلاس ها و کپسوله سازی مربوط به آنها پشتیبانی می کنند.

    کتابخانه های خارجی


    کتابخانه ها توابع آماده ای هستند که بدون نیاز به بازنویسی کدها و تنها با یک ارجاع می توان از آنها استفاده کرد. اعمالی نظیر انجام عملیات روی رشته ها، عملیات ریاضی، ورودی و خروجی، شبکه سازی و غیره از طریق این کتابخانه ها قابل اجرا است.
    با این حال زبان های دیگر معمولا از کتابخانه های ماژول با زبان مخصوص به خود استفاده می کنند.

    منابع:
    [برای نمایش لینک باید عضو شوید. ]
    [برای نمایش لینک باید عضو شوید. ]
    [برای نمایش لینک باید عضو شوید. ]
    ویرایش توسط moeintn : 2018-10-03 در ساعت 12:46 PM
    [برای نمایش لینک باید عضو شوید. ]
نمایش نتایج: از 1 به 1 از 1

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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

Content Relevant URLs by vBSEO 3.6.0 RC 2