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

علومی که به شناخت موجودات میپردازند
نظری: وجود موضوع آنها وابسته به حرکت ارادی انسان است.
ما بعد الطبیعه: موضوعشان مجرد از ماده
ریاضی
۴ قسم
طبیعی
۸ قسم
عملی: وجود موضوع آنها مستقل از حرکت ارادی انسان است «این علوم دانش به مصالح حرکات ارادی و افعال صناعی انسان هستند، به گونهای که احوال آنها را سازمان دهند و آنان را به کمال شایسته شان برساند.»
تهذیب اخلاق: در مورد امور فردی بحث میکند
تدبیر منزل: مربوط به گروه کوچکی که
سیاست مدن: مربوط به جمعی است که در شهر، مملکت و مانند آن زندگی میکنند
وابستگی
علم اخلاق مبادی اش را از علوم منطق، مابعدالطّبیعه(یعنی فلسفه) برای مبادی هستی شناختی، و علمالنّفس(انسان شناسی) و روانشناسی میگیرد. شاخهای از اخلاق که عهده دار تامین مبادی اخلاق است فرا اخلاق نام دارد. لذا فرا اخلاق یک علم درجه دوم است. یعنی چون بر اساس علم منطق علوم را باید بر حسب موضوع شان و نه محمول شان دسته بندی نمود؛ و موضوع فرااخلاق در علوم دیگر است؛ فرا اخلاق یک علم یا شاخهای از آن نیست.
پیش درآمدی
علم اخلاق در فراهم آوردن مبادی علم حقوق و سیاست و تدبیر مُدُن نقش دارد. ارسطو، کتاب اخلاق نیکوماخوس اش را به عنوان مقدّمهای برای کتاب سیاست مُدُنش نوشته
علم اخلاق بعضی از مبادی دو علم تدبیر منزل و سیاست مدن را نیز تأمین میکند.
شاخههای اخلاق
اخلاق به سه شاخهٔ کاملاً مجزا تقسیم میشود∗:
فلسفه اخلاق که شاخهای از فلسفه∗ است و وظیفهٔ آن پاسخ به پرسش هایی از این قبیل بعنوان پایهٔ اخلاق نظری ست:
خوب و بد یعنی چه؟
ماهیت و حقیقت∗ مفاهیم اخلاقی چیست؟
قضایا∗ی اخلاق اخباری اند یا انشایی∗؟
مسائل اخلاقی جهانی و جاودانه (مطلق) اند، یا سرزمینی و موقّت (نسبی)؟
معیار کلی خوبی و بدی یک صفت یا رفتار اخلاقی چیست؟
شرایط و حوزههای مسئولیت اخلاقی چیست؟
اخلاق نظری که وظیفهٔ آن مطالعهٔ صفات و اعمال اخلاقی و پاسخ به انتظاراتی است از قبیل:
شناسایی، دسته بندی و تعریف صفات و اعمال اخلاقی در حوزهٔ عمومی
شناخت ریشهها و پیامدهای آنها
قضاوت در مورد خوبی یا بدی صفات کلان (صفاتی که محدود به حوزهٔ خاصی از زندگی نیستند). این قسمت از اخلاق یک فن یا روش یا قانون یا باید و نباید است، نه یک علم. یعنی مربوط به آنچه باید، نه آنچه هست.
شناسایی حوزههای خاص اخلاق∗.
دادن قدرت استدلال در مورد خوبی یا بدی اعمال و صفات اخلاقی در حوزههای خاص به آموزنده.
اخلاق عملی یا تربیت اخلاقی∗ فنی ست برای رسیدن از وضعیت مطلوب ناموجود به وضعیّت موجود مطلوب در اخلاق. از این نظر اخلاق اساس معنویت است؛ و انسانی که اخلاقی تر است، معنوی تر نیز هست∗. همچنین این قسم از اخلاق یک فن است. از مهمترین مسائل مطرح در این حوزه میتوان به موارد زیر اشاره کرد:
شناخت و استفاده از مبادی رفتار
مبادی رفتار از نظر علمای پیشین از این قرار است: تصور + تصدیق∗ به فایده + شوق موءکد.
روان شناسان معصر ترکیب مشابه دیگری را پیش رو نهادهاند: شناخت + انگیزش + توان عملی.
روش ایجاد و از بین بردن صفات اخلاقی
اخلاق در اسلام
مبانی مورد قبول علماء علم اخلاق در قدیم سه رکن بوده است و در عصر جدید هم گرچه فروعاتی بر آن افزوده شده است و توسعه یافته است اما می توان گفت ارکان آن در سه مورد خلاصه می شود نخست تهذیب نفس، تدبیر منزل و سیاست مُدُن که علماء اخلاق عناوین سه گانه فوق را به صورت زیر تجزیه و تقسیم نموده اند قسم اول را تخلیه، تحلیه و تجلیه دانسته اند و قسم دوم را گفته اند مراد علم معاش و معاشرت با همسر و فرزندان است و سوم مربوط به حفظ و حراست از کشور است.
توضیحات
^ علوم انسانی دستهای از علوم دانشگاهی اند که در آنها با روشهای عموماً تحلیلی، انتقادی و تفکری-تعمقی امور انسانی را مطالعه میکنند. این روشها معمولاً در تقابل با روشهای تجربی در علوم پایه و علوم اجتماعی قرار میگیرند. (ویکیپدیا)
^ که به هیچ وجه محدود به زبان فارسی و فرهنگ اسلامی نیست.
^ در روانشناسی در مورد معنای آن بحث میشود.
^ برای مطالعه در مورد عادت و شرطیسازی و یادگیری به کتاب روانشناسی عمومی، دکتر حمزه گنجی یا منابع مشابه رجوع فرمایید.
^ این شاخهها با هم اشتباه گرفته نمیشوند. اما از سویی در بسیاری از منابع قدیم اخلاق، علم اخلاق صرفاً به دومی و سومی اطلاق میشود (مانند معراج السّعاده)؛ و از سویی هم در متون غربی جدید از اخلاق صرفاً به عنوان شاخهای از فلسفه یاد میشود و قسمت دوم و سوم نیز گاه جزو آن میآید.
^ فلسفه مطالعهٔ مسائل کلی و اساسی پیرامون موضوعاتی چون وجود، آگاهی، حقیقت، عدالت، زیبایی، اعتبار، ذهن و زبان است. وجه افتراق فلسفه با راههای دیگر پرداختن به این پرسشها (راههایی نظیر عرفان و اسطوره) رویکرد نقّادانه و معمولاً سامانمند فلسفه و تکیهاش بر استدلالهای عقلانیاست. (ویکیپدیا)
^ اصطلاح فلسفی. رجوع شود به آشنایی با علوم اسلامی، جلد 1، اثر شهید مطهّری
^ اصطلاحی در علم منطق. رجوع شود به منطق کاربردی، اثر علی اصغر خندان
^ دو نوع جمله در علم زبان شناسی
^ مدرّسان گاه این قسمت را اخلاق کاربردی می خوانند. اما این نامی برای اخلاق اختصاصی نیست.
^ عرفان عملی مساوی اخلاق عملی نیست، بلکه صرفاً بهترین فن تربیت اخلاقی، آن هم در محدودهٔ اخلاق اسلامی ست. نه در قلمرو کلّی اخلاق.
^ به طور مشابه، در صنعت تولید دقّت اندازه ملاک کیفیت است. محصولی بهتر است، که در طی فرایند تولید، در ابعادی هر چه دقیق تر ساخته شده باشد.
^ تصوّر و تصدیق دو اصطلاح در علم منطق اند. رجوع شود به منطق کاربردی، اثر علی اصغر خندان
درستکاری
اخلاقیات می تواند فردی باشد، در این حالت شامل یک باید شخصی است، شخص خود تصمیم گیرنده و وضع کننده قانونی است که او را به انجام یا عدم انجام فعلی ملزم می کند. در این حالت هدف اخلاقیات و درستکاری، پیشبرد و بهبود وضعیت زندگی در جامعه است.
تئوریهای مختلفی در مورد رابطه بین اخلاقیات و درستکاری وجود دارد. تحلیلگران از دو دایره برای نشان دادن رابطه این دو مقوله استفاده می کنند. برای بعضی از آنها، این دو دایره هم مرکز هستند و در این حالت، درستکاری کاملا درون اخلاقیات قرار می گیرد. برخی دیگر معتقدند که این دو دایره با هم تلاقی دارند و بدین ترتیب سه وضعیت پیش می آید: قوانین اخلاقی بدون ابعاد قضایی، قوانین قضایی بدون بعد اخلاقی و قسمت مشترک آن، قوانین اخلاقی که دارای بعد قضایی نیز هستند. برخی دیگر نیز این دو دایره را کاملا از هم مجزا می انگارند، ولی این نظریه به دلیل داشتن استثنائات زیاد قابل قبول نیست.
اخلاقیات و درستکاری هر کدام زمینههای مشخص خود را دارند، از هم جدا هستند ولی در عین حال نقاط تماسی با یکدیگر دارند، نه می توان در مورد جدایی آنها صحبت کرد، و نه می توان آنها را ممزوج دانست. اخلاقیات می تواند منحصر به یک (هر) فرد باشد و تنها در مورد او صدق کند، در حالی که درستکاری تنها در جامعه معنا پیدا می کند.
فرااخلاق
فرااخلاق یکی از شاخههای فلسفه اخلاق است که به فهم سرشت خواص، جملات، نگرش و قضاوت اخلاقی میپردازد. فرااخلاق یکی از سه شاخه اصلی فلسفه اخلاق است، دو شاخه دیگر، نظریه اخلاقی و اخلاق کاربردی هستند. نظریه اخلاقی و اخلاق کاربردی با هم اخلاق هنجاری را تشکیل میدهند.
درحالیکه اخلاق کاربردی و هنجاری روی اینکه چه چیزی اخلاقی است تمرکز میکنند، فرااخلاق بر محور خود چیستی اخلاق متمرکز است. اخلاق هنجاری سوالاتی از قبیل "باید چه کاری کرد؟" مطرح میکند و به این صورت برخی ارزیابیهای اخلاقی را قبول یا رد میکند. ولی فرااخلاق به سوالاتی چون "خوبی چیست؟" یا "چگونه میتوانیم بد را از خوب تمایز دهیم؟" میپردازد؛ به عبارت دیگر، فرااخلاق به دنبال درک طبیعت ویژگیهای اخلاقی و سرشت ارزیابیها است.
از این نظر فرااخلاق بررسی انتزاعیتر مفاهیم اخلاقی است. به باور برخی نظریهپردازان، شرح متافیزیک اخلاق برای ارزیابی نظریههای اخلاقی و تصمیمگیری عملی اخلاقی لازم است. دیگران، با فرض برعکس، پیشنهاد میکنند بایستی پیش از اینکه تصویر درستی از متافیزیک اخلاق ارائه دهیم ابتدا ایدههای درونی اخلاقی را به عمل اخلاقی مناسب تخصیص دهیم.
فلسفه اخلاق
فلسفه اخلاق شاخهای است از فلسفه که به استدلال درباره پرسشهای بنیادین اخلاقیات میپردازد. درستی و نادرستی امور، شناخت امور خیر و شر، و باز شناسی فضایل، مسائل بنیادین اخلاق را تشکیل میدهند. پرسش از این مسائل بنیادین منجر به شکلگیری دو حوزه نظری میشود: فرا اخلاق و اخلاق هنجاری؛ فلسفه اخلاق این دو حوزه را شامل میشود.
فلسفه اخلاق یکی از رویکردهای علم اخلاق است و بدون در نظر گرفتن نقش و اهمیت آن و پیش کشیدن سؤالاتی که این حوزه از فلسفه مطرح میکند نمیتوان فهم کاملی از اخلاق و اخلاقیات کسب کرد. نهایتاً فلسفه اخلاق در شرایط بحرانی یا فوری بیش از دیگر علوم انتزاعی به دادمان نخواهد رسید اما مطمئناً اصول و مسائل اخلاقی که توسط فلسفه اخلاق مورد بررسی قرار میگیرند میتوانند به صورت پیشینی بسیار از رخدادها را ممکن و یا غیر ممکن سازند. به این معنا که ساختار شکل گرفته اخلاقی پیرامون ما (به عنوان دستاورد اندیشه و فلسفه اخلاق)، رخ دادن امور را از صافی اخلاقیات حاکم رد میکند و در نتیجه شناخت این محیط اخلاقی به ما در تصمیم گیریهای موقعی مان کمک فراوان خواهد رساند.
تاریخچه
آدمیان در مرحلهای از تاریخ پدیداری خود رفته رفته برخی چیزها را ارزشمند تصور کردند. تفکر ابتدایی انسان به این صورت وارد مرحله مفهوم سازی شد و مفهوم سازی موجب پدیدار شدن مفهوم خوبی یا خیر در ذهن انسان گشت و این شروع تفکر اخلاقی انسان بود. وقتی کومونهای اولیه شکل گرفتند دو مفهوم عمده در ساختار اجتماعی شان مشهود بود؛ یکی از این مفاهیم، مفهوم عرف بود و دیگری مفهوم تابو. عرف مجموعه قواعدی بود که جامعه به صورت سنتی آن را پذیرفته بود و موجبات انتظام اجتماعی را فراهم میآورد؛ زمانی که جوامع به سوی متمدن شدن گام برداشتند و از حالت کومون درآمدند، به مرور مفهوم عرف نیز تبدیل به مفهوم قانون شد. تابو مجموعهای از رفتارها و گفتارهای ناهنجار اجتماعی بود که از سوی آیین و مذهب قوم ممنوع و نکوهیده بودند؛ مفهوم تابو نیز در سیر تطور جوامع مدنی، به مرور زمان به مفهوم اخلاقیات بدل گشت. پس از گذار از دوران کومونهای اولیه و شکل گیری نخستین جوامع مدنی تشریک مساعی رو به افزایش نهاد و تقسیم کار برآوردن نیازها را آسان کرد. این جریان موجب شد که خواستهها از نیازها پیشی بگیرند. بالیدن آرمانها، تکامل هوش بشری و نیز قابلیت تأمل درباره حیات و عالم موجب شد تا انسان ارزش گذاری نیازها و خواستههای خود را امری جدی و تا حدی حیاتی قلمداد کند. سرانجام آدمیان برای هر چیزی که در آن منفعتی احساس میکردند ارزش قائل میشدند و بدین طریق مفهوم خیر گسترش یافت.
همزمان با پیدایش و گسترش مفهوم خیر در جوامع انسانی مفهوم شر نیز به وجود آمد و گسترش یافت. انسانها بسته به نوع عملکردشان در چشم یکدیگر به خوب و بد تقسیم شدند. این جریان موجب آن شد که افراد بشر گرایش به شر را تقبیح کنند چرا که با وجود منفعت عمل شر برای فرد شرور، کلیت این عمل به ضرر تمام افراد جامعه تمام میشد و میتوانست بنیاد شهروندی را ریشه کن کند. در این راستا بود که معلمین اخلاق ظهور یافتند. آنچه تا کنون گفته شد بنا بر دیدگاه تکاملی در جامعه شناسی غربی است ولی بر خلاف این سیر تکاملی برای پیدایش مفهوم خیر و شر باید چنین گفت این مفهوم خیر و شر تنها در باب خیر و شر نوعی جریان دارد یعنی خیر و شری که به واسطه آن منافع اجتماعی حفظ یا منهدم می گردد در حالی که به بداهت عقلی مشخص است که برخی از اعمال و رفتار درای منافع و مضرات اجتماعی نیست ولی با این وجود عقل به شر بودن آن حکم می کند به عنوان نمونه فخر فروشی مضرت اجتماعی مستقیمی ندارد ولکن عقل به قبح آن حکم می کند همچنین شرور و موارد اخلاقی وجود دارند که عقل به آنها دسترسی ندارد چرا که عقل نظری مدرک کلیات است و عقل عملی نیز در قالب همان کلیات به مصداق یابی می پردازد با این تفاصیل نیاز به پیامبران از زمان کشف خیر و شر نوعی - اجتماعی نمی باشد بله از اغاز هستی انسان نیاز به پیامبران برای نشان دادن این شرور و خیر ها وجود دارد چرا که تنها پیامبران به منبع اصلی دانش یعنی خدا متصل هستند و به تمام جوانب نفس بشری و هستی احاط دارند و این کلام که اولین و مهمترین معلمین اخلاق پیامبران بودند. دین به مثابه برنامه و روش اخلاقی به واسطه عدهای افراد که خود را مرتبط با خداوند معرفی میکردند به مردمان ارائه شد. ان هم بعد از کشف این خیر ها و شر های اجتماعی کلامی است که با توجه به استدلال گذشته باطل است. البته اینکه پیامبران ابراهیمی مهمترین این افراد بودند. نیز جای بحث دارد چرا که دین در نزد خدا یکی است و در هر زمان به تناسب آن زمان فرامینی داده است تا دین خاتم که همان اسلام است همچنین گفته شده اولین فرامین اخلاقی مدون که انسان را مورد خطاب قرار داد فرامین دهگانه خداوند در سفر پیدایش و سفر تثنیه و نیز احکام دینی و اخلاقی یهود در سفر لاویان بود. که این نیز جای تامل است با توجه به انچه گفته شد از ضرورت وجود پیامبران از اغاز زمان زندگانی بشر و وجود پیامبران قبل از موسی بدون شک ده فرمان اولین فرمان اخلاقی خداوند نمی باشد چرا که در زمان نوح نیز خط موجود بوده است و مطلب دیگری که گفته شده آن است که: پس از نزول شریعت یهود باب نزول ادیان مختلف بر جوامع انسانی گشوده شد. مسیحیت و اسلام دو دین ابراهیمی دیگر بودند که هر یک با تفاوتهای کلی و جزیی به تبیین اصول اخلاقی پرداختند. به واقع در صدد آن است که این دو دین را وام دار یهودیت بداند اما این در جائی باعث اشکال است که ما ماهیت دین ها را متفاوت بدانیم اما در تفکر اسلام دین تنها نزد خدا یکی است و هر دین تکامل بخش دین دیگری است و این ادیان منافاتی با هم ندارند هرچند که در جریان تحریفات یهود و مسیح گذاره های اخلاقی در برخی از این دین ها تحریف شده است. در مورد آیینهای دینی غیر ابراهیمی نیز همزمان با این جریان شروع به گسترش کردند. از جمله اینان میتوان از ادیان زرتشتی و بودایی نام برد. در قرن پنجم پیش از میلاد مسیح و در سرزمین یونان معلم اخلاقی سر بر میآورد که فارغ از آموزههای دینی به تعلیم اخلاق میپرداخت. سقراط حلقه پیوند معلمین اخلاق با فلاسفه اخلاق بود.
افلاطون مکالمات فراوانی در باب فلسفه نوشت و در این آثار اشارات و بررسیهای ضمنی بسیاری درباره اخلاقیات کرد؛ اما فلسفه اخلاق راه خود را رسماً از زمان ارسطو آغاز کرد. نگارش اخلاق نیکوماخوس شروع تاریخ فلسفه اخلاق است. پس از ارسطو اپیکوریان و رواقیون سردمداران نگرش فلسفی به اخلاق بودند. پس از تحول بزرگ مسیحیت فلسفه اخلاق وارد مسیری جدید شد. آگوستین یکی از تأثیرگذارترین فلاسفه اخلاق بود و با آراء خود به تبیین موضوعات فلسفه اخلاق از منظر مسیحیت کاتولیک پرداخت. در دوران قرون وسطی فلسفه اخلاق رشد روزافزونی داشت اما تنها در مسیر اخلاقیات مسیحی پیش میرفت. اوج فلسفه اخلاق در قرون وسطی را میتوان در آراء توماس آکویناس مشاهده کرد. پس از دوران رنسانس اندک اندک آزادی اندیشه و بیان در جوامع اروپایی نهادینه شد و با وجود مشکلات به جا مانده از دوران تاریکی انقلاب فلسفی آغاز گشت. این انقلاب همان شروع دوران جدید است. دوران مذکور دوران شکوفایی علم و فلسفه بود. تمام فلاسفه بزرگ این دوران درباره اخلاق نظریات مهمی را مطرح ساختند اما قابل توجهترین این فلاسفه باروخ اسپینوزا است. پیش از دوران جدید تمامی فلاسفه به اخلاق رویکردی مبتنی بر فضیلت داشتند. انقلاب اسپینوزا در فلسفه اخلاق تغییر این رویکرد به اخلاق مبتنی بر کردار بود. تأثیر متفکران دوران جدید بر عصر روشنگری غیر قابل انکار است. در پایان دوران روشنگری بارزترین چهره فلسفه اخلاق طول تاریخ یعنی ایمانوئل کانت رخ مینماید. در حقیقت کانت مفهوم امروزی فلسفه اخلاق را ساخت. پس از کانتجان استوارت میل و آرتور شوپنهاور علم اخلاق را بیش از پیش متحول ساختند. در قرن بیستم نیز فلاسفه بزرگی در دو شاخه فلسفه تحلیلی و فلسفه قارهای آثار مهمی از خود بر جای گذاشتند.
مسائل
فلسفه اخلاق مانند هر شاخه دیگری از فلسفه، برای پاسخ دادن به سؤالات پیش رویش به تبیین و توضیح پاره ای مسائل می پردازد. این مسائل می توانند مخصوص اخلاق باشند و یا می توانند مسائلی باشند که هم در اخلاق و هم در علوم دیگر مورد بررسی است. اصولاً فلسفه اخلاق رابطه نزدیکی با فلسفه سیاسی، فلسفه حقوق، جامعه شناسی و روان شناسی دارد؛ در نتیجه بعضی از مسائل فلسفه اخلاق مسائل حوزههای مذکور نیز هستند.
خیر و شر
مبنای اخلاقیات بر این عقیده استوار است که آن چه برای انسانهای (و یا حتی حیوانات) به خصوصی خوب یا بد است، نه فقط از دیدگاه آنان، بلکه از دیدگاه فراگیرتری خوب یا بد می باشد.
حکم کردن به این که چه چیزی فی نفسه خوب است به این معناست که آن چیز ارزشمند است. ذهن انسان با عمل ارزش گذاری امور خیر و شر را پدید می آورد و در نتیجه به تقبیح و تحسین این امور می پردازد. نمی توان به طور قطع گفت که ارزش گذاریهای این چنینی اصولاً قراردادی هستند و یا به صورت غریزی موجودند. با این حال، وجود این دو مفهوم در تاریخ تفکر بشری غیر قابل انکار است. وجود این مفاهیم در ذهن انسان موجب شده است تا نظریات مختلف اخلاقی خیر و شر را به طرق گوناگون تعبیر کند. برخی خیر را، خیر فرد می دانند؛ عده ای معتقدند که خیر همان خیر جمعی است و دیگرانی معتقدند که مفهوم خیر نسبت به موقعیت تاریخی و فرهنگی یک جامعه تعریف می شود. با وجود این عدم توافق، یک مفهوم در فلسفه اخلاق از اهمیت کلیدی برخوردار است و آن مفهوم خیر اعلی است. خیر اعلی یعنی بالاترین شکل خیر که انسان می تواند با حرکت به سوی آن اخلاقی تر عمل کند.
خیر می تواند به واسطه روابط علّی، هنجاری و مفهومی با درستی در ارتباط باشد. با این حال امکان عدم رابطه میان این دو مفهوم نیز وجود دارد. تبیین روابط خیر و درستی نیز در نظریات مختلف به اشکال مختلف بیان شده است.
درست و نادرست
هرچند که نمی توان به قطعیت گفت هر آنچه درست است خوب نیز هست اما به نظر می رسد که به لحاظ ارزشی این دو با هم تساوی دارند. یعنی ارزش درستی با ارزش خوبی برابری میکند با این تفاوت که خوبی مفهوم بسیار نسبی تر و شناورتری از درستی دارد. درستی و نادرستی امور با آثار عمل بر روی فرد انجام دهنده و دیگران در معرض عمل سر و کار دارد. فرد با ارتکاب عمل درست و یا نادرست در وهله اول خود را در موقعیت اخلاقی قرار داده و با این فضا سنجیده می شود. در مرحله بعدی آثار عمل فرد می تواند بر احساسات دیگران کارگر افتد و همین طور می تواند سود و زیان مادی به دیگران وارد کند. در نتیجه در اطلاق ارزش درست یا نادرست برای یک امر باید به تأثیرات آن امر بر فرد عامل و نیز تأثیرات آن بر دیگران توجه کرد.
برخی اوقات مفهوم «درست و نادرست» با مفهوم «مخالف و موافق قانون» اشتباه گرفته می شود. این دو مفهوم کاملاً از هم متفاوتند؛ ممکن است قوانینی وجود داشته باشد که چیزی که ندرست نیست را ممنوع سازد و یا امری نادرست را الزام کند. وقتی ما قادریم ساختارهایی مثل آن چه گفته شد را در ذهن خود بسازیم و بفهمیم معلوم میشود که ایدههای درستی متفاوت از ایدههای قانونی هستند. زیرا ما به واسطه ایدههای درستی می توانیم قوانین را نیز مورد ارزیابی قرار دهیم.
عده ای از متفکران فلسفه اخلاق معتقدند که درستی و نادرستی امری نسبی است. اینان استناد می کنند بر تأثیر زمان و مکان بر درستی و نادرستی امور و یا بستگی درستی امور به شرایط. اما این استنتاج غلط است؛ گزارههای مذکور به معنای نسبی بودن بنیان اخلاقیات نیست بلکه به این معناست که اصول بنیادین اخلاق در شرایط مختلف اعمال متفاوتی را ایجاب می کند. یعنی ما بنیاد محکمی برای اخلاق داریم که بر آن ساختمانی نسبی ساخته شده است.
یکی از اولین کتابهایی که مستقلاً به علم اخلاق پرداخته است کتاب اخلاق نیکوماخوس اثر ارسطو است.
ارتباط اخلاق با علوم دیگر
جایگاه اخلاق در نقشهٔ علم، در انتهاست
دسته بندی علوم توسّط خواجه نصیر الدین طوسی در آغاز کتاب اخلاق ناصری، جایگاه علم اخلاق را در بین سایر علوم چنین آورده:

علومی که به شناخت موجودات میپردازند
نظری: وجود موضوع آنها وابسته به حرکت ارادی انسان است.
ما بعد الطبیعه: موضوعشان مجرد از ماده
ریاضی
۴ قسم
طبیعی
۸ قسم
عملی: وجود موضوع آنها مستقل از حرکت ارادی انسان است «این علوم دانش به مصالح حرکات ارادی و افعال صناعی انسان هستند، به گونهای که احوال آنها را سازمان دهند و آنان را به کمال شایسته شان برساند.»
تهذیب اخلاق: در مورد امور فردی بحث میکند
تدبیر منزل: مربوط به گروه کوچکی که
سیاست مدن: مربوط به جمعی است که در شهر، مملکت و مانند آن زندگی میکنند
وابستگی
علم اخلاق مبادی اش را از علوم منطق، مابعدالطّبیعه(یعنی فلسفه) برای مبادی هستی شناختی، و علمالنّفس(انسان شناسی) و روانشناسی میگیرد. شاخهای از اخلاق که عهده دار تامین مبادی اخلاق است فرا اخلاق نام دارد. لذا فرا اخلاق یک علم درجه دوم است. یعنی چون بر اساس علم منطق علوم را باید بر حسب موضوع شان و نه محمول شان دسته بندی نمود؛ و موضوع فرااخلاق در علوم دیگر است؛ فرا اخلاق یک علم یا شاخهای از آن نیست.
پیش درآمدی
علم اخلاق در فراهم آوردن مبادی علم حقوق و سیاست و تدبیر مُدُن نقش دارد. ارسطو، کتاب اخلاق نیکوماخوس اش را به عنوان مقدّمهای برای کتاب سیاست مُدُنش نوشته
علم اخلاق بعضی از مبادی دو علم تدبیر منزل و سیاست مدن را نیز تأمین میکند.
شاخههای اخلاق
اخلاق به سه شاخهٔ کاملاً مجزا تقسیم میشود∗:
فلسفه اخلاق که شاخهای از فلسفه∗ است و وظیفهٔ آن پاسخ به پرسش هایی از این قبیل بعنوان پایهٔ اخلاق نظری ست:
خوب و بد یعنی چه؟
ماهیت و حقیقت∗ مفاهیم اخلاقی چیست؟
قضایا∗ی اخلاق اخباری اند یا انشایی∗؟
مسائل اخلاقی جهانی و جاودانه (مطلق) اند، یا سرزمینی و موقّت (نسبی)؟
معیار کلی خوبی و بدی یک صفت یا رفتار اخلاقی چیست؟
شرایط و حوزههای مسئولیت اخلاقی چیست؟
اخلاق نظری که وظیفهٔ آن مطالعهٔ صفات و اعمال اخلاقی و پاسخ به انتظاراتی است از قبیل:
شناسایی، دسته بندی و تعریف صفات و اعمال اخلاقی در حوزهٔ عمومی
شناخت ریشهها و پیامدهای آنها
قضاوت در مورد خوبی یا بدی صفات کلان (صفاتی که محدود به حوزهٔ خاصی از زندگی نیستند). این قسمت از اخلاق یک فن یا روش یا قانون یا باید و نباید است، نه یک علم. یعنی مربوط به آنچه باید، نه آنچه هست.
شناسایی حوزههای خاص اخلاق∗.
دادن قدرت استدلال در مورد خوبی یا بدی اعمال و صفات اخلاقی در حوزههای خاص به آموزنده.
اخلاق عملی یا تربیت اخلاقی∗ فنی ست برای رسیدن از وضعیت مطلوب ناموجود به وضعیّت موجود مطلوب در اخلاق. از این نظر اخلاق اساس معنویت است؛ و انسانی که اخلاقی تر است، معنوی تر نیز هست∗. همچنین این قسم از اخلاق یک فن است. از مهمترین مسائل مطرح در این حوزه میتوان به موارد زیر اشاره کرد:
شناخت و استفاده از مبادی رفتار
مبادی رفتار از نظر علمای پیشین از این قرار است: تصور + تصدیق∗ به فایده + شوق موءکد.
روان شناسان معصر ترکیب مشابه دیگری را پیش رو نهادهاند: شناخت + انگیزش + توان عملی.
روش ایجاد و از بین بردن صفات اخلاقی
اخلاق در اسلام
مبانی مورد قبول علماء علم اخلاق در قدیم سه رکن بوده است و در عصر جدید هم گرچه فروعاتی بر آن افزوده شده است و توسعه یافته است اما می توان گفت ارکان آن در سه مورد خلاصه می شود نخست تهذیب نفس، تدبیر منزل و سیاست مُدُن که علماء اخلاق عناوین سه گانه فوق را به صورت زیر تجزیه و تقسیم نموده اند قسم اول را تخلیه، تحلیه و تجلیه دانسته اند و قسم دوم را گفته اند مراد علم معاش و معاشرت با همسر و فرزندان است و سوم مربوط به حفظ و حراست از کشور است.
توضیحات
^ علوم انسانی دستهای از علوم دانشگاهی اند که در آنها با روشهای عموماً تحلیلی، انتقادی و تفکری-تعمقی امور انسانی را مطالعه میکنند. این روشها معمولاً در تقابل با روشهای تجربی در علوم پایه و علوم اجتماعی قرار میگیرند. (ویکیپدیا)
^ که به هیچ وجه محدود به زبان فارسی و فرهنگ اسلامی نیست.
^ در روانشناسی در مورد معنای آن بحث میشود.
^ برای مطالعه در مورد عادت و شرطیسازی و یادگیری به کتاب روانشناسی عمومی، دکتر حمزه گنجی یا منابع مشابه رجوع فرمایید.
^ این شاخهها با هم اشتباه گرفته نمیشوند. اما از سویی در بسیاری از منابع قدیم اخلاق، علم اخلاق صرفاً به دومی و سومی اطلاق میشود (مانند معراج السّعاده)؛ و از سویی هم در متون غربی جدید از اخلاق صرفاً به عنوان شاخهای از فلسفه یاد میشود و قسمت دوم و سوم نیز گاه جزو آن میآید.
^ فلسفه مطالعهٔ مسائل کلی و اساسی پیرامون موضوعاتی چون وجود، آگاهی، حقیقت، عدالت، زیبایی، اعتبار، ذهن و زبان است. وجه افتراق فلسفه با راههای دیگر پرداختن به این پرسشها (راههایی نظیر عرفان و اسطوره) رویکرد نقّادانه و معمولاً سامانمند فلسفه و تکیهاش بر استدلالهای عقلانیاست. (ویکیپدیا)
^ اصطلاح فلسفی. رجوع شود به آشنایی با علوم اسلامی، جلد 1، اثر شهید مطهّری
^ اصطلاحی در علم منطق. رجوع شود به منطق کاربردی، اثر علی اصغر خندان
^ دو نوع جمله در علم زبان شناسی
^ مدرّسان گاه این قسمت را اخلاق کاربردی می خوانند. اما این نامی برای اخلاق اختصاصی نیست.
^ عرفان عملی مساوی اخلاق عملی نیست، بلکه صرفاً بهترین فن تربیت اخلاقی، آن هم در محدودهٔ اخلاق اسلامی ست. نه در قلمرو کلّی اخلاق.
^ به طور مشابه، در صنعت تولید دقّت اندازه ملاک کیفیت است. محصولی بهتر است، که در طی فرایند تولید، در ابعادی هر چه دقیق تر ساخته شده باشد.
^ تصوّر و تصدیق دو اصطلاح در علم منطق اند. رجوع شود به منطق کاربردی، اثر علی اصغر خندان
درستکاری
اخلاقیات می تواند فردی باشد، در این حالت شامل یک باید شخصی است، شخص خود تصمیم گیرنده و وضع کننده قانونی است که او را به انجام یا عدم انجام فعلی ملزم می کند. در این حالت هدف اخلاقیات و درستکاری، پیشبرد و بهبود وضعیت زندگی در جامعه است.
تئوریهای مختلفی در مورد رابطه بین اخلاقیات و درستکاری وجود دارد. تحلیلگران از دو دایره برای نشان دادن رابطه این دو مقوله استفاده می کنند. برای بعضی از آنها، این دو دایره هم مرکز هستند و در این حالت، درستکاری کاملا درون اخلاقیات قرار می گیرد. برخی دیگر معتقدند که این دو دایره با هم تلاقی دارند و بدین ترتیب سه وضعیت پیش می آید: قوانین اخلاقی بدون ابعاد قضایی، قوانین قضایی بدون بعد اخلاقی و قسمت مشترک آن، قوانین اخلاقی که دارای بعد قضایی نیز هستند. برخی دیگر نیز این دو دایره را کاملا از هم مجزا می انگارند، ولی این نظریه به دلیل داشتن استثنائات زیاد قابل قبول نیست.
اخلاقیات و درستکاری هر کدام زمینههای مشخص خود را دارند، از هم جدا هستند ولی در عین حال نقاط تماسی با یکدیگر دارند، نه می توان در مورد جدایی آنها صحبت کرد، و نه می توان آنها را ممزوج دانست. اخلاقیات می تواند منحصر به یک (هر) فرد باشد و تنها در مورد او صدق کند، در حالی که درستکاری تنها در جامعه معنا پیدا می کند.
فرااخلاق
فرااخلاق یکی از شاخههای فلسفه اخلاق است که به فهم سرشت خواص، جملات، نگرش و قضاوت اخلاقی میپردازد. فرااخلاق یکی از سه شاخه اصلی فلسفه اخلاق است، دو شاخه دیگر، نظریه اخلاقی و اخلاق کاربردی هستند. نظریه اخلاقی و اخلاق کاربردی با هم اخلاق هنجاری را تشکیل میدهند.
درحالیکه اخلاق کاربردی و هنجاری روی اینکه چه چیزی اخلاقی است تمرکز میکنند، فرااخلاق بر محور خود چیستی اخلاق متمرکز است. اخلاق هنجاری سوالاتی از قبیل "باید چه کاری کرد؟" مطرح میکند و به این صورت برخی ارزیابیهای اخلاقی را قبول یا رد میکند. ولی فرااخلاق به سوالاتی چون "خوبی چیست؟" یا "چگونه میتوانیم بد را از خوب تمایز دهیم؟" میپردازد؛ به عبارت دیگر، فرااخلاق به دنبال درک طبیعت ویژگیهای اخلاقی و سرشت ارزیابیها است.
از این نظر فرااخلاق بررسی انتزاعیتر مفاهیم اخلاقی است. به باور برخی نظریهپردازان، شرح متافیزیک اخلاق برای ارزیابی نظریههای اخلاقی و تصمیمگیری عملی اخلاقی لازم است. دیگران، با فرض برعکس، پیشنهاد میکنند بایستی پیش از اینکه تصویر درستی از متافیزیک اخلاق ارائه دهیم ابتدا ایدههای درونی اخلاقی را به عمل اخلاقی مناسب تخصیص دهیم.
فلسفه اخلاق
فلسفه اخلاق شاخهای است از فلسفه که به استدلال درباره پرسشهای بنیادین اخلاقیات میپردازد. درستی و نادرستی امور، شناخت امور خیر و شر، و باز شناسی فضایل، مسائل بنیادین اخلاق را تشکیل میدهند. پرسش از این مسائل بنیادین منجر به شکلگیری دو حوزه نظری میشود: فرا اخلاق و اخلاق هنجاری؛ فلسفه اخلاق این دو حوزه را شامل میشود.
فلسفه اخلاق یکی از رویکردهای علم اخلاق است و بدون در نظر گرفتن نقش و اهمیت آن و پیش کشیدن سؤالاتی که این حوزه از فلسفه مطرح میکند نمیتوان فهم کاملی از اخلاق و اخلاقیات کسب کرد. نهایتاً فلسفه اخلاق در شرایط بحرانی یا فوری بیش از دیگر علوم انتزاعی به دادمان نخواهد رسید اما مطمئناً اصول و مسائل اخلاقی که توسط فلسفه اخلاق مورد بررسی قرار میگیرند میتوانند به صورت پیشینی بسیار از رخدادها را ممکن و یا غیر ممکن سازند. به این معنا که ساختار شکل گرفته اخلاقی پیرامون ما (به عنوان دستاورد اندیشه و فلسفه اخلاق)، رخ دادن امور را از صافی اخلاقیات حاکم رد میکند و در نتیجه شناخت این محیط اخلاقی به ما در تصمیم گیریهای موقعی مان کمک فراوان خواهد رساند.
تاریخچه
آدمیان در مرحلهای از تاریخ پدیداری خود رفته رفته برخی چیزها را ارزشمند تصور کردند. تفکر ابتدایی انسان به این صورت وارد مرحله مفهوم سازی شد و مفهوم سازی موجب پدیدار شدن مفهوم خوبی یا خیر در ذهن انسان گشت و این شروع تفکر اخلاقی انسان بود. وقتی کومونهای اولیه شکل گرفتند دو مفهوم عمده در ساختار اجتماعی شان مشهود بود؛ یکی از این مفاهیم، مفهوم عرف بود و دیگری مفهوم تابو. عرف مجموعه قواعدی بود که جامعه به صورت سنتی آن را پذیرفته بود و موجبات انتظام اجتماعی را فراهم میآورد؛ زمانی که جوامع به سوی متمدن شدن گام برداشتند و از حالت کومون درآمدند، به مرور مفهوم عرف نیز تبدیل به مفهوم قانون شد. تابو مجموعهای از رفتارها و گفتارهای ناهنجار اجتماعی بود که از سوی آیین و مذهب قوم ممنوع و نکوهیده بودند؛ مفهوم تابو نیز در سیر تطور جوامع مدنی، به مرور زمان به مفهوم اخلاقیات بدل گشت. پس از گذار از دوران کومونهای اولیه و شکل گیری نخستین جوامع مدنی تشریک مساعی رو به افزایش نهاد و تقسیم کار برآوردن نیازها را آسان کرد. این جریان موجب شد که خواستهها از نیازها پیشی بگیرند. بالیدن آرمانها، تکامل هوش بشری و نیز قابلیت تأمل درباره حیات و عالم موجب شد تا انسان ارزش گذاری نیازها و خواستههای خود را امری جدی و تا حدی حیاتی قلمداد کند. سرانجام آدمیان برای هر چیزی که در آن منفعتی احساس میکردند ارزش قائل میشدند و بدین طریق مفهوم خیر گسترش یافت.
همزمان با پیدایش و گسترش مفهوم خیر در جوامع انسانی مفهوم شر نیز به وجود آمد و گسترش یافت. انسانها بسته به نوع عملکردشان در چشم یکدیگر به خوب و بد تقسیم شدند. این جریان موجب آن شد که افراد بشر گرایش به شر را تقبیح کنند چرا که با وجود منفعت عمل شر برای فرد شرور، کلیت این عمل به ضرر تمام افراد جامعه تمام میشد و میتوانست بنیاد شهروندی را ریشه کن کند. در این راستا بود که معلمین اخلاق ظهور یافتند. آنچه تا کنون گفته شد بنا بر دیدگاه تکاملی در جامعه شناسی غربی است ولی بر خلاف این سیر تکاملی برای پیدایش مفهوم خیر و شر باید چنین گفت این مفهوم خیر و شر تنها در باب خیر و شر نوعی جریان دارد یعنی خیر و شری که به واسطه آن منافع اجتماعی حفظ یا منهدم می گردد در حالی که به بداهت عقلی مشخص است که برخی از اعمال و رفتار درای منافع و مضرات اجتماعی نیست ولی با این وجود عقل به شر بودن آن حکم می کند به عنوان نمونه فخر فروشی مضرت اجتماعی مستقیمی ندارد ولکن عقل به قبح آن حکم می کند همچنین شرور و موارد اخلاقی وجود دارند که عقل به آنها دسترسی ندارد چرا که عقل نظری مدرک کلیات است و عقل عملی نیز در قالب همان کلیات به مصداق یابی می پردازد با این تفاصیل نیاز به پیامبران از زمان کشف خیر و شر نوعی - اجتماعی نمی باشد بله از اغاز هستی انسان نیاز به پیامبران برای نشان دادن این شرور و خیر ها وجود دارد چرا که تنها پیامبران به منبع اصلی دانش یعنی خدا متصل هستند و به تمام جوانب نفس بشری و هستی احاط دارند و این کلام که اولین و مهمترین معلمین اخلاق پیامبران بودند. دین به مثابه برنامه و روش اخلاقی به واسطه عدهای افراد که خود را مرتبط با خداوند معرفی میکردند به مردمان ارائه شد. ان هم بعد از کشف این خیر ها و شر های اجتماعی کلامی است که با توجه به استدلال گذشته باطل است. البته اینکه پیامبران ابراهیمی مهمترین این افراد بودند. نیز جای بحث دارد چرا که دین در نزد خدا یکی است و در هر زمان به تناسب آن زمان فرامینی داده است تا دین خاتم که همان اسلام است همچنین گفته شده اولین فرامین اخلاقی مدون که انسان را مورد خطاب قرار داد فرامین دهگانه خداوند در سفر پیدایش و سفر تثنیه و نیز احکام دینی و اخلاقی یهود در سفر لاویان بود. که این نیز جای تامل است با توجه به انچه گفته شد از ضرورت وجود پیامبران از اغاز زمان زندگانی بشر و وجود پیامبران قبل از موسی بدون شک ده فرمان اولین فرمان اخلاقی خداوند نمی باشد چرا که در زمان نوح نیز خط موجود بوده است و مطلب دیگری که گفته شده آن است که: پس از نزول شریعت یهود باب نزول ادیان مختلف بر جوامع انسانی گشوده شد. مسیحیت و اسلام دو دین ابراهیمی دیگر بودند که هر یک با تفاوتهای کلی و جزیی به تبیین اصول اخلاقی پرداختند. به واقع در صدد آن است که این دو دین را وام دار یهودیت بداند اما این در جائی باعث اشکال است که ما ماهیت دین ها را متفاوت بدانیم اما در تفکر اسلام دین تنها نزد خدا یکی است و هر دین تکامل بخش دین دیگری است و این ادیان منافاتی با هم ندارند هرچند که در جریان تحریفات یهود و مسیح گذاره های اخلاقی در برخی از این دین ها تحریف شده است. در مورد آیینهای دینی غیر ابراهیمی نیز همزمان با این جریان شروع به گسترش کردند. از جمله اینان میتوان از ادیان زرتشتی و بودایی نام برد. در قرن پنجم پیش از میلاد مسیح و در سرزمین یونان معلم اخلاقی سر بر میآورد که فارغ از آموزههای دینی به تعلیم اخلاق میپرداخت. سقراط حلقه پیوند معلمین اخلاق با فلاسفه اخلاق بود.
افلاطون مکالمات فراوانی در باب فلسفه نوشت و در این آثار اشارات و بررسیهای ضمنی بسیاری درباره اخلاقیات کرد؛ اما فلسفه اخلاق راه خود را رسماً از زمان ارسطو آغاز کرد. نگارش اخلاق نیکوماخوس شروع تاریخ فلسفه اخلاق است. پس از ارسطو اپیکوریان و رواقیون سردمداران نگرش فلسفی به اخلاق بودند. پس از تحول بزرگ مسیحیت فلسفه اخلاق وارد مسیری جدید شد. آگوستین یکی از تأثیرگذارترین فلاسفه اخلاق بود و با آراء خود به تبیین موضوعات فلسفه اخلاق از منظر مسیحیت کاتولیک پرداخت. در دوران قرون وسطی فلسفه اخلاق رشد روزافزونی داشت اما تنها در مسیر اخلاقیات مسیحی پیش میرفت. اوج فلسفه اخلاق در قرون وسطی را میتوان در آراء توماس آکویناس مشاهده کرد. پس از دوران رنسانس اندک اندک آزادی اندیشه و بیان در جوامع اروپایی نهادینه شد و با وجود مشکلات به جا مانده از دوران تاریکی انقلاب فلسفی آغاز گشت. این انقلاب همان شروع دوران جدید است. دوران مذکور دوران شکوفایی علم و فلسفه بود. تمام فلاسفه بزرگ این دوران درباره اخلاق نظریات مهمی را مطرح ساختند اما قابل توجهترین این فلاسفه باروخ اسپینوزا است. پیش از دوران جدید تمامی فلاسفه به اخلاق رویکردی مبتنی بر فضیلت داشتند. انقلاب اسپینوزا در فلسفه اخلاق تغییر این رویکرد به اخلاق مبتنی بر کردار بود. تأثیر متفکران دوران جدید بر عصر روشنگری غیر قابل انکار است. در پایان دوران روشنگری بارزترین چهره فلسفه اخلاق طول تاریخ یعنی ایمانوئل کانت رخ مینماید. در حقیقت کانت مفهوم امروزی فلسفه اخلاق را ساخت. پس از کانتجان استوارت میل و آرتور شوپنهاور علم اخلاق را بیش از پیش متحول ساختند. در قرن بیستم نیز فلاسفه بزرگی در دو شاخه فلسفه تحلیلی و فلسفه قارهای آثار مهمی از خود بر جای گذاشتند.
مسائل
فلسفه اخلاق مانند هر شاخه دیگری از فلسفه، برای پاسخ دادن به سؤالات پیش رویش به تبیین و توضیح پاره ای مسائل می پردازد. این مسائل می توانند مخصوص اخلاق باشند و یا می توانند مسائلی باشند که هم در اخلاق و هم در علوم دیگر مورد بررسی است. اصولاً فلسفه اخلاق رابطه نزدیکی با فلسفه سیاسی، فلسفه حقوق، جامعه شناسی و روان شناسی دارد؛ در نتیجه بعضی از مسائل فلسفه اخلاق مسائل حوزههای مذکور نیز هستند.
خیر و شر
مبنای اخلاقیات بر این عقیده استوار است که آن چه برای انسانهای (و یا حتی حیوانات) به خصوصی خوب یا بد است، نه فقط از دیدگاه آنان، بلکه از دیدگاه فراگیرتری خوب یا بد می باشد.
حکم کردن به این که چه چیزی فی نفسه خوب است به این معناست که آن چیز ارزشمند است. ذهن انسان با عمل ارزش گذاری امور خیر و شر را پدید می آورد و در نتیجه به تقبیح و تحسین این امور می پردازد. نمی توان به طور قطع گفت که ارزش گذاریهای این چنینی اصولاً قراردادی هستند و یا به صورت غریزی موجودند. با این حال، وجود این دو مفهوم در تاریخ تفکر بشری غیر قابل انکار است. وجود این مفاهیم در ذهن انسان موجب شده است تا نظریات مختلف اخلاقی خیر و شر را به طرق گوناگون تعبیر کند. برخی خیر را، خیر فرد می دانند؛ عده ای معتقدند که خیر همان خیر جمعی است و دیگرانی معتقدند که مفهوم خیر نسبت به موقعیت تاریخی و فرهنگی یک جامعه تعریف می شود. با وجود این عدم توافق، یک مفهوم در فلسفه اخلاق از اهمیت کلیدی برخوردار است و آن مفهوم خیر اعلی است. خیر اعلی یعنی بالاترین شکل خیر که انسان می تواند با حرکت به سوی آن اخلاقی تر عمل کند.
خیر می تواند به واسطه روابط علّی، هنجاری و مفهومی با درستی در ارتباط باشد. با این حال امکان عدم رابطه میان این دو مفهوم نیز وجود دارد. تبیین روابط خیر و درستی نیز در نظریات مختلف به اشکال مختلف بیان شده است.
درست و نادرست
هرچند که نمی توان به قطعیت گفت هر آنچه درست است خوب نیز هست اما به نظر می رسد که به لحاظ ارزشی این دو با هم تساوی دارند. یعنی ارزش درستی با ارزش خوبی برابری میکند با این تفاوت که خوبی مفهوم بسیار نسبی تر و شناورتری از درستی دارد. درستی و نادرستی امور با آثار عمل بر روی فرد انجام دهنده و دیگران در معرض عمل سر و کار دارد. فرد با ارتکاب عمل درست و یا نادرست در وهله اول خود را در موقعیت اخلاقی قرار داده و با این فضا سنجیده می شود. در مرحله بعدی آثار عمل فرد می تواند بر احساسات دیگران کارگر افتد و همین طور می تواند سود و زیان مادی به دیگران وارد کند. در نتیجه در اطلاق ارزش درست یا نادرست برای یک امر باید به تأثیرات آن امر بر فرد عامل و نیز تأثیرات آن بر دیگران توجه کرد.
برخی اوقات مفهوم «درست و نادرست» با مفهوم «مخالف و موافق قانون» اشتباه گرفته می شود. این دو مفهوم کاملاً از هم متفاوتند؛ ممکن است قوانینی وجود داشته باشد که چیزی که ندرست نیست را ممنوع سازد و یا امری نادرست را الزام کند. وقتی ما قادریم ساختارهایی مثل آن چه گفته شد را در ذهن خود بسازیم و بفهمیم معلوم میشود که ایدههای درستی متفاوت از ایدههای قانونی هستند. زیرا ما به واسطه ایدههای درستی می توانیم قوانین را نیز مورد ارزیابی قرار دهیم.
عده ای از متفکران فلسفه اخلاق معتقدند که درستی و نادرستی امری نسبی است. اینان استناد می کنند بر تأثیر زمان و مکان بر درستی و نادرستی امور و یا بستگی درستی امور به شرایط. اما این استنتاج غلط است؛ گزارههای مذکور به معنای نسبی بودن بنیان اخلاقیات نیست بلکه به این معناست که اصول بنیادین اخلاق در شرایط مختلف اعمال متفاوتی را ایجاب می کند. یعنی ما بنیاد محکمی برای اخلاق داریم که بر آن ساختمانی نسبی ساخته شده است.
11:35 am
معناشناسی اجرا
وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیاتها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین میکند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.
برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی میشوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا میکنند.

کتابخانه هسته
اغلب زبانهای برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده میشوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازیهای زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتمها، داده ساختارها و مکانیزمهای ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار میکنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هستهای را مشخص میکنند که باید در تمام پیاده سازیها موجود باشند، و در زبانهای استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبانها به گونهای تعریف شدهاند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونهای از کلاس “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 در برنامههای تعبیه شده و سیستمهای عامل؛ و بقیه برنامهها معمولاً برای نوشتن انواع دیگر برنامهها کاربرد دارند. روشهای مختلفی برای سنجش محبوبیت زبانها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شدهاست:
شمارش تعداد تبلیغات شغلی که از آن زبان نام میبرند.
تعداد کتابهای آموزشی و شرح دهندهٔ آن زبان که فروش رفتهاست.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبانهایی را که در جستجوها کمتر پیدا میشوند دست کم گرفته شوند.
شمارش ارجاعهای زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.
طبقه بندیها هیچ برنامه غالبی برای دسته بندی زبانهای برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبانها معمولاً با ترکیب المانهای چند زبان پیشینه بوجود میآیند که هربار ایدههای جدید درگردشند. ایدههایی که در یک زبان ایجاد میشوند در یک خانواده از زبانهای مرتبط پخش میشوند، و سپس از بین خلاهای بین خانوادهها منتقل شده و در خانوادههای دیگر ظاهر میشوند.
این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر میکند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق میکند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.
در نگاه کلی، زبانهای برنامه نویسی به مثالهای برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم میشوند. مثالها شامل برنامه نویسی رویهای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبانها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبانهای برنامه نویسی ممکن است همه منظوره باشند، زبانهای برنامه نویسی سیستمی، زبانهای اسکریپتی، زبانهای محدوده مشخص، زبانهای همزمان/ گسترده(و یا ترکیب اینها). برخی زبانهای همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شدهاند.
یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثالهای برنامه نویسی دسته بندی شود. برای مثال، غالب زبانهای برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده میکنند، در حالیکه تعداد کمی این کار را نمیکنند. سایر زبانها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیاتها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین میکند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.
برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی میشوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا میکنند.

کتابخانه هسته
اغلب زبانهای برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده میشوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازیهای زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتمها، داده ساختارها و مکانیزمهای ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار میکنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هستهای را مشخص میکنند که باید در تمام پیاده سازیها موجود باشند، و در زبانهای استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبانها به گونهای تعریف شدهاند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونهای از کلاس “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 در برنامههای تعبیه شده و سیستمهای عامل؛ و بقیه برنامهها معمولاً برای نوشتن انواع دیگر برنامهها کاربرد دارند. روشهای مختلفی برای سنجش محبوبیت زبانها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شدهاست:
شمارش تعداد تبلیغات شغلی که از آن زبان نام میبرند.
تعداد کتابهای آموزشی و شرح دهندهٔ آن زبان که فروش رفتهاست.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبانهایی را که در جستجوها کمتر پیدا میشوند دست کم گرفته شوند.
شمارش ارجاعهای زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.
طبقه بندیها هیچ برنامه غالبی برای دسته بندی زبانهای برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبانها معمولاً با ترکیب المانهای چند زبان پیشینه بوجود میآیند که هربار ایدههای جدید درگردشند. ایدههایی که در یک زبان ایجاد میشوند در یک خانواده از زبانهای مرتبط پخش میشوند، و سپس از بین خلاهای بین خانوادهها منتقل شده و در خانوادههای دیگر ظاهر میشوند.
این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر میکند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق میکند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.
در نگاه کلی، زبانهای برنامه نویسی به مثالهای برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم میشوند. مثالها شامل برنامه نویسی رویهای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبانها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبانهای برنامه نویسی ممکن است همه منظوره باشند، زبانهای برنامه نویسی سیستمی، زبانهای اسکریپتی، زبانهای محدوده مشخص، زبانهای همزمان/ گسترده(و یا ترکیب اینها). برخی زبانهای همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شدهاند.
یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثالهای برنامه نویسی دسته بندی شود. برای مثال، غالب زبانهای برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده میکنند، در حالیکه تعداد کمی این کار را نمیکنند. سایر زبانها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.