وقف در قرآن و احادیث

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





در اکثر قریب به اتفاق احادیث نیز لفظ وقف به کار برده نشده است اما برای تشویق مردم به آن روایات و حدیث‌های متعددی موجود است و ثواب‌های فراوانی برای کسانی که به انجام آن همت بگمارند وعده داده شده است. یکی از این احادیث حدیث «صدقهٔ جاریه» است که در جواهر آمده: در مسالک است و از تذکره نیز حکایت شده و در مهذب‌البارع و تنقیح هم آمده که علماء فرموده‌اند: مراد از صدقه جاریه همان وقف است.






اهمیت وقف در اسلام

یکی از خصوصیات انسان مومن تخصیص دادن قسمتی از مالش برای نیازمندان است «و فی اموالهم حق معلوم* للسائل والمحروم». یکی از بهترین نوع تخصیص مال، وقف است که انسان مومن قسمتی از مالش را در جهت رفع مشکل موسسه‌های خدمات رسانی به اجتماع و نیازمندان وقف می‌کند که دائماً صرف آن شود.






پیشینه در ایران

در اواخر شاهنشاهی ساسانیان بنیادهای نیکوکاری به منظور رستگاری روان در ایران بنیاد شد که پول آن صرف کمک به تنگدستان و احداث تأسیسات عام‌المنفعه می‌شد. همین بنیادها بعدها الگویی برای وقف اسلامی شدند.

در ایران در تشکیلات اداری دورهٔ سامانیان (۲۶۱ – ۳۸۹ هجری) از دیوان موقوفات و یا دیوان اوقاف نام برده شده که کار آن رسیدگی به امور مساجد و اراضی موقوفه بوده‌است.






شرایط وقف

برای انعقاد وقف به جز «شرایط اساسی صحت قراردادها» شرایط خاصی ضروری می‌باشد که عبارت‌اند از:

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







هدیه

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

هدیه می‌تواند هر چیزی باشد که سبب خشنودی دیگری شود یا از غمش کاسته شود، به‌ویژه خدمتی چون بخشندگی یا مهربانی.






مناسبت‌ها

مردم سراسر جهان به مناسبت‌های گوناگون هدیه می‌دهند یا می‌گیرند، از جمله به مناسبت‌های:

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






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





همدلی

همدلی یا هم‌احساسی توانایی درک و اشتراک احساس دیگران با مشاهده وضع حال و هیجان‌های آنان است.
واژه‌شناسی

واژهٔ انگلیسی Empathy نخستین بار در سال ۱۹۰۹ توسط ادوارد بردفورد تیچنر استفاده شد که به منظور ترجمه واژه آلمانی Einfühlungsvermögen ابداع شده بود. در اواخر قرن ۱۹ میلادی پدیده جدیدی توسط تئودور لیپس کشف شد که آن را از انگلیسی به آلمانی Empathie ترجمه کردند که هنوز در آن کشور استفاده می‌شود.





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





فلسفه اخلاق

فلسفه اخلاق شاخه‌ای است از فلسفه که به استدلال درباره پرسش‌های بنیادین اخلاقیات می‌پردازد. درستی و نادرستی امور، شناخت امور خیر و شر، و باز شناسی فضایل، مسائل بنیادین اخلاق را تشکیل می‌دهند. پرسش از این مسائل بنیادین منجر به شکل‌گیری دو حوزه نظری می‌شود: فرا اخلاق و اخلاق هنجاری؛ فلسفه اخلاق این دو حوزه را شامل می‌شود.

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






تاریخچه

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

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

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

فلسفه اخلاق مانند هر شاخه دیگری از فلسفه، برای پاسخ دادن به سؤالات پیش رویش به تبیین و توضیح پاره ای مسائل می پردازد. این مسائل می توانند مخصوص اخلاق باشند و یا می توانند مسائلی باشند که هم در اخلاق و هم در علوم دیگر مورد بررسی است. اصولاً فلسفه اخلاق رابطه نزدیکی با فلسفه سیاسی، فلسفه حقوق، جامعه شناسی و روان شناسی دارد؛ در نتیجه بعضی از مسائل فلسفه اخلاق مسائل حوزه‌های مذکور نیز هستند.






خیر و شر

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

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

خیر می تواند به واسطه روابط علّی، هنجاری و مفهومی با درستی در ارتباط باشد. با این حال امکان عدم رابطه میان این دو مفهوم نیز وجود دارد. تبیین روابط خیر و درستی نیز در نظریات مختلف به اشکال مختلف بیان شده است.






اخلاق

علم اخلاق شاخه‌ای از علوم انسانی∗ است که موضوع آن شناخت مصادیق ارزش ها و بیانگر راه های کسب فضائل و ترک رذائل اخلاقی است. در فلسفه اخلاق دربارهٔ خوب یا بد بودن یک امر چند گرایش وجود دارد. یک گرایش تنها در صورتی یک امر را خوب می‌داند که نتیجه‌(ها)یی دلخواه به همراه داشته باشد(نتیجه گرایی/پیامدگرایی/غایت گروی) اما گرایشی دیگر بدون رد نتیجه‌های دلخواه خوب بودن یک امر را ذاتی می‌داند (وظیفه گرایی). برخی از ادیان گرایش دوم در اخلاق را پذیرفته و ادعا می نمایند. در اخلاق دین‌مدار این نتیجه‌ها ممکن است در جهان دیگر که فرامادی است نیز اتفاق بیافتند اما در اخلاق نا-دین‌مدار رخداد نتیجه‌های دلخواه برای مثلا جامعهٔ انسانی تنها در جهان مادی مد نظر است. در این اخلاق ریز الگوهای اخلاقی و این‌که چه اموری نتیجه‌هایی دلخواه برای مثلا جامعهٔ انسانی دارند، ممکن است با اجماع روانشناسان و جامعه‌شناسان برجسته تعیین شود نه متولیان دین.






واژه‌شناسی

اخلاقیات در دو زمینه به کار می روند،اوّل: تمییز فردی (خوب از بد) و دوم: روش‌های رفتاری که گاه به عنوان «عرف رفتاری» نهادینه شده در یک گروه فرهنگی، مذهبی، اجتماعی یا فلسفی شناخته می شود. اخلاقیات فردی با اهداف درست یا غلط، انگیزه‌ها یا اعمال تعریف و تمییز داده می شوند؛ اهدافی که آموخته شده اند، ایجاد شده اند و یا از طرف اشخاصی که در گروه هستند، توسعه یافته اند.

در زبان فرانسه واژه اخلاقیات به معنای آداب و رسوم نیز به کار می رود. تعریف فرهنگ لاروس (le Petit Larousse) از اخلاقیات:

Morale به لاتین (mores, mœurs):

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

همچنین فرهنگ فرانسه روبر (Le Petit Robert) اینگونه تعرف شده است: اخلاقیات: علم خوبی و بدی، اصول رفتار؛ تئوری رفتار انسانی به مثابه تکالیفی برای رسیدن به خوبی.

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

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

از دیدگاه زبان عامی و فنی اخلاق به سه معنی به کار می‌رود∗

خُلق یعنی خوی، طبع، سجیه، عادت∗، و جمع آن اخلاق است.
صفت اخلاقی: عامل انجام یک عمل اخلاقی در شرایط خاص، به طور ناخودآگاه و شرطی∗ مثل بخشندگی و دروغگویی
عمل اخلاقی: آن نوع عمل که بتوان در مورد خوب یا بد بودن آن قضاوت کرد. می‌تواند آگاهانه یا بی اختیار و عادتی(در اثر یک خلق) باشد . مثل یک بار بخشیدن و دروغ گفتن و ...
12:55 pm
کاربرد

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





زبان‌های برنامه نویسی با غالب زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها "دقیقاً آنچه که به آنها گفته شده را انجام می‌دهند." و نمی‌توانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بوده‌است] البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می‌کند. برنامه‌های یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامه‌ها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامه‌ای استفاده می‌شود، زبان اسکریپت می‌گویند. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آنها متوقف شده‌است. با وجود اینکه تلاش‌هایی برای طراحی یک زبان رایانه" کامل" شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود:

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

یک سیر رایج در گسترش زبان‌های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همانطور که زبان‌های برنامه نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورات سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آنها می‌تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را می‌دهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازنده‌های زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبان‌های اختصاصی برنامه نویسی پیشنهاد شده‌اند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.



المان‌ها
تمام زبان‌های بزنامه نویسی تعدادی بلوک‌های ابتدایی برای توضیح داده و پردازش یا تبدیل آنها(مانند جمع کردن دو عدد با انتخاب یک عضو از یک مجموعه)دارند. این " عناصرابتدایی" بوسیله قوانین معناشناسی و دستوری تعریف می‌شوند که ساختار و معنای مربوطه را توضیح می‌دهند.
دستور(
syntax)

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

دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف می‌شوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص می‌کند:

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

"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثال‌هایی هستند از دنباله‌های خوش فرم در این گرامر.

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

به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:

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

این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام می‌دهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);

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




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


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

یک زبان نوع گذاری شده‌است اگر مشخصات هر عملیات، نوع داده‌های قابل اجرا توسط آن را با نشان دادن نوع‌هایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشته‌است. در غالب زبان‌های برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبان‌های برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامه‌ها رد کنند. در برخی زبان‌ها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامه‌ها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبان‌های نوع دار زبان‌های تک نوعند. این زبان‌ها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشته‌های کاراکتری که هم برای داده‌های عددی و هم برای داده‌های سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبان‌های اسمبلی، این امکان را می‌دهد که هر عملیاتی روی هر داده‌ای انجام شود، که معمولاً دنباله‌ای از بیت‌ها با طول‌های متفاوت در نظر گرفته می‌شوند. زبان‌های سطح بالا که بی نوع هستند شامل زبان‌های ساده رایانه‌ای و برخی از انواع زبان‌های نسل چهارم.

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




نوع گذاری ایستا و متحرک

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





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



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

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

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

قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض می‌شوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار می‌برند و منظورشان قوی، ایستایی نوع گذاری شده‌است، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شده‌است. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.
ساعت : 12:55 pm | نویسنده : admin | مطلب قبلی | مطلب بعدی
مای اف | next page | next page