Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> برنامه نویسی با زبان های C++ و Delphi و VB -> قدرت زبان برنامه نويسي سي(ساخت يافته)
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

قدرت زبان برنامه نويسي سي(ساخت يا
نويسنده
پيغام
sasan_dracula_59
در حال رشد
در حال رشد


تاريخ عضويت: 4 شنبه 6 مهر 1384
تعداد ارسالها: 65


2 شنبه 17 بهمن 1384 - 22:01
پاسخ بصورت نقل قول
<<>>


اين نامه توسط sasan_dracula_59 در 2 شنبه 15 خرداد 1385 - 23:53 ويرايش شده است.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
Sirus-v
کاربر اخراج شده


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 325


3 شنبه 18 بهمن 1384 - 01:38
پاسخ بصورت نقل قول
ببین دوست عزیز اول از همه خدمتت عرض کنم که C یک زبان سطح بالا هست نه سطح پایین (تفکر غلتی که بخاطر دشواری این زبان بهش تحمیل شده ) اما در مورد دلایل استفاده از سی :

اگه در این مورد بخوایم توضیح بدیم یک کتاب میشه و چیزی نیست که راحت بشه تو تالارها عنوان کرد ولی خلاصه بگم خدمتت که این زبان اولین بار برای طراحی سیستم عامل یونیکس نوشته شد و در تمام سیستم عاملها کامپایلرش موجوده , همچنین قدرت اصلی زبان سی به آزادی کار با حافظه ( چیزی که در جاوا و بیسیک کاملا" محدود شده ) و اشاره گر هاست و مورد مهم دیگه این زبان در ویندوز ارتباط راحت آن با توابع سیستمی و API هاست . نکته دیگه وجود اون تو هر سیستم عاملی هست و با توجه به اینکه perl و Python هم در اکثر سیستم عاملها قابل اجرا هستند میشه گفت که این دو با اینکه بسیار قدرتمند هستند برای مصارف سیستمی بکار نمی رند و بیشتر برای CGI های تحت وب و Socket programming مورد استفاده هستند . ولی سی یک زبان 100% سیستمی هست که برای همین مقصد هم طراحی شده و با یک نکته بیشتر به تفاوت این زبان پی می برید .

تا حالا کلمه Overflow رو شنیدین ؟؟ زمانی که محتوای یک متغیر در حافظه بیش از حد پر بشه محتویات از فضای اصلی خارج شده و به رجیستر ها مثل : ESP, Return address و غیره ریخته میشند و چون اونها هم شامل محتوایی خاص هستند (حاوی آدرس ادامه Return توابع در حافظه هستند ) محتواشون OverWrite میشه و اصطلاحا" Buffer Overflow اتفاق میفته .

این یک حفره امنینتی بسیار خطرناک محسوب میشه و اکثر حملات به سیستم عاملها (مثل باگ های معروف LSASS و PRC , ویندوز ) از این طریق هستند .
در یک زبانی مثل VB براحتی این حملات کنترل میشند و فقط برنامه متوقف شده و پیغام Overflow میده ولی در سی برنامه متوقف شده و خطای Segmentation Fault (در لینوکس مشهورتره ) داده میشه . این خطا سرچشمه حملات امنیتی .... حالا میتونیم بگیم VB از سی قوی تره ؟؟؟ خیر چون سی امکانات بیشتری به برنامه نویس برای کار با حافظه Buffer ها و غیره میده .

موارد دیگه ای هم هستند . مثل Raw Socket که بعد از مدت ها کامپوننتش به نام PocktX برای ویژوال بیسیک کاران نوشته شد در حالی که از خیلی قبل پیش در سی بوحود اومد . موارد دیگه ای هم هست که در اصول طراحی کامپایر ها و سیستم عامل بیشتر باهاش آشنا میشی (اگه علاقه داشته باشی Idea )

موفق باشید .
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
mostafa_cpp
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 24 دي 1384
تعداد ارسالها: 488
محل سكونت: تهران


3 شنبه 18 بهمن 1384 - 02:01
پاسخ بصورت نقل قول
نقل قول:
ببین دوست عزیز اول از همه خدمتت عرض کنم که C یک زبان سطح بالا هست نه سطح پایین (تفکر غلتی که بخاطر دشواری این زبان بهش تحمیل شده )


Shocked
C يك زبان سطح پايينه !
تقسيم بندي زبانها تنها بر سهولت استفاده از اونها نيست بلكه امكانات و قدرت زبان يكي از فاكتورهاي طبقه بندي سطح زبانهاست .

ولي اگه كمي واقع بينانه تر به قضيه نگاه كنيم ميشه سطحي به عنوان "سطح مياني" در نظر گرفت كه C و C++ جزو اين گروه قرار ميگيرند
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
sasan_dracula_59
در حال رشد
در حال رشد


تاريخ عضويت: 4 شنبه 6 مهر 1384
تعداد ارسالها: 65


3 شنبه 18 بهمن 1384 - 10:44
پاسخ بصورت نقل قول
<<>>


اين نامه توسط sasan_dracula_59 در 2 شنبه 15 خرداد 1385 - 23:54 ويرايش شده است.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
seyedof
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 1 شنبه 1 خرداد 1384
تعداد ارسالها: 274


3 شنبه 18 بهمن 1384 - 11:43
پاسخ بصورت نقل قول
سلام
یکی از دلایل محبوبیت سی سرعت بالای کد خروجی اوون است. کمپایلرهای سی بهتر از کمپایلرهای هر زبان دیگری میتونند کد ماشین بهینه تولید کنند. دلیلش ساختار ساده زبان سی و خلاصه بودن و حالت ریاضی گونه آن است. قواعد آن پیچیده نیست بنابراین کمپایل کد و بهینه کردن آن برای زبان سی ساده تر و بهتر انجام میشه.
تعداد دستورات زبان سی هم کم است و همونطور که گفتم یک فرمول و قاعده کلی داره. همین ساختار ریاضی گونه است که باعث میشه برنامه نویسان بعد از یادگیری به اوون دل ببندند و دیگه اوون رو رها نکنند. در سی از پیچیدگیها و گیردادنهای زبانهایی مثل پاسکال خبری نیست.
من خودم برنامه نویسی رو از کوییک بیسیک تحت داس شروع کردم بعد پاسکال کار کردم و خیلی هم نسبت بهش تعصب داشتم ولیکن از زمانی که سی رو یاد گرفتم دیگه دنبال هیچ زبان دیگری نرفتم.
ممنون علی
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
Sirus-v
کاربر اخراج شده


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 325


3 شنبه 18 بهمن 1384 - 15:18
پاسخ بصورت نقل قول
mostafa_cpp نوشته:
نقل قول:
ببین دوست عزیز اول از همه خدمتت عرض کنم که C یک زبان سطح بالا هست نه سطح پایین (تفکر غلتی که بخاطر دشواری این زبان بهش تحمیل شده )


Shocked
C يك زبان سطح پايينه !
تقسيم بندي زبانها تنها بر سهولت استفاده از اونها نيست بلكه امكانات و قدرت زبان يكي از فاكتورهاي طبقه بندي سطح زبانهاست .

ولي اگه كمي واقع بينانه تر به قضيه نگاه كنيم ميشه سطحي به عنوان "سطح مياني" در نظر گرفت كه C و C++ جزو اين گروه قرار ميگيرند


در مورد سطح پایین بودن سی که کلا" این نظریه رد می شه و هی منبع معتبری نمی تونه اینو تایید کنه . اما در مورد سطح میانی ( Middle level ) بله درسته . همیشه این اتفاق نظر بوده که سی یک زبان سطح میانی هست یا سطح بالا و البته دودستگی کاملا" مشهوده به هر حال ما اینو در نظر می گیریم که یک زبان سطح میانی باشه . این هم یک جمله معتبر از Herb Schildt که یکی از پر سابقه ترین برنامه نویسان سی هستند :

The definition of C as a middle-level language means that it
combines elements of high-level languages with the functionalism of assembly
language

امیدوارم دوستمون جوابشونو گرفته باشند Surprised
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
sasan_dracula_59
در حال رشد
در حال رشد


تاريخ عضويت: 4 شنبه 6 مهر 1384
تعداد ارسالها: 65


3 شنبه 18 بهمن 1384 - 16:40
پاسخ بصورت نقل قول
<<>>


اين نامه توسط sasan_dracula_59 در 2 شنبه 15 خرداد 1385 - 23:55 ويرايش شده است.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

نويسنده
پيغام
Sirus-v
کاربر اخراج شده


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 325


3 شنبه 18 بهمن 1384 - 22:02
پاسخ بصورت نقل قول
من طراح سیستم عامل نیستم ( علاقه ای هم ندارم ) و با مشکلات اساسیش آدم وقتی مواجه میشه که شروع به نوشتن بکنه . به هر حال این کامپایلرهای C++ هستند که زبان C رو هم ساپورت می کنند وگرنه دستورات اینها با هم تفاوت داره .
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
ncodes
بازی ساز
بازی ساز


تاريخ عضويت: 3 شنبه 23 اسفند 1384
تعداد ارسالها: 103


2 شنبه 29 اسفند 1384 - 11:05
پاسخ بصورت نقل قول
|- از زبان سی توی همه سیستم عامل ها میشه به راحتی استفاده کرد
|- خیلی از محدودیت هایی رو که بقیه زبان ها دارند سی نداره
|- یه زبان برنامه نویسی با استاندارد ANSI هست, یعنی از C# و vb و کلی دیگه مطمئن تر هست و دز انحصار یه شرکت نیست
|- با سی میشه کمپایلر بقیه زبان های برنامه نویسی رو ساخت
|- زبان های سی++ و جاوا هم بر اساس سی نوشته شده اند به همین دلیل هست که کمپایلر های سی++ و جاوا زبان سی رو هم کمپایل می کنند
|- کلمات/دستوارات اصلی زبان سی از سایر زبان های برنامه نویسی کمتر هست و نه که به کاراییی اون لطمه ای وارد نمیشه بلکه باعث قدرتمندتر شدنش شده
|- برنامه هایی که با سی نوشته شده اند تبدیلشون برای سیستم عامل دیگه آسون هست

دلیل اینکه در بخشی از ساخت سیستم عامل ها از سی++ و اسمبلی استفاده میشه این نیست که زبان سی نمی تونه اون کار رو انجام بده, دلیلش سواد برنامه نویس ها یا کارایی اون بخش هست. شما می تونید یه لیتر آب رو با چنگال یا با لیوان میل کنید!
چیز دیگه ای مونده؟

_________________
www.sysdap.com
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 1 از 1 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |