تاریخ

یکی از اولین کتاب‌هایی که مستقلاً به علم اخلاق پرداخته است کتاب اخلاق نیکوماخوس اثر ارسطو است.
ارتباط اخلاق با علوم دیگر

جایگاه اخلاق در نقشهٔ علم، در انتهاست

دسته بندی علوم توسّط خواجه نصیر الدین طوسی در آغاز کتاب اخلاق ناصری، جایگاه علم اخلاق را در بین سایر علوم چنین آورده:






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







وابستگی

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






پیش درآمدی

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

علم اخلاق بعضی از مبادی دو علم تدبیر منزل و سیاست مدن را نیز تأمین می‌کند.






شاخه‌های اخلاق

اخلاق به سه شاخهٔ کاملاً مجزا تقسیم می‌شود∗:

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

اخلاق عملی یا تربیت اخلاقی∗ فنی ست برای رسیدن از وضعیت مطلوب ناموجود به وضعیّت موجود مطلوب در اخلاق. از این نظر اخلاق اساس معنویت است؛ و انسانی که اخلاقی تر است، معنوی تر نیز هست∗. همچنین این قسم از اخلاق یک فن است. از مهمترین مسائل مطرح در این حوزه می‌توان به موارد زیر اشاره کرد:
شناخت و استفاده از مبادی رفتار
مبادی رفتار از نظر علمای پیشین از این قرار است: تصور + تصدیق∗ به فایده + شوق موءکد.
روان شناسان معصر ترکیب مشابه دیگری را پیش رو نهاده‌اند: شناخت + انگیزش + توان عملی.






روش ایجاد و از بین بردن صفات اخلاقی

اخلاق در اسلام

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






توضیحات

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







درستکاری

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

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

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





فرااخلاق

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

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

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





فلسفه اخلاق

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

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






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

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

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






مسائل

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






خیر و شر

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

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

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






درست و نادرست

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

برخی اوقات مفهوم «درست و نادرست» با مفهوم «مخالف و موافق قانون» اشتباه گرفته می شود. این دو مفهوم کاملاً از هم متفاوتند؛ ممکن است قوانینی وجود داشته باشد که چیزی که ندرست نیست را ممنوع سازد و یا امری نادرست را الزام کند. وقتی ما قادریم ساختارهایی مثل آن چه گفته شد را در ذهن خود بسازیم و بفهمیم معلوم می‌شود که ایده‌های درستی متفاوت از ایده‌های قانونی هستند. زیرا ما به واسطه ایده‌های درستی می توانیم قوانین را نیز مورد ارزیابی قرار دهیم.

عده ای از متفکران فلسفه اخلاق معتقدند که درستی و نادرستی امری نسبی است. اینان استناد می کنند بر تأثیر زمان و مکان بر درستی و نادرستی امور و یا بستگی درستی امور به شرایط. اما این استنتاج غلط است؛ گزاره‌های مذکور به معنای نسبی بودن بنیان اخلاقیات نیست بلکه به این معناست که اصول بنیادین اخلاق در شرایط مختلف اعمال متفاوتی را ایجاب می کند. یعنی ما بنیاد محکمی برای اخلاق داریم که بر آن ساختمانی نسبی ساخته شده است.
4:15 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 هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.
ساعت : 4:15 pm | نویسنده : admin | مطلب قبلی | مطلب بعدی
مای اف | next page | next page