احسان
احسان

احسان یک اصطلاح عربی به معنی کمال یا برتریست که به نیکی (عربی: حُسن) (یا خِیر مخالف شر) مربوط می‌شود. این یک امر مهم از رسیدن به ایمان درونی شخصی و نشان دادن آن در کردار و رفتار است، یک حس مسئولیت اجتماعی که شخص را نسبت به ارتکاب جرم دینی (گناه) صبور نگاه می‌دارد. در اسلام احسان یک وظیفهٔ مسلمانی برای بدست آوردن کمال یا برتری در عبادت است؛





مانند مسلمانانی که خدا را چنان عبادت می‌کنند که انگار او را می بینند در حالی که آن ها نمی‌توانند او را ببینند (رسیدن به این باور که خدا از ماده ساخته نشده است.) آن ها مسلماً باور دارند که خدا دائما در حال نگاه کردن به آن هاست. این تعریف از یک حدیث می‌آید (که به عنوان حدیث جبرئیل شناخته شده است.) به طوری که محمد توضیح می‌دهد که، احسان پرستش خداست، آنچنان که انگار او را می بینی، و اگر تو نمی‌توانی او را ببینی، همانا او تو را می بیند. (مسلم بن الحجاج و محمد بخاری).

احسان به معنی انجام دادن چیزهای عالی، یکی از ابعد سه گانهٔ دین اسلام است: اسلام، ایمان و احسان. در مقابل تأکیدهای اسلام (کدام کار بهتر است انجام شود) و ایمان (چرا بهتر است انجام شود) عقیدهٔ احسان ابتدایی و همراه با قصد است. کسی که آنچه را عالیست انجام می‌دهد محسن نامیده می‌شود. این به طور معمول جا افتاده است که شخص می‌تواند به احسان درست با کمک و هدایت الله، کسی که بر همه چیز حکومت می‌کند، دست یابد.

برخی مکاتب اسلامی احسان را به عنوان ابعاد درونی اسلام توصیف می‌کنند در حالی که شریعت اغلب ابعد بیرونی را شرح می‌دهد.

در اول بحث بهتر است روشن شود که نه تنها هر مسلمانی مؤمن (جزو مؤمنین و مؤمنات) است، بلکه هر انسان مؤمنی یک مسلمان است. بعلاوه هر مسلمانی که به تمامی اصول اسلام اعتقاد دارد لزوما انسان نیکوکاری نیست. یک نیکی کننده (محسن)، جز یک شخص خوب و نیکوکار به طور صادقانه که هم یک مسلمان است و هم یک مومن حقیقیست، نیست.

احسان شکل بالاتری از عبادت را تشکیل می‌دهد که در کار و بازخودهای اجتماعی عالیست. برای مثال، احسان صداقت در نماز و شکرگذار والدین، خانواده و خداوند بودنِ مسلمان را شامل می‌شود.

این واژه در قرآن نیز آمده است:

إِنَّ اللّهَ یَأْمُرُ بِالْعَدْلِ وَالإِحْسَانِ وَإِیتَاء ذِی الْقُرْبَی وَیَنْهَی عَنِ الْفَحْشَاء وَالْمُنکَرِ وَالْبَغْیِ یَعِظُکُمْ لَعَلَّکُمْ تَذَکَّرُونَ (معنی: در حقيقت خدا به عدالت و نيكوكارى و بخشش به خويشاوندان فرمان مىدهد و از كار زشت و ناپسند و ستم باز مىدارد به شما اندرز مىدهد باشد كه پند گيريد )

هَلْ جَزَاء الْإِحْسَانِ إِلَّا الْإِحْسَانُ (معنی: آیا جزای نیکی جز نیکیست؟!)






نیکوکاری
Ensāndusti یا نیکوکاری (به انگلیسی: philanthropy) به اعمال یا اوقافی گویند که در راه اهداف بشردوستانه و برای مقاصد نیکوکاری انجام شده باشد.






در آمریکا

در آمریکا بخشش تاریخی دیرینه، و به صورت یک فرهنگ عامیانه مرسوم گشته‌است. بسیاری از دانشگاه‌های کنونی آمریکا یا توسط وقف‌های ارضی و مالی احداث شده‌اند، و یا توسط هدایای افراد خیّر به فعالیت‌های علمی خود ادامه می‌دهند.

در میان اعمال بخششی که در تاریخ آمریکا (به غیر از موارد فراوان موسسات آموزش عالی همانند تاسیس دانشگاه هاروارد) معروف می‌باشد، می‌توان به تاسیس ۱۰۵ کتابخانه عمومی توسط اندرو کارنگی، و اهدای ۲۰۰ میلیون دلاری به ان پی آر اشاره کرد. بسیاری از پارک‌های ملی آمریکا نیز (همانند پارک ملی گراند تیتون) توسط ثروتمندان و برای حفظ طبیعت و عموم خریداری شدند.

در سال ۲۰۱۰ میلادی، ۴۰ میلیاردر آمریکایی متعهد شدند لااقل نصف ثروت خود را برای مقاصد نیکوکاری و بشردوستانه به سازمان‌های غیرانتفاعی و ان جی او ببخشند. در میان این افراد خیّر می‌توان اسامی بیل گیتس، مایکل بلومبرگ، جورج لوکاس، وارن بافت، لری الیسون، پیر امیدیار، و پل آلن را دید.
یک رشته تحصیلی

امروزه در آمریکا، بخشش و اوقاف حتی یک رشته تحصیلی نیز می‌باشد که در سطوح دکترا و کارشناسی ارشد مدارک ارائه میدهد.






نگرش دین
اسلام

در ادیان الهی، و بطور نمونه فرهنگ اسلامی نیز زکات سابقه طولانی در میان پیروان این دین داشته است.






برخی از بزرگ‌ترین نیکوکاران جهان

در فهرست زیر، برخی از خیرترین افراد جهان نام برده شده است:

۳۱ میلیارد دلار از وارن بافت به بنیاد بیل و ملیندا گیتس
۹ میلیارد دلار از چاک فنی به بنیاد بشردوستی آتلانتیس
۲ میلیارد دلار از عظیم پریمجی به بنیاد عظیم پریمجی.
۵۰۰ میلیون دلار از تی بون پیکنز به دانشگاه ایالتی اوکلاهاما.
۵۰۰ میلیون دلار از والتر آننبرگ برای تعمیر مدارس دولتی در ایالات متحده.
۳۵۰ میلیون دلار (مبلغ ۷ میلیارد دلار در شرایط فعلی) از اندرو کارنگی در سال ۱۹۰۱ کسی که بیشتر ثروت خود را به کارهای خوب اختصاص داد. از کارها وی می‌توان به ساخت تالار کارنگی در نیویورک سیتی اشاره کرد.
۴۲۴ میلیون دلار از ریدرز دایجست به موزه متروپولیتن نیویورک.
۳۵۰ میلیون دلار از طرف مایکل جکسون کسی که بیشتر ثروتش را صرف امور نیکوکارانه برای مردم فقیر و کودکان بی‌بضاعت جهان کرد. او از ۳۹ جنبش خیرخواهانه پشتیبانی کرد و بنیاد خیریهٔ دنیا را التیام بده را تأسیس کرد و نامش به عنوان «نیکوکارترین فرد مشهور» در سال ۲۰۰۱ به کتاب گینس اضافه شد. به وصیت او، ۲۰ درصد از هر درآمدی که بعد از مرگش بدست آمد نیز باید به خیریه بخشیده شود.
۳۵۰ میلیون دلار از یارک بری.
۲۲۵ میلیون دلار از طرف ریموند و روت پرلمن، پدر و مادر رونالد او. پرلمن، به دانشکده پزشکی پنسیلوانیا در سال ۲۰۱۱.
۲۰۰ میلیون دلار از طرف جوآن بی. کروس به رادیوی عمومی ملی در سال ۲۰۰۳.
۱۰۰ میلیون دلار از جان دیویس راکفلر به بنیاد راکفلر در سال ۱۹۱۳ و ۱۹۱۴.
۱۰۰ میلیون دلار از طرف هنری و بتی روآن به کالج ایالتی گلسبرو

.





مهربانی
مهربانی به مجموعه اعمال و رفتاری گفته می‌شود که حاکی از ایثار، مدارا، قدرشناسی و احترام به دیگران است. مهربانی در بسیاری از فرهنگها و ادیان، ارزش به شمار می‌آید.






ایثار

ایثاردر لغت به معنی برگزیدن، عطاکردن، غرض دیگران را بر غرض خویش مقدم‌داشتن، منفعت غیر را بر مصلحت خود مقدم‌شمردن. در معنی اصطلاحی، نیز بدان معنی است که آدمی از روی قصد و نیت خیر، غیر را بر خود اختیار کند و او را بر خویشتن برگزیند. ایثار و دیگرگزینی عمل متعالی و اخلاقی است و در مقابل آن، استیثار و خودگزینی قرار دارد که جزو رذیلت‌های اخلاقی محسوب می‌گردد. ابوحفص می‌گوید: «الایثار أن تقدم حظوظ الاخوان علی حظک فی أمر آخرتک و دنیاک. (سلمی: 122)

در نگاه ظریف به ایثار، نوعی استکمال شعور انسانی در انتخابی برتر و آگاهانه دیده می‌شود و نه صرفاً هیجانی زودگذر و بروز یک احساس آنی که در مقابل نیاز دیگران به آدمی دست می‌دهد.







ابعاد ایثار

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

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






دیدگاه تکاملی

زیست شناسان اجتماعی، نوعدوستی را رفتاری می دانند که توفیق فرد انجام دهنده آن را در تولید مثل کاهش داده و این توفیق را در فرد دریافت کننده رفتار نوعدوستانه افزایش می دهد. طبق نظریه سنتی داروینی نوعدوستی نباید در طبیعت روی دهد زیرا طبق تعریف، فرایند انتخاب، علیه صفاتی عمل می کند که اثر آنها کاهش بازنمایی خود در نسل های بعدی است؛ با این حال، یک دسته رفتارهای نوعدوستانه در پستانداران وحشی و نیز در انسانها دیده می شود. نوعدوستی به یک معنا نوعی خودخواهی، منتها در سطح ژنی است، نه در سطح فردی. نمونه های شناخته شده نوعدوستی را در آن دسته زنبورها، زنبور عسل، و مورچه های ماده می بینیم که طبقه کارگر را در این انواع تشکیل می دهند. آنها عقیم اند و تولید مثل نمی‌کنند، امّا برای توفیق ملکه در تولید مثل، نوعدوستانه کار می کنند.

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






مدارا

رواداری، تسامح یا تلرانس یا مدارا، به «عمل عمدی‌ای گفته می‌شود، برای پذیرش یا اجازه دادن به چیزی که شخصاً قبول ندارد. کسی می‌تواند به شکل معنادار در مورد مدارا(پذیرفتن یا اجازه دادن) صحبت کند، که در موقعیتی باشد که بتواند نپذیرد یا اجازه ندهد.» این اصطلاح همچنین در معنای «تحمل و تاب‌اوردن» یا «پشتیبانی، حمایت یا نگه‌داشتن» (اندیشه‌ی متفاوت) هم تعریف شده است.

تساهل و تسامح از ارزش‌های مهم لیبرالیسم سیاسی است و به خصوصیت اخلاقی گفته می‌شود که بیانگر طرز برخورد با تمایلات، اعتقادات، عقاید و رفتار با دیگران است.

بنابراین اصل، آزادی‌های فردی تنها هنگامی از تعرض در امان می‌ماند که جامعه باورها و عقاید مختلف مردم ساکن در آن را تاب بیاورد و هیچ عقیده‌ای سرکوب نشود.






احترام

اِحتِرام احساسی مثبت از ارج نهادن و اعتنا به فرد یا شی‌ای است که فرد احترام‌گزارنده آن را سزاوار احترام می‌شمارد.

حرمت نهادن، نکوداشت، بزرگ داشتن، ارج نهادن و آزَرم برابرهایی برای احترام هستند.

فردی که به شخص یا چیزی احترام می‌گذارد، به آن شخص یا چیز توجه می‌کند و برای آن اندازه‌ای ارزش قائل می‌شود. این ارزش‌گذاری متعاقبا ممکن است خود را در رفتار و عملکرد احترام‌گذارنده نسبت به احترام‌یافته نمایان کند.

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

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

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

احترام با رعایت نیز تفاوت دارد. رعایت حداکثر سرعت توسط رانندگان یا رعایت آتش‌بس مورد توافق توسط دو گروه متخاصم ممکن است رعایت محض باشد و عنصر احترام در آن‌ها وجود نداشته باشد.






سنت، غریزه، ناچاری

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

فرد ممکن است در احترام قائل شدن برای شخص یا چیز دیگر به اشتباه بیفتد و شخص و شی مورد احترام کیفیت‌های خود را به شکل درست بازتاب نداده باشد یا احترام‌گزارنده در ارزش‌یابی کیفیات او به اشتباه افتاده باشد.

دریافت احترام از محیط پیرامون و افراد جامعه به این معنا است که فرد دریافت‌کننده احترام به احتمال زیاد نه تنها از «نیش‌ها» و تهدیدات احتمالی گروه احترام‌گزار در امان خواهد ماند بلکه ممکن است بتواند بر یاری این گروه در تامین امنیت اجتماعی و فردی خود نیز تا اندازه‌ای حساب کند. بنابر این غریزه بقا حکم می‌کند که افراد به طور معمول به دنبال کسب احترام باشند.

برخی افراد، امور و اشیا خطرناک یا نیرومندند و احترام گزاردن به آن‌ها ممکن است با ترس، ابهت دیدن، حفاظت از خود، یا تمکین همراه باشد. برخی افراد و امور دیگر بر ما حکم می‌رانند و پذیرفتن فرمان آن‌ها و پیروی از آن می‌تواند نشانه‌ای از احترام باشد.

فردی که برای فرد یا چیز دیگری احترام راستین قائل می‌شود ممکن است بکوشد آن فرد یا چیز را آنگونه که سزاوارش است ببیند و نه اینکه با عینک سود و زیان‌های شخصی خود به آن نگاه کند. بنابر این احترام گزاردن به فرد یا چیز با بی‌اعتنایی نسبت به او و فراموش کردن نام و نشان او در تضاد قرار دارد. به این خاطر برخی افراد یا گروه‌ها می‌کوشند حتی از طریق تهدید و خطرآفرینی در مرکز توجهات قرار بگیرند و این توجهات و فراموش نشدن‌ها را گونه‌ای احترام به خود به‌شمار می‌آورند.







بخشندگی
بخشندگی عادتِ دهش بدونِ انتظار جبرانِ آن از سوی طرفِ مقابل است. بخشندگی باعثِ بوجود آمدنِ سازمان‌هایی همچون سازمان خیریه، بنیاد و سازمان ناسودبر در جامعه می‌گردد.






بخشندگی در اسلام

در اسلام به بخشندگی سخاوت گفته می‌شود. سخاوت در لغت از ماده­ء "سَخو" به معنی جود و بخشش بوده و سَخی به معنی بخشنده است. بنابراین "سخاوت" در مقابل بخل بوده که در اصطلاح دینی به ملکهٔ بذلِ مال به مستحق، بدون درخواست سائل، به میزان شایسته، گفته می­شود. بخشندگی در اسلام -همچون دیگر ادیان- بسیار توصیه گشته است.






بخشندگی در مزدیسنا

در مزدیسنا داد و دهش (ترکیب عطفی، اِ مرکب) از اتباع عطا و بخشش، عدل و سخا است و از سوی اشوزرتشت برای باورمندانِ به مزدیسنا بسیار سفارش شده است. به دهشمند در مزدیسنا، سوشیانت نیز گفته می‌شود.

در این بینش، انسان با پیمودن راه عرفان بر آن است تا به اهورامزدا نزدیک شود و با همین انگیزه باید برخی از ویژگی‌های اهورایی را در خود پرورش دهد. یکی از ویژگی‌های اهورایی، بخشندگی و داد و دهشِ بی پایان است. از این رو هر فرد نیز با پرداختن به نیکوکاری و داد و دهش، خشنودی اهورامزدا و روان آفرینش را فراهم خواهد ساخت.






وقف
وقف سنتی اسلامی و به معنای هدیهٔ ابدی برای خدمت عمومی یا نگه داشتن اصل چیزی و جاری بودن منفعت آن در جهت خیر و نیکی و رضای خدااست. به تعریف دقیق(ماده ۵۵ قانون مدنی) وقف عبارت است از این‌که «عین مال حبس و منافع آن تسبیل شود.» . جمع این واژه اوقاف است و به مال و زمین وقف شده، موقوفه گفته می‌شود. وقف از جمله عقود معینی است که در فقه اهل سنت و امامیه از اعتبار خاصی برخوردار است.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 6:37 am
نوع گذاری ایستا و متحرک

در نوع گذاری ایستا تمام عبارات نوع‌های خود را قبل از اجرای برنامه تعیین می‌کنند(معمولاً در زمان کامپایل). برای مثال، ۱ و (۲+۲) عبارات عددی هستند؛ آنها نمی‌توانند به تابعی که نیاز به یک رشته دارد داده شوند، یا در متغیری که تعریف شده تا تاریخ را نگه دارد، ذخیره شوند.





زبان‌های نوع گذاری شده ایستا می‌توانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوع‌ها را در جایگاه‌های منتنی مشخص می‌نویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریف‌ها را بر اساس متن استنباط می‌کند. غالب زبان‌های مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری می‌شوند



نوع گذاری قوی و ضعیف

نوع گذاری ضعیف این امکان را ایجاد می‌کند که با متغیری به جای متغیری دیگر برخورد شود، برای مثال رفتار با یک رشته به عنوان یک عدد. این ویژگی بعضی اوقات ممکن است مفید باشد، اما ممکن است باعث ایجاد برخی مشکلات برنامه شود که موقع کامپایل و حتی اجرا پنهان بمانند.

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را می‌دهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل می‌کند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشته‌ای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان می‌کنند.

قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض می‌شوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار می‌برند و منظورشان قوی، ایستایی نوع گذاری شده‌است، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شده‌است. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.



معناشناسی اجرا

وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیات‌ها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین می‌کند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.

برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی می‌شوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا می‌کنند.


کتابخانه هسته
اغلب زبان‌های برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده می‌شوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازی‌های زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتم‌ها، داده ساختارها و مکانیزم‌های ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار می‌کنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هسته‌ای را مشخص می‌کنند که باید در تمام پیاده سازی‌ها موجود باشند، و در زبان‌های استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبان‌ها به گونه‌ای تعریف شده‌اند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونه‌ای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونه‌ای از کلاس BlockContext کتابخانه می‌سازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان می‌باشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمی‌کنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.


عمل
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامه نویسی را در عمل ممکن سازند و کنترل کنند. مهمترین این مصنوعات خصوصیات و پیاده سازی‌های زبان هستند.



خصوصیات

یک زبان برنامه نویسی باید تعریفی فراهم کند که کاربران و پیاده کننده‌های زبان می‌توانند از آن استفاده کنند تا مشخص کنند که رفتار یک برنامه درست است. با داشتن کد منبع: خصوصیات یک زبان برنامه نویسی چندین قالب می‌تواند بگیرد، مانند مثال‌های زیر:

تعریف صریح دستور، معناشناسی ایستا، ومعناشناسی اجرای زبان. درحالیکه دستور معمولاً با یک معناشناسی قراردادی مشخص می‌شود، تعاریف معناشناسی ممکن است در زبان طبیعی نوشته شده باشند (مثل زبان C)، یا معناشناسی قراردادی(مثل StandardML ,Scheme)
توضیح رفتار یک مترجم برای زبان(مثل C,fortran). دستور و معناشناسی یک زبان باید از این توضیح استنتاج شوند، که ممکن است به زبان طبیعی یا قراردادی نوشته شود.
پیاده سازی منبع یا مدل. گاهی اوقات در زبان‌های مشخص شده(مثل: prolog,ANSI REXX).دستور و معناشناسی صریحاً در رفتار پیاده سازی مدل موجودند.


پیاده سازی

پیاده سازی یک زبان برنامه نویسی امکان اجرای آن برنامه را روی پیکربندی مشخصی از سخت‌افزار و نرم‌افزار را فراهم می‌کند. بطور وسیع، دو راه رسیدن به پیاده سازی زبان برنامه نویسی وجود دارد. کامپایل کردن و تفسیر کردن. بطور کلی با هر بک از ابن دو روش می‌توان یک زبان را پیاده سازی کرد.

خروجی یک کامپایلر ممکن است با سخت‌افزار و یا برنامه‌ای به نام مفسر اجرا شود. در برخی پیاده سازی‌ها که از مفسر استفاده می‌شود، مرز مشخصی بین کامپایل و تفسیر وجود ندارد. برای مثال، برخی پیاده سازی‌های زبان برنامه نویسی بیسیک کامپایل می‌کنند و سپس کد را خط به خط اجرا می‌کنند.

برنامه‌هایی که مستقیماً روی سخت‌افزار اجرا می‌شوند چندین برابر سریعتر از برنامه‌هایی که با کمک نرم‌افزار اجرا می‌شوند، انجام می‌شوند.

یک تکنیک برای بهبود عملکرد برنامه‌های تفسیر شده کامپایل در لحظه آن است. در این روش ماشین مجازی، دقیقاً قبل از اجرا، بلوک‌های کدهای بایتی که قرار است استفاده شوند را برای اجرای مستقیم روی سخت‌افزار ترجمه می‌کند.



تاریخچه
پیشرفت‌های اولیه

اولین زبان برنامه نویسی به قبل از رایانه‌های مدرن باز می‌گردد. قرن ۱۹ دستگاه‌های نساجی و متون نوازنده پیانو قابل برنامه نویسی داشت که امروزه به عنوان مثال‌هایی از زبان‌های برنامه نویسی با حوزه مشخص شناخته می‌شوند. با شروع قرن بیستم، پانچ کارت‌ها داده را کد گذاری کردند و پردازش مکانیکی را هدایت کردند. در دهه ۱۹۳۰ و ۱۹۴۰، صورت گرایی حساب لاندای آلونزو چرچ و ماشین تورینگ آلن تورینگ مفاهیم ریاضی بیان الگوریتم‌ها را فراهم کردند؛ حساب لاندا همچنان در طراحی زبان موثر است.

در دهه ۴۰، اولین رایانه‌های دیجیتال که توسط برق تغذیه می‌شدند ایجاد شدند. اولین زبان برنامه نویسی سطح بالا طراحی شده برای کامپیوتر پلانکالکول بود، که بین سال‌های ۱۹۴۵ و ۱۹۴۳ توسط کنراد زوس برای ز۳ آلمان طراحی شد.

کامپیوترهای اوایل ۱۹۵۰، بطور خاص ÜNIVAC ۱ و IBM ۷۰۱ از برنامه‌های زبان ماشین استفاده می‌کردند. برنامه نویسی زبان ماشین نسل اول توسط نسل دومی که زبان اسمبلی نامیده می‌شوند جایگزین شد. در سال‌های بعد دهه ۵۰، زبان برنامه نویسی اسمبلی، که برای استفاده از دستورات ماکرو تکامل یافته بود، توسط سه زبان برنامه نویسی سطح بالا دیگر: FORTRAN,LISP , COBOL مورد استفاده قرار گرفت. نسخه‌های به روز شده این برنامه‌ها همچنان مورد استفاده قرار می‌گیرند، و هر کدام قویا توسعه زبان‌های بعد را تحت تاثیر قرار دادند. در پایان دهه ۵۰ زبان algol ۶۰ معرفی شد، و بسیاری از زبان‌های برنامه نویسی بعد، با ملاحظه بسیار، از نسل algol هستند. قالب و استفاده از زبان‌های برنامه نویسی به شدت متاثر از محدودیت‌های رابط بودند.



پالایش

دوره دهه ۶۰ تا اواخر دهه ۷۰ گسترش مثال‌های عمده زبان پرکاربرد امروز را به همراه داشت. با این حال بسیاری از جنبه‌های آن بهینه سازی ایده‌های اولیه نسل سوم زبان برنامه نویسی بود:

APL برنامه نویسی آرایه‌ای را معرفی کرد و برنامه نویسی کاربردی را تحت تاثیر قرار داد.
PL/i(NPL) دراوایل دهه ۶۰ طراحی شده بود تا ایده‌های خوب فورترن و کوبول را بهم پیوند دهد.
در دهه ۶۰، Simula اولین زبانی بود که برنامه نویسی شئ گرا را پشتیبانی می‌کرد، در اواسط دهه۷۰. Smalltalk به دنبال آن به

عنوان اولین زبان کاملاً شئ گرا معرفی شد.

C بین سال‌های ۱۹۶۹ تا ۱۹۷۳ به عنوان زبان برنامه نویسی سیستمی طراحی شد و همچنان محبوب است.
Prolog، طراحی شده در ۱۹۷۲، اولین زبان برنامه نویسی منطقی بود.
در ۱۹۷۸ ML سیستم نوع چند ریخت روی لیسپ ایجاد کرد، و در زبان‌های برنامه نویسی کاربردی ایستا نوع گذاری شده پیشگام شد.

هر یک از این زبان‌ها یک خانواده بزرگ از وارثین از خود به جای گذاشت، و مدرنترین زبان‌ها از تبار حداقل یکی از زبان‌های فوق به شمار می‌آیند.

دهه‌های ۶۰ و ۷۰ مناقشات بسیاری روی برنامه نویسی ساخت یافته به خود دیدند، و اینکه آیا زبان‌های برنامه نویسی باید طوری طراحی شوند که آنها را پشتیبانی کنند.

"ادسگر دیکسترا" در نامه‌ای معروف در ۱۹۶۸ که در ارتباطات ACM منتشر شد، استدلال کرد که دستورgoto باید از تمام زبان‌های سطح بالا حذف شود.

در دهه‌های ۶۰ و ۷۰ توسعهٔ تکنیک‌هایی صورت گرفت که اثر یک برنامه را کاهش می‌داد و در عین حال بهره وری برنامه نویس و کاربر را بهبود بخشید. دسته کارت برای ۴GL اولیه بسیار کوچکتر از برنامهٔ هم سطح بود که با ۳GL deck نوشته شده بود.




یکپارچگی و رشد

دهه ۸۰ سال‌های یکپارچگی نسبی بود. C++ برنامه نویسی شئ گرا و برنامه نویسی سیستمی را ترکیب کرده بود. ایالات متحده ایدا(زبان برنامه نویسی سیستمی که بیشتر برای استفاده توسط پیمان کاران دفاعی بود) را استاندارد سازی کرد. در ژاپن و جاهای دیگر، هزینه‌های گزافی صرف تحقیق در مورد زبان نسل پنجم می‌شد که دارای ساختارهای برنامه نویسی منطقی بود. انجمن زبان کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. به جای ایجاد مثال‌های جدید، تمام این تلاش‌ها ایده‌هایی که در دهه‌های قبل حلق شده بودند را بهتر کرد.

یک گرایش مهم در طراحی زبان در دهه ۸۰ تمرکز بیشتر روی برنامه نویسی برای سیستم‌های بزرگ از طریق مدول‌ها، و یا واحدهای کدهای سازمانی بزرگ مقیاس بود. مدول-۲، ایدا. و ML همگی سیستم‌های مدولی برجسته‌ای را در دهه ۸۰ توسعه دادند. با وجود اینکه زبان‌های دیگر، مثل PL/i، پشتیبانی بسیار خوبی برای برنامه نویسی مدولی داشتند. سیستم‌های مدولی غالباً با ساختارهای برنامه نویسی عام همراه شده‌اند.

رشد سریع اینترنت در میانه دهه ۹۰ فرصت‌های ایجاد زبان‌های جدید را فراهم کرد. Perl، در اصل یک ابزار نوشتن یونیکس بود که اولین بار در سال ۱۹۸۷ منتشر شد، در وب‌گاه‌های دینامیک متداول شد. جاوا برای برنامه نویسی جنب سروری مورد استفاده قرار گرفت. این توسعه‌ها اساساً نو نبودند، بلکه بیشتر بهینه سازی شده زبان و مثال‌های موجود بودند، و بیشتر بر اساس خانواده زبان برنامه نویسی C بودند. پیشرفت زبان برنامه نویسی همچنان ادامه پیدا می‌کند، هم در تحقیقات و هم در صنعت. جهت‌های فعلی شامل امنیت و وارسی قابلیت اعتماد است، گونه‌های جدید مدولی(mixin، نماینده‌ها، جنبه‌ها) و تجمع پایگاه داده.

۴GLها نمونه‌ای از زبان‌هایی هستند که محدوده استفاده آنها مشخص است، مثل SQL. که به جای اینکه داده‌های اسکالر را برگردانند، مجموعه‌هایی را تغییر داده و بر می‌گردانند که برای اکثر زبان‌ها متعارفند. Perl برای مثال، با "مدرک اینجا" خود می‌تواند چندین برنامه ۴GL را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.




سنجش استفاده از زبان

مشکل است که مشخص کنیم کدام زبان برنامه نویسی بیشتر مورد استفاده‌است، و اینکه کاربرد چه معنی می‌دهد با توجه به زمینه تغییر می‌کند. یک زبان ممکن است زمان بیشتری از برنامه نویس بگیرد، زبان دیگر ممکن است خطوط بیشتری داشته باشد، و دیگری ممکن است زمان بیشتری از پردازنده را مصرف کند. برخی زبان‌ها برای کاربردهای خاص بسیار محبوبند. برای مثال: کوبول همچنان در مراکزداده متحد، غالباً روی کامپیوترهای بزرگ توانا است؛ fortran در مهندسی برنامه‌های کاربردی، C در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

شمارش تعداد تبلیغات شغلی که از آن زبان نام می‌برند.
تعداد کتاب‌های آموزشی و شرح دهندهٔ آن زبان که فروش رفته‌است.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبان‌هایی را که در جستجوها کمتر پیدا می‌شوند دست کم گرفته شوند.
شمارش ارجاع‌های زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.

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

این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر می‌کند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق می‌کند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.

در نگاه کلی، زبان‌های برنامه نویسی به مثال‌های برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم می‌شوند. مثال‌ها شامل برنامه نویسی رویه‌ای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبان‌ها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبان‌های برنامه نویسی ممکن است همه منظوره باشند، زبان‌های برنامه نویسی سیستمی، زبان‌های اسکریپتی، زبان‌های محدوده مشخص، زبان‌های همزمان/ گسترده(و یا ترکیب اینها). برخی زبان‌های همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شده‌اند.

یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثال‌های برنامه نویسی دسته بندی شود. برای مثال، غالب زبان‌های برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده می‌کنند، در حالیکه تعداد کمی این کار را نمی‌کنند. سایر زبان‌ها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
ساعت : 6:37 am | نویسنده : admin | بهینه سازهای وب | مطلب قبلی
بهینه سازهای وب | next page | next page