PDA

View Full Version : native چیست؟



1485159
دوشنبه 19 مرداد 1388, 22:53 عصر
من یه سوال دارم که اصلا مفهومشو نمیدونم...
یعنی فقط مخصوص ویندوز هستن؟(زبان های برنامه نویسی نتیو).

vcldeveloper
سه شنبه 20 مرداد 1388, 01:03 صبح
نه، ربطی به ویندوز نداره. کد Native یعنی کدی که برای یک خانواده خاص از سخت افزار تولید شده، مثلا کدی که برای خانواده x86 تولید شده. البته هر سیستم عامل برای اجرای کد بر روی خودش یک سری قوانین و استانداردهایی داره که کامپایلری که برای آن سیستم عامل کد تولید میکنه باید آنها را رعایت کنه تا کد تولید شده توسط سیستم عامل مربوطه قابل اجرا باشه.
نمونه کدهای Native کدی هست که با کامپایلر دلفی یا C یا ++C یا اسمبلی و امثالهم تولید میشه.

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

1485159
سه شنبه 20 مرداد 1388, 01:34 صبح
نه، ربطی به ویندوز نداره. کد Native یعنی کدی که برای یک خانواده خاص از سخت افزار تولید شده، مثلا کدی که برای خانواده x86 تولید شده. البته هر سیستم عامل برای اجرای کد بر روی خودش یک سری قوانین و استانداردهایی داره که کامپایلری که برای آن سیستم عامل کد تولید میکنه باید آنها را رعایت کنه تا کد تولید شده توسط سیستم عامل مربوطه قابل اجرا باشه.
نمونه کدهای Native کدی هست که با کامپایلر دلفی یا C یا ++C یا اسمبلی و امثالهم تولید میشه.

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

خوب حالا کدوم یکی بهتره؟

Saeed_m_Farid
سه شنبه 20 مرداد 1388, 16:54 عصر
خوب حالا کدوم یکی بهتره؟
بعد اونهمه توضیحات آقای کشاورز، به نکته خیلی جالبی اشاره کردی :قهقهه::لبخند::قهقهه:
بهتر از همه خود شمایید که دارید از این همه صبر استفاده می کنید ...

nouri2015
چهارشنبه 21 مرداد 1388, 10:30 صبح
یه جستجوی در google شما را به این لینک راهنمائی می کند که اگر ترجمه کنید به توضیحات گفته شده بالا می رسید.
http://searchsoa.techtarget.com/sDefinition/0,,sid26_gci871064,00.html

p_ooya
چهارشنبه 21 مرداد 1388, 12:23 عصر
بعد اونهمه توضیحات آقای کشاورز، به نکته خیلی جالبی اشاره کردی :قهقهه::لبخند::قهقهه:
علیرغم این خنده شیرین شما (:قلب:)، نمیشه به طور قطع گفت که کدوم یکی بهتر از دیگریست (لااقل در یک مورد خاص). مثلاً جاوا، از اونجایی که باید bytecode توسط ماشین مجازی اجرا بشه، یه مقداری کنده. در واقع مشکل اصلی همین سرعته. در اکثر مواقع (مطمئن نیستم بگم "همیشه") سرعت برنامه هایی که با زبان های native نوشته شده اند بیشتر از نمونه های مشابه در برنامه هایی هست که با زبانهای managed نوشته شده اند. لذا در مواردی که سرعت مطرحه، c می تونه انتخاب بهتری نسبت به جاوا باشه.
و یک سوال : من قبلاً برای آنچه که آقای کشاورز ازش به عنوان managed یاد کردند، عبارت cross platform رو بکار می بردم. آیا این اشتباهه؟

Sepidar
چهارشنبه 21 مرداد 1388, 15:58 عصر
مثل خیلی از مفاهیم، cross platform هم میتونه معانی مختلفی داشته باشه. اگه منظور کراس پلتفرم بودن کد کامپایل شدست، حرفتون درسته.

nazi jon
پنج شنبه 27 آذر 1393, 00:40 صبح
سلام.من میخوام کلا در مورد این زبان تحقیق کنم.میشه راهنماییم کنید که باید از کجا شروع کنم تا بتونم کامل این زبان و یاد بگیرم؟

یوسف زالی
پنج شنبه 27 آذر 1393, 00:45 صبح
سلام ورود شما رو به سایت تبریک می گم.
در این خصوص کمی جستجو کنید، در همین تالار پست های مشابه زیاده.
دقیقا در چه موردی می خواهید اطلاعات به دست بیارید؟
بصورت موردی و واضح موارد رو مشخص کنید، جستجو کنید، اگر چیزی پیدا نکردید تاپیک ایجاد کنید تا دوستان راهنمایی کنند.