اطلاعیه

Collapse
No announcement yet.

===> برای گرایشهای برق : C بهتر است یا ++C ؟؟ <===

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ===> برای گرایشهای برق : C بهتر است یا ++C ؟؟ <===


    .
    سلام / اساتید محترم یه سوال دوستان :
    برای رشته های برقی و آینده میکرو و کار با سخت افزار : زبان C بهتر است یا ++C ؟ آخه میگن ++C همه مشخصات C رو داره و چه بسا ورژن کاملتر C است !!! آیا برای گرایشهای برق و سخت افزار و میکرو هم همینطوره ؟؟؟؟؟؟؟
    .

    #2
    پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

    نوشته اصلی توسط elahe80

    .
    سلام / اساتید محترم یه سوال دوستان :
    برای رشته های برقی و آینده میکرو و کار با سخت افزار : زبان C بهتر است یا ++C ؟ آخه میگن ++C همه مشخصات C رو داره و چه بسا ورژن کاملتر C است !!! آیا برای گرایشهای برق و سخت افزار و میکرو هم همینطوره ؟؟؟؟؟؟؟
    .
    برای برنامه نویسی میکروکنترلرها بیشتر از C استفاده میشه و در PC، برای برنامه نویسی سطح پایین از VC++ یا MFC.
    There is nothing so practical as a good theory. &mdash; Kurt Lewin, 1951

    دیدگاه


      #3
      پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

      c با c++ زیاد فرق ندارد اگر شما یکی را یادبگیری آن یکی خیلی راحت قابل فهم خواهد بود برای کار سخت افزار C بهتره!!!!!!!!!!

      دیدگاه


        #4
        پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

        خیلی نمیشه روش حساب کرد ولی یه جورائی میشه گفت فرق C و C++ درست فرق یه مهندس برق هست با یه مهندس کامپیوتر :mrgreen:

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

        دیدگاه


          #5
          پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

          سلام،

          معماری C با ++C خیلی متفاوته و بیشتر تفاوت هم از بحث شی گرایی در ++C ناشی میشه. اما گرامرشون تقریبا شبیه است.
          There is nothing so practical as a good theory. &mdash; Kurt Lewin, 1951

          دیدگاه


            #6
            پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

            نوشته اصلی توسط sadid
            خیلی نمیشه روش حساب کرد ولی یه جورائی میشه گفت فرق C و C++ درست فرق یه مهندس برق هست با یه مهندس کامپیوتر :mrgreen:
            با سلام
            جمله جالبی بود!!!!
            من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

            دیدگاه


              #7
              پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

              من میگم C++. چون حیفه که وقت بذارید و در آخر نتونید یه برنامه تو PC بنویسید. کسی که فقط برنامه میکرو بلده با کسی که PC و میکرو بلده خیلی فرقشونه. مخصوصا اگه برید حرفه ای دنبالش و بتونید از MFC استفاده کنید(البته من از MFC متنفرم و خودم ترجیح دادم برم دنبال #C) .
              مزیت دومش اینه که شما اگه بخواید مفهومی برنامه نویسی رو یاد بگیرید، باید چند ماهی رو با کتابهای حرفه ای مثل &quot;دیتل&quot; سر کنید و اینجا مشکل کامپایلرهای زیرخاکی C در PC به وجود میاد. در صورتی که اگه ++C شروع کنید با کامپایلرهای قدرتمندی مثل VS میتونید کار کنید که خدای debugging هستش و تو عیب یابی برنامه خیلی کمک میکنه.

              حرف آخر اینه که C و ++C دقیقا مثل همن. فقط در ++C ماجرای شی گرایی و Class ها اضافه شده که میتونید بدون اطلاع داشتن ازش برنامه های ساده رو در حدی که در C مینویسند ، بنویسید.

              اصلا رو خودش که هست. ++C یعنی C که بهش یه واحد اضافه شده.
              بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
              اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

              دیدگاه


                #8
                پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

                من موافق مثل هم بودن این زبانها نیستم در واقع اینا دقیقا مثل هم نیستن فقط پوستهٰ ظاهریشون یا همون سینتکس مثل هم هست....
                ولی زیر این پوسته دو دنیای مختلف هست هرچند تاریخ این قضیه به اینجا رسیده که C++ که اولش سی بعلاوه کلاس بود در نهایت منجر به این شده که: C++ یک زبان متفاوت با خاصیتهای..... و کاملا سازگار با C است.
                مثل فرق C# با C++ میمونه ولی میتونیم بگیم اینا همه ش جز خانوادهٰ زبانهای شبیه C هستند.
                ممکنه که تصور بشه واسه کاربر چندان فرقی نمیکنه تا حدی درسته ولی در واقع پارادایم و اصول برنامه نویسی این دو زبان متفاوت هستند مثلا یه برنامه در هردو زبان با دو دیدگاه متفاوت نوشته میشه و این به خاطر ذات هر کدوم ازین زبانهاست
                توی بحث embeded که اینجا مطرح شد C++ حرفی واسه گفتن نداره....یه تلاشی هم شد که یه زبان مینیمال شده از C++ واسه سیستمهای درونه ای :mrgreen: توسعه داده بشه ولی فکر کنم الان توسعه اش یا خیلی کنده یا کلا متوقف شده...فکر کنم EC++ ....کلا توی بحث embeded به نظر میاد به خاطر ذات اپلیکیشن ها فعلا C++ نمیتونه چندان حرفی واسه گفتن داشته باشه ...

                دیدگاه


                  #9
                  پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

                  سلام،

                  بیشتر برنامه‎نویس‏های حرفه‏ای MFC، C++، C Sharp و Java کارشون رو از ANSI C شروع کردند. در واقع بدون تسلط بر C، نمیشه درک عمیقی از زبان‏های مذکور داشت.
                  There is nothing so practical as a good theory. &mdash; Kurt Lewin, 1951

                  دیدگاه


                    #10
                    پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

                    نوشته اصلی توسط mostafahk
                    مزیت دومش اینه که شما اگه بخواید مفهومی برنامه نویسی رو یاد بگیرید، باید چند ماهی رو با کتابهای حرفه ای مثل &quot;دیتل&quot; سر کنید و اینجا مشکل کامپایلرهای زیرخاکی C در PC به وجود میاد. در صورتی که اگه ++C شروع کنید با کامپایلرهای قدرتمندی مثل VS میتونید کار کنید که خدای debugging هستش و تو عیب یابی برنامه خیلی کمک میکنه.
                    با VS می‏تونید C رو هم کامپایل کنید و ابزارهای IDE استفاده کنید. در واقع کامپایلر به طور خودکار تشخیص میده که برنامه ی شما رو باید با کامپایلر C کامپایل کنه یا ++C.
                    There is nothing so practical as a good theory. &mdash; Kurt Lewin, 1951

                    دیدگاه


                      #11
                      پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

                      نوشته اصلی توسط sadid
                      توی بحث embeded که اینجا مطرح شد C++ حرفی واسه گفتن نداره....یه تلاشی هم شد که یه زبان مینیمال شده از C++ واسه سیستمهای درونه ای :mrgreen: توسعه داده بشه ولی فکر کنم الان توسعه اش یا خیلی کنده یا کلا متوقف شده...فکر کنم EC++ ....کلا توی بحث embeded به نظر میاد به خاطر ذات اپلیکیشن ها فعلا C++ نمیتونه چندان حرفی واسه گفتن داشته باشه ...
                      اینطور نیست، کامپایلرهای IAR و avr-gcc از شی گرایی و ++C پشتیبانی میکنند و بسیار هم موفق هستند. درسته که Overhead کد ایجاد شده با ++C حدود 25 درصد بیشتر از C است اما در برخی میکروکنترلرهای 8 بیتی که حافظه ی داده ی و برنامه ی کافی دارند (مثل ATmega64 به بعد) به راحتی می تونید از شی گرایی استفاده کنید. البته IAR ادعا میکنه که کامپایلر ++EC بدون سربار نرافزاری امکانات کافی رو به شما میده: http://iar.com/website1/1.0.1.0/50/1
                      There is nothing so practical as a good theory. &mdash; Kurt Lewin, 1951

                      دیدگاه


                        #12
                        پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

                        نوشته اصلی توسط رضا سپاس یار


                        اینطور نیست، کامپایلرهای IAR و avr-gcc از شی گرایی و ++C پشتیبانی میکنند و بسیار هم موفق هستند. درسته که Overhead کد ایجاد شده با ++C حدود 25 درصد بیشتر از C است اما در برخی میکروکنترلرهای 8 بیتی که حافظه ی داده ی و برنامه ی کافی دارند (مثل ATmega64 به بعد) به راحتی می تونید از شی گرایی استفاده کنید. البته IAR ادعا میکنه که کامپایلر ++EC بدون سربار نرافزاری امکانات کافی رو به شما میده: http://iar.com/website1/1.0.1.0/50/1
                        اول اینو میگم که درسته که زبان C++ شامل تمامی کدهای C هم میشه ولی ایندو زبان متفاوت هستند در واقع منظورم من هم ازون پاراگراف همین نکته بود که C++ درسته که به لحاظ تاریخی ادامهٰ C هست ولی به لحاظ ساختاری اینگونه نیست در واقع شما میتونین یه برنامه سی رو با کامپایلر C++ کامپایل کنین و برخی مزایای OOP رو هم با همون کد سی بگیرین و بازم میگم C++ در عرصهٰ embeded چندان حرفی واسه گفتن نداره..حداقل فعلا..
                        میدونم که اینارو میدونین اما مسئلهٰ عدم موفقیت C++ فقط به ۲.۵ درصد سربار اضافی ختم نمیشه مثلا میام یه سیستم embeded رو هم با C++ و هم با C طراحی میکنیم نتیجه فقط سربار ۲.۵ درصدی بیشتر نیست اون عدد یه نشانه است از مسائلی که در پشت قضیه داره اتفاق میافته:
                        *کامپایلر C تقریبا برای هر بخش کد میتونیم بگیم یه روتین مشابه اسمبلی رو ارائه میکنه ولی کامپایلر پیچیدهٰ C++ واسه یه فانکشن ساده چندنی روتین رو ایجاد میکنه و درسته این باعث ۲.۵ درصد سربار اضافی میشه ولی این سربار در واقع به شکل فانتزی سایز یه کلاف سردرگم هست برای انجام دادن کاری که مستقیم تر هم میشه انجام داد..
                        بهمین خاطر هم شما بهتر میتونین کد بهینه بنویسین نسبت به وقتی که با C++ کد بزنین
                        *کلاس ها و وراثت و چندریختی و ... در صورت استفاده اغلب سبب ساده تر شدن برنامه نویسی و الگوریتم ولی پیچیده تر شدن کامپایل و کد ماشین غیر بهینه میشن...
                        *کار کردن با مفهوم شی گرائی و استفاده از کامپایلرهای موفق در کامپایلش ولی پیچیده باعث باگهای زیادتری (فکر میکنم در مواردی به شدت زیادتر) در سیستم نهائی میشه و یکی از دلایلی که کرنل اصلی اغلب سیستم عاملها رو (که به بحث embeded نزدیک هست) با C مینویسن همین هست.
                        و مطالب دیگه مثلا خیلی از امکانات C++ به درد ساختارهای ROM base نمیخوره به خصوص وقتی کامپایلر نیاز به دادهٰ متغیر در حین اجرا پیدا میکنه .... یا مثلا همین جریان EC++ به نظر من یه مسامحه است بین C و C++ در واقع کاربر رو محدود میکنه تا افسار گسیخته از امکانات C++ استفاده نکنه به اضافه یکسری بهینه سازیهای جزئی با در نظر گرفتن کاربرد.....من با EC++ کار نکردم ولی به نظر میاد نیومده..رفته...

                        نظر خود من اینه که C رو باید درین عرصه بلد باشیم و البته در اولویت بعدی یادگرفتن C++ برای هرکسی که بخواد راجع درک کاملتر و البته توانائی بیشتری رو در برنامه نویسی داشته باشه واجب هست ولی توی این عرصه تا اونجائی که میتونیم باید از C استفاده کنیم یعنی وشتن سخت و هوشمندانه یه عملکرد در C بر نوشتن اون با استفاده از توانائی های C++ در عرصهٰ embeded ارحجیت داره

                        دیدگاه


                          #13
                          پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

                          سلام، به هر حال ما نمیتونیم منکر این مسئله بشیم که در حال حاضر خیلی از شرکت های معتبر، برای توسعه ی Firmware میکروکنترلرهای 8، 16 و 32 بیتی از سبک برنامه نویسی شی گرا (حتی جاوا) استفاده می کنند.
                          یه مسئله جالب دیگه هم اینه که شما می تونید در ANSI C به صورت شی گرا برنامه بنویسد. :agree:
                          There is nothing so practical as a good theory. &mdash; Kurt Lewin, 1951

                          دیدگاه


                            #14
                            پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

                            من منکر این مسئلهٰ مربوط به توسعهٰ میان افزارها نشدم
                            جاوا واسه embeded که فکر نمیکنم چندان در دسترس باشه و همون شرکتهای بزرگ میتونن ازش استفاده کنند.
                            مسئلهٰ دیگه در بین شرکتهای بزرگ و همینطور طراحان بزرگ اینه که اونا به یه زبان و یا تکنولوژی خاص وابسته نیستند بلکه این پروژه مورد نظرشون هست که تعیین میکنه که از چه زبانها و تکنولوژیهائی استفاده کنند.....حتی زبانهائی مثل پایتون یا Tcl (توی FPGA) یا Lua و حتی PHP :mrgreen: رو دیدم که توی سیستمهای embeded به کار بردند حالا در چه سطحی مسئلهٰ دیگه س. (مدتی که درگیر کار با یه روتر بودم یه طرح مشابه رو دیدم)
                            امروزه به طور وسیعی از سیستم عامل توی طرحهای embeded استفاه میشه و این جا رو برای زبانهی دیگه هم باز میکنه مثلا این گوشی OpenMoko که پروژهٰ باز و جالبی هم هست و کدباز هم هست:
                            http://wiki.openmoko.org/wiki/Main_Page/fa
                            خوب هرکدوم کاربرد خودشو داره نوشتن یه کد معمول با پایتون عوض C توی embeded بسیار کند خواهد بود (به احتمال زیاد)

                            یه مسئله جالب دیگه هم اینه که شما می تونید در ANSI C به صورت شی گرا برنامه بنویسد. agree
                            این جریانش به هک OOP در سی استاندارد مربوط میشه و کلا یه فاز دیگه س. :agree:

                            دیدگاه


                              #15
                              پاسخ : ===&gt; برای گرایشهای برق : C بهتر است یا ++C ؟؟ &lt;===

                              سلام
                              البته بستگی داره چکاری بخواهید با اون انجام بدید
                              اگه بخواهید حرفه ای کار کنید C# (سی شارپ) برای اینکار عالیه
                              خودم هم C# کار میکنم

                              دیدگاه

                              لطفا صبر کنید...
                              X