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

که خانواده هستهای نیز خوانده میشود)، و خانواده گسترده (consanguinal) یا همخونی که در آن پدر و مادر و فرزندان با دیگران مثلا خویشاوندان در مکان مشترکی زندگی میکنند. همچنین در برخی جوامع مفاهیم دیگری از خانواده وجود دارد که روابط سنتی خانواده را کنار گذاشتهاند. خانواده به عنوان یک واحد اجتماعیِ جامعه پذیری، در جامعهشناسی خانواده مورد بررسی قرار میگیرد. تبارشناسی رشتهای است که دودمانهای خانوادگی را در تاریخ مطالعه میکند. همچنین اقتصاد خانواده در علم اقتصاد بررسی میشود.
دوستی
دوستی اصطلاحی است که برای توصیف رابطه همیارانه بین دو یا چند نفر بهکار میرود که به هر یک از آنها، دوست یا رفیق گفته میشود. رابطه دوستانه معمولاً شامل درک دوجانبه، احترام و محبت نیز هست.
خواستگاری
خواستگاری یا خوازه گری به معنی پیشنهاد ازدواج است.
در برخی گویش های فارسی مانند گویش همدانی، و گویش لکی خوازمنی هم گفته می شود.
در اسلام
در اسلام؛ خواستگاری از اشخاصی که امکان ازدواج را به لحاظ شرعی ندارند، ممنوع است. برای مثال زن شوهردار، زنی که به دلیل رابطهٔ خویشاوندی نزدیک ازدواج با او حرام است و زنی را که در عدهٔ رجعیه است، یعنی شوهرش او را طلاق قابل رجوع گفته و او در عدهٔ پس از طلاق است، نمیتوان خواستگاری کرد. در مورد امکان خواستگاری زن در عدهٔ طلاق بائن (غیرقابل رجوع) و وفات، نظرات مختلف است. بعضی گفتهاند خواستگاری به کنایه (و نه با صراحت) جایز است. کودکان را هم میتوان از ولی آنها (پدر و جد پدری) خواستگاری کرد، چون حق به ازدواج درآوردنشان با ایشان است. با اینکه در عرف مسلمانان خواستگاری از سوی مردان انجام میگیرد. منعی برای خواستگاری زن از مرد وجود ندارد. همچنین در مرحلهٔ خواستگاری و برای تصمیمگیری ازدواج میتوان برخی مقررات حجاب اسلامی را رعایت نکرد. برای مثال به صورت، دستان و موهای او نگریست.
ازدواج
ازدواج یا پیوند زناشویی پیوندی آیینیاست که طی احکام یا رسومی خاص بین زن و مرد در مذاهب و کشورهای مختلف برقرار میشود تا به تشکیل خانواده منجر گردد و میتواند منجر به زایش فرزند شود. در برخی از کشورهای جهان، ازدواج همجنسگرایان، یعنی ازدواج دو مرد یا دو زن با یکدیگر و تشکیل خانواده نیز وجود دارد.
تعاریف
مردمشناسان برای اینکه تنوع وسیع اَعمال زناشویی مشاهده شده از سوی فرهنگ را در نظر بگیرند چندین تعریف رقابتی از ازدواج پیشنهاد کردهاند. اِدوارد وستمارک در کتابش با عنوان «تاریخ ازدواج انسان (۱۹۲۱)» ازدواج را به این صورت تعریف میکند: ارتباط پردوام یا کمدوام نر و ماده گذشته از عمل زادآوری محض تا بعد از تولد فرزند«. او در کتاب» آیندهٔ ازدواج در تمدن وسترن «تعریف پیشیناش را رد میکند و در عوض بطور موقت ازدواج را اینگونه تعریف میکند:»رابطهٔ یک یا تعداد بیشتری مرد با یک یا تعداد بیشتری زن که بوسیلهٔ عرف یا قانون پذیرفته شدهاست«.
یادداشتها و جستجوها (۱۹۵۱)، کتابچه راهنمای انسانشناسی، ازدواج را چنین تعریف کردهاست، «پیوندی بین یک زن و یک مرد بطوریکه بچههای متولد شده از زن بعنوان فرزندان مشروع هر دوی والدین شناخته شوند.» در راستای رویهٔ معمول در میان مردم ساکن قبایل جنوب سودان و غرب اتیوپی که به زنها اجازه میداد در شرایط خاص در نقش شوهر عمل کنند، کاتلین گوگ [ انسانشناس بریتانیایی ] پیشنهاد داد که آن تعریف را به این صورت تغییر دهند که «یک زن و یک یا چند شخص دیگر».
دموند لیچ تعریف گافس را مورد انتقاد قرار میدهد و آن را در مقولهٔ شناخت حلالزادگی (مشروعیت) فرزند بسیار دست و پاگیر میداند و پیشنهاد میکند که ازدواج را مانند انواع متفاوتی از قوانین که برای اجرایی شدن وضع میشوند نگاه کنیم. لیچ تعریفاش را باز میکند و میگوید: «ازدواج رابطهای است که بین یک زن با یک یا تعداد بیشتری از اشخاص دیگر برقرار میشود- که این روابط تولد کودکی را تحت پیشامدهایی که توسط قوانین رابطهها قدغن نشدهاند میسّر میکند- تمامی قوانین همگانی مراتب تولد مطابقت داده شدهاند با عضوهای معمولی یا سطوح متفاوت جامعه». استدلال لیچ این است که هیچکدام از تعاریف ازدواج برای همه فرهنگها قابل اجرا نیست. او لیستی از ده قانون مرتبطشده با ازدواج را ارائه میکند شامل انحصار جنسی، قوانینی با احترام به کودک و قوانین متنوع ویژهای از سوی فرهنگ.
دوران بل همچنین تعریف بنیان مشروعیت را با این اصل که برخی جوامع برای ازدواج به مشروعیت احتیاج ندارند مورد نقد قرار میدهد و اینگونه استدلال میکند: در جوامعی که نامشروعیت فقط به معنای ازدواج نکردن مادر است و غیر از این هیچ قانون ضمنی دیگری وجود ندارد تعریف بنیان مشروعیت ازدواج چرخهای است. او تعریف ازدواج را در مقولهٔ قوانین دستیابی جنسی قرار میدهد.
دیدگاههای معاصر در مورد ازدواج
انتقادها
بسیاری از مردم به دلایل گوناگون، استدلالهایی بر ضد ازدواج دارند. این استدلالها شامل نقدهای سیاسی و مذهبی، اشاره به میزان طلاق، و نیز اهمیت تجرد بر پایهٔ آموزههای مذهبی و فلسفی میشود.
انتخاب شریک عاطفی-جنسی
گوناگونی وسیعی در سطح فرهنگها، در رسومی که انتخاب همسر را کنترل میکنند وجود دارد. گوناگونیها یی در مورد سطحی که انتخاب همسر یک انتخاب شخصی توسط طرفین یا تصمیمی جمعی توسط خویشاوندهای دو طرف است و قوانینی که مشخص میکنند، کدام افراد انتخابهای معتبری محسوب میشوند وجود دارد.
در بسیاری از جوامع انتخاب همسر به افرادی مناسب از گروههای اجتماعی ویژه محدود میشود. در بعضی از جوامع رسم بر این است که همسر از درون گروه اجتماعی خود فرد انتخاب میشود - درون همسری "endogamy". این وضعیتی است که در بسیاری از جوامع که بر پایه صفوف و طبقات بنا شدهاند صدق میکند. ولی در دیگر جوامع همسر باید از گروهی به جز گروه خود انتخاب گردد- برون همسری "exogamy". این وضعیت در مورد جوامع فراوانی که آیین توتمی دارند و جامعه به چند قبیله توتمی برون همسر تقسیم شدهاست صادق است، همانند بیشتر جوامع بومی استرالیایی. در جوامع دیگر از فرد انتظار میرود با عموزادهها ازدواج کند. زن باید با پسر خواهر پدرش ازدواج کند و مرد با دختر برادر مادرش-این عمدتاً حالت جوامعی است که رسم دارند شجره نامه را تنها از خط پدری یا مادری پیگیری کنند، مانند مردم آکان آفریقا. نوع دیگر انتخاب، ازدواج با برادر شوهر «levirate marriage» است که در آن بیوه باید با برادر شوهرش ازدواج کند، این شیوه عمدتاً درجوامعی که بر پایه گروههای قبیلهای درون همسر بنا شدهاند یافت میشود.
در فرهنگهای دیگر رسومی که بر گروههایی که همسر میتواند از آنها انتخاب شود نظارت میکنند کمتر سختگیرانه هستند. انتخاب همسر میتواند یا شامل طی یک فرایند انتخابی به شیوه معاشقه توسط زوج یا تنظیم ازدواج توسط والدین زوج یا فردی بیرونی، دلال ازدواج، شود.
ازدواجهای کاربردی (یا «مصلحتی») به مدد روالهای رسمی خانواده یا سیاستهای گروهی تسهیل میشوند. یک مرجع مسئول روال ازدواج را تنظیم یا افراد را به آن تشویق میکند؛ حتا ممکن است برای یافتن همسر مناسب برای فرد مجرد، یک دلال ازدواج به کار گرفته شود. مرجعیت ممکن است با والدین، خانواده، یک مقام مذهبی یا اجماع گروهی باشد. در بعضی موارد، مرجع مسئول ممکن است در انتخاب زوج انگیزههایی به غیر از تفاهم داشته باشد.
در دهکدههای روستایی هند، ازدواج کودک نیز انجام میشود که والدین آن را در گاهی حتی قبل از تولد کودک تنظیم میکنند. این عمل به موجب «مصوبه ممنوعیت ازدواج کودک» در ۱۹۲۹ ممنوع گشت.
در بعضی جوامع از آسیای مرکزی، قفقاز تا آفریقا هنوز سنت عروس ربایی وجود دارد که در آن عروس توسط مرد و دوستانش اسیر میشود. گاهی اوقات این کار در حقیقت فرار با معشوق را پنهان میکند اما گاهی اوقات به سمت خشونت جنسی تمایل دارد. در زمانهای گذشته ربایش زنان، مقیاسی بزرگتر از این بودهاست که در آن گروههایی از زنان توسط گروههایی از مردان، گاهی اوقات در جنگ، اسیر میشدند. معروفترین مثال برای این مورد، تجاوز به زنان اهل سابین میباشد که موجب شد اولین شهروندان روم اولین همسرانشان را بدست آوردند.
سایر شرکای ازدواج کمابیش کمتر تحمیلی هستند. برای مثال ارثی که به زن بیوه میرسد برای او مردی از برادران شوهر محرومش فراهم میکند.
همزیستی
ازدواج نهادی است که زندگی افراد را به شیوههای گوناگون عاطفی و اقتصادی به هم پیوند میزند. دربسیاری از فرهنگهای غربی، ازدواج معمولاً به ایجاد خانوادهای جدید که از زوج متاهل تشکیل میشود منجر میشود که در خانهای مشترک با هم زندگی میکنند و غالباً از بستر یکسانی استفاده میکنند، ولی در بعضی از فرهنگهای دیگر سنت این نیست. در میان «میانگ کاباو»ها در غرب سوماترا، در منزل مادری "matrilocal"است و شوهر به خانهٔ مادر زن نقل مکان میکند. اقامت بعد از ازدواج میتواند در منزل پدری "patrilocal" و یا منزل دایی شوهر"avunculocal" باشد. چنین ازدواجهایی در پکن امروزی به طور روزافزونی متداول میشوند.«گو جیانمی»، مدیر مرکز مطالعات زنان در دانشگاه پکن به خبرنگار «نیوزدی» گفت:«ازدواجهای پاره وقت»Walking marriage«نشان دهندهٔ تغییرات گسترده در جامعه چین است» تمهیدی مشابه در عربستان سعودی تحت عنوان «ازدواج میسیر» وجود دارد که در آن زن و شوهر جدا از هم زندگی میکنند و به طور مرتب با هم دیدار میکنند.
از سوی دیگر، ازدواج لازمهٔ همزیستی نیست. در بعضی موارد زوجهایی که با هم زندگی میکنند دوست ندارد متاهل شناخته شوند. مثلاً هنگامی که حق بازنشستگی یا نفقه به طرز منفی تحت تاثیر قرار میگیرند یا به خاطر ملاحظات مالیاتی، مسائل مهاجرتی و دلایل فراوان دیگر. در جوامع امروزی غربی بعضی از زوجها پیش از ازدواج با هم زندگی میکنند تا کارایی چنین تمهیدی را در طولانی مدت بیازمایند. در بعضی از موارد هم زیستی ممکن است منجر به ازدواج عرفی شود و در بعضی از کشورها هم زیستی را به رسمیت ازدواج به جهت منافع مالیاتی و امنیت اجتماعی ترجیح میدهند. این در مورد استرالیا صدق میکند.
محدودیتهای ازدواج
ازدواج نهادی است که به صورت تاریخی توسط جامعه به منظور حفظ منافع بچهها، انتقال ژنهای سالم، حفظ ارزشهای فرهنگی، یا به خاطر تعصب و ترس با محدودیت همراه بودهاست، از هر سن و نژاد تا هر وضعیت اجتماعی، هر نوع قرابت قوم و خویشی و هر جنسیتی. تقریباً همه فرهنگهایی که ازدواج را به رسمیت میشناسند زنای با دیگری را تخطی از ضوابط ازدواج میدانند.
ایالات متحده تاریخچهای از قوانین محدودیت در ازدواج دارد. ایالات زیادی به قوانینی که علیه ازدواج بین نژادی بود عمل میکردند که اولین بار در قرن ۱۷ (در مستعمره برده داری «ویرجینیاً۱۶۹۱ و»مریلند«۱۶۹۲) مطرح شد و تا ۱۹۶۷ که توسط قانون شهروندی Loving v. Virginia واژگون شد ادامه داشت. بسیاری ازین ایالات چندین اقلیت را از ازدواج با سفید پوستان منع کردند. مثلاً آلاباماً،» آرکانزاس«و»اکلاهاماً مشخصا سیاهان را منع کردند. ایلاتی مثل «میسیسیپی» و «میسوری» سیاهپوستان و آسیاییها را ممنوع کردند. ایالاتی چون«کارولینای شمای و جنوبی» سیاهان و بومیان امریکایی را و ایالاتی چون «جرجیاً،»کارولینای جنوبی«و»ویرجینیاً همه غیر سفیدپوستان را از ازدواج با سفید پوستان منع کردند.
به رسمیت شناختن قانونی ازدواج زوجهای هم جنس آن طور که برای زوجهای غیر هم جنس فراهم است، عملی نسبتاً جدید است. در ایالات متحده، مصوبه حمایت از ازدواج ۱۹۹۶ (DOMA) به طرز واضحی ازدواج به جهت اهداف قوانین فدرال را میان یک مرد و یک زن تعریف میکند و اجازه میدهد ایالتها ازدواج هم جنسها در ایالات دیگر را نادیده بگیرند (گرچه استدلال میشود که ایالتها میتوانستند قبلاً هم اینکار را بکنند). چهل و یک ایالت آمربکا ازدواج را میان یک مرد و یک زن تعریف میکنند. سه مورد از این ایالتها زبان قانونی دارند که از تعریف این چنینی DOMA قدیمی تر هستند (پیش از ۱۹۹۶ تصویب شدهاند). سی ایالت ازدواج را در قانون اساسی خود تعریف کردهاند. آریزونا تنها ایالتی است که تاکنون اصلاحیه قانون اساسی در مورد تعریف ازدواج تنها میان یک مرد و یک زن را رد کردهاست (۲۰۰۶)، ولی بعداً این اصلاحیه در ۲۰۰۸ تصویب شد.
در جوامع اغلب محدودیتهایی برای ازدواج با فامیل وجود داشتهاست، گرچه شدت این محدودیتها متفاوت بودهاست. به جز چند مورد استثنایی، ازدواج میان والدین و فرزندان یا میان خواهر و برادر با والدین یکسان زنا محسوب شده و ممنوع بودهاست. با این وجود، ازدواج میان فامیلهای دورتر بسیار متعارف بودهاست، و تخمینی در این باره حاکی از آن است که در ٪۸۰ ازدواجها در طول تاریخ نسبت خانوادگی نوه عموی والدینی و یا نزدیکتر بودهاست. در دوران مدرن این نسبت کاهش شدیدی داشتهاست، اما هنوز تخمین زده میشود که بیش از ٪۱۰ ازدواجها میان نوه عموهای والدینی یا عموزادهها صورت میگیرد. در ایالات متحد، امروزه چنین ازدواجهایی نکوهیدهاست، و ممنوعیت ازدواج عموزادهها در بیش از ۳۰ ایالت قانونی است. تنوع قابل ملاحظهاست: در کرهٔ جنوبی، در گذشته ازدواج با فردی با نام خانوادگی یکسان غیرقانونی بودهاست. در جوامع زیادی ازدواج به طبقهی اجتماعی فرد محدود بودهاست - پدیدهای که انسانشناسان درونهمسری مینامند. یک نمونه از چنین محدودیتهایی شرط ازدواج با همقبیلهای است. محدودیت در برابر چندهمسری نیز متداول بودهاست. مخالفت دولت فدرال آمریکا با به رسمیت شناختن دِسِرِت به عنوان یک ایالت بر پایهٔ مخالفت با ازدواجهای چندهمسریای بود که در گذشته در میان مورمونها رواج داشتهاست.
نگرشهای بحثبرانگیز
در رابطه با ازدواج، مباحثههای زیادی در کشورهای مختلف انجام شدهاست- از جمله: مباحث مربوط به سازگاری زوجهای دارای مذاهب، عقاید، تبارها یا نژادهای متفاوت، تعداد و حداقل سن قابلقبول برای زنان، حقوق زوجها (بهویژه زنان)، و تعهدات خانوادگی گستردهتر. بهطور مثال، یکی از مجادلههای دورهٔ معاصر (که علیالخصوص بهطور چشمگیری در ایالات متحد آمریکا جریان دارد) عبارت است از، ممانعت از قانونیشدن روابط همجنسگرایانه، تأیید اجتماعی آن، و بهرهمندی از حقوق و تعهدات قانونی. در برخی از کشورها، محافظهکاران اجتماعی با ازدواج همجنسگرایان مخالفاند، با این ادعا که هرگونه تلاشی برای تعریف ازدواج به شکلی غیر از «پیوند یک مرد و یک زن»، موجب «تهیشدن واژهٔ ازدواج از معنا و مفهوم اصلیاش» خواهد شد. همچنین، در دیگر کشورها، چندهمسری یک رسم «به لحاظ اجتماعی محافظهکارانه» است. از سوی دیگر، مدافعان ازدواجِ افراد هممذهب و همنژاد، ممکن است به ترتیب، قانونیشدن ازدواج بینالادیانی و ازدواج میاننژادی را محکوم کنند.
ایالت ماساچوست، خواستار تجدیدنظر دولت فدرال ایالات متحد آمریکا در مورد تعریفاش از پدیدهٔ ازدواج شدهاست. ایالت ماساچوست نخستین ایالتی بود که ازدواج همجنسگرایان را به رسمیت شناخت. بر پایهٔ این دعوی، «لایحهٔ دفاع از ازدواج ۱۹۹۶» (DOMA) به حق حاکمیت و خودمختاری ایالتها برای ارائهٔ تعریف خویش از مفهوم ازدواج تجاوز کردهاست. این دعوی معتقد است که DOMA حق خودمختاری ایالت برای ارائهٔ تعریف خویش از مفهوم ازدواج را نقض کرده و مغایر با قانون اساسی است.
برانگیختگی هفتساله زناشویی
برانگیختگی هفتساله زناشویی سندرم، نظریه، عقیده و اصطلاحی در روانشناسی رابطه است که میگوید پس از حدود کم و بیش هفت سال اشتیاق جنسی و احساس رضایت رابطه زناشویی به تدریج کاسته میگردد. این نظریه از گرایش به پیمانشکنی و خیانت زناشویی در حدود سال هفتم ازدواج سخن میگوید. تمایل به طلاق از دیگر ادعاهای این نظریه است. این موضوع روانشناسی همچنین تمایل فرد متاهل به ارزیابی مجدد در ارتباط زناشویش را بازگو میکند. البته این مدت بر اساس آمار و شواهد ممکنا" و محتملا" کمتر از هفت سال هم روی میدهد اما با توجه به این که بر اساس برخی آمارها در آمریکا متوسط طول عمر هر ازدواج هفت سال است مدت هفت سال را برای این تئوری در نظر گرفتهاند.
وسوسه و برانگیختگی هفتساله زناشویی چیز بدی نیست ولی آن چیز که اهمیت دارد این است که نباید توجه زیادی به آن کرد زیرا در زندگی اولویت اصلی ازدواج و روابط با همسر است.
چندهمسری
گروههای مذهبی رویکردهای متفاوتی بر مشروعیت چند همسری دارند. اختیار کردن بیش از یک همسر برای مرد، این عمل در اسلام و کنفوسیوس مجاز است، هر چند که امروزه در بسیاری مناطق غیر معمول شدهاست. در گذشته چند همسری در مذاهبی چون یهود، مسیحیت و هندوئیسم، مجاز بودهاست، ولی اخیراً توسط جریانات اعمال قدرت دنیای مدرن، ممنوع شدهاست.
حقوق و وظایف
ازدواج به زوجین، حقوق و وظایفی اعطا میکند. و از آنجاییکه یگانه ساختار ایجاد خویشاوندی سببی است این وضع گاهی شامل خویشاوندان آنها نیز میشود. و میتواند شامل موارد ذیل باشد:
واگذاری کنترل بر خدمات جنسی، کار و اموال همسر به شوهر/زن یا خانوادهٔ دیگری
واگذاری مسئولیت دیون همسر به شوهر/زن
دادن حق ملاقات همسر به شوهر/زن هنگامی که وی بستری با زندانی است
واگذاری کنترل امور همسر به شوهر/زن هنگامی که وی ناتوان است
گماشتن دومین سرپرست قانونی فرزند والد
برقراری حسابی مالی مشترک به خاطر کودکان
برقراری خویشاوندی میان خانوادههای زوجین
این حقوق و وظایف در میان جوامع و گروههای گوناگون در هر جامعه به طور قابل ملاحظهای متغیر است.
ازدواج گروهی
ازدواج گروهی که همچنین تحت عنوان ازدواج چند جانبه شناخته میشود، فرمی از چندمهری (پلی آموری) است در آن بیش از دو نفر واحد خانواده را تاسیس میکنند و تمام اعضای ازدواج گروهی، همسر تمام اعضای دیگر ازدواج گروهی محسوب میشود، و تمام اعضای ازدواج مسئولیت والدینی را برای هر کودکی که از ازدواج حاصل شود به عهده میگیرند. هیچ کشوری ازدواجهای گروهی را چه از لحاظ قانون و چه از لحاظ قانون عرفی نپذیرفتهاست.
ازدواج در جامعهشناسی
جامعهشناسی خانواده به بررسی واقعیتهای موجود در مفهوم «خانواده» و ریشهیابی دگرگونیهای آن میپردازد. به طور کلی، ازدواج موجب تغییر نقشهای اجتماعی و جابهجایی پایگاه اجتماعی افراد میشود.
موضوع مکانگزینی زوج پس از ازدواج یکی از موضوعات مورد پژوهش در جامعهشناسی و انسانشناسی است.
محل سکونت، بعد از ازدواج
نظریههای اولیهای که سعی در توضیح ِ عوامل تعیینکنندهٔ «محل سکونت پس از ازدواج» داشتهاند - برای مثال سکونت با خویشاوندان شوهر، زن یا سکونت در نزدیکی آنها- آن را با تقسیم جنسی کار مرتبط دانستهاند (از جمله، نظریههای لوییس هنری مورگان، ادوارد تیلور، یا جورج پتر مُرداک). با این وجود، با گذشت زمان، پژوهشهای میانفرهنگی که با استفاده از نمونهگیریهای جهانی بر روی این فرضیه انجام شد، نتوانست رابطهٔ چشمگیری بین این دو متغیر بیابد؛ البته تحقیقات کوروتایو (Korotayev) نشان دادهاست که، بهطورکلی کمک و مشارکتِ زن در امرار معاش، همبستگی چشمگیری با سکونت در نزدیکی خانوادهٔ زن دارد؛ با این حال، این همبستگی زیر پوشش عامل متداولی همچون «چند زنی» پنهان ماندهاست. به بیان دقیقتر، اگرچه کمک زن به امرار معاش گرایش به آن دارد تا منجر به سکونت در نزدیکی خانوادهٔ زن بشود، توأمان گرایش به آن دارد تا به چند زنی ِ «غیرخواهرانه» (non-sororal، ازدواج مرد با کسی غیر از خواهر زنش) بینجامد. «چند زنی ِ غیرخواهرانه» مانع از سکونت در کنار خانوادهٔ تازه عروس میشود. اگر عامل «چند زنی» کنترل شود، تقسیم کار تبدیل به عامل مهمی برای پیشبینی محل سکونتِ پس از ازدواج خواهد شد. از اینرو، نظریهٔ مُرداک (Murdock) در زمینهٔ رابطهٔ بین تقسیم جنسی کار و محل سکونتِ پس از ازدواج، اساساً صحیح است، هر چند همانطور که کوروتایو نشان دادهاست، رابطهٔ موجود بین این متغیرها، پیچیدهتر از آن است که امکان پیشبینی را بدهد.
در جوامع امروزی، شاهد آن هستیم که افراد گرایش به آن دارند تا محلهای جدیدی را برای سکونت بعد از ازدواج انتخاب کنند.
سیر تاریخی ازدواج
ایران باستان
در زمان ساسانی نوع اصلی ازدواج ایرانی «زنیِ پادِخشای» خوانده میشد که در واقع انتقال قیمومیت دختر از پدر به شوهر بود. انواع دیگری هم از ازدواج بود از جمله «چَگَر» که هنگامی بود که شوهر توانایی فرزندآوری نداشت و زن خود را به عنوان همسر موقت به یکی از نزدیکان میداد تا فرزند آورد. چگر را به صورت چَکَر هم نوشتهاند. نوع دیگر که باعث بحث و جدلهای زیادی میان امروزیان شدهاست خویدوده بود که ازدواج با محارم است.
تاریخ ازدواج بر اساس فرهنگ
گرچه نهاد خانواده از تاریخ ثبت شده موثق فراتر میرود بسیاری از فرهنگها افسانههایی پیرامون خاستگاه ازدواج دارند. روشی که بدان صورت ازدواج انجام میشود و قواعد و انشعابات آن مانند خود نهاد بسته به فرهنگ و ویزگیهای آماری دوره در طول زمان تغییر کردهاست فرهنگهای گوناگون تئوریهای خود را در مورد خاستگاه ازدواج داشتهاند. برای مثال یکی میتواند ریشه در نیاز مرد به اطمینان از پدر فرزندانش بودن داشته باشد. در نتیجه شاید او راغب باشد که هزینهٔ عروس را بپردازد یا یک زن را به ازای دسترسی اختصاصی جنسی تامین کند حلال زادگی نتیجهٔ این معاملهاست تا انگیزههای آن. در جامعهٔ کومانچی زنان متاهل بیشتر کار میکنند آزادی جنسی را ازدست میدهند و به نظر نمیرسد هیچ سودی از ازدواج عاید کنند
اما زنهایی که میشد آنها را به همسری گرفت، همواره منبع حسادت و ستیز در قبیله بودند، بنابر این معمولاً انتخابی جز تن دادن به ازدواج نداشتند. «تقریباً در همه جوامع، دستیابی به زنها به نوعی از طریق رسمی و قانونی ممکن شدهاست تا بتوان شدت رقابتها را کاهش داد.» انواعی از ازدواجهای گروهی که در آنها بیش از یک نفر از یک جنس شرکت دارد، ولی چندزنی یا چند شوهری نیستند، در تاریخ وجود داشتهاند. اگرچه که این گونه ازدواجها به ندرت اتفاق میافتاد. از ۲۵۰ جامعه آماری که در سال ۱۹۴۹ توسط انسانشناس آمریکایی جورج پی. مرداک گزارش شده بود، تنها در میان اهالی کینگنگِ برزیل نوعی ازدواج گروهی دیده شد. انواع متفاوتی از ازدواج در دنیا وجود دارد. در بعضی از جوامع، فرد محدود است به اینکه در هر زمان تنها در یک زوج باقی بماند (تک همسری)، در حالیکه سایرفرهنگها به مرد اجازه میدهند که بیش از یک همسر داشته باشد (چندزنی) یا، در جوامع معدودی، به زن اجازه داده میشود که بیش از یک شوهر اختیار کند (چندشوهری). بعضی از جوامع نیز ازدواج بین دو مرد یا دو زن را مجاز میدانند. بیشتر جوامع برای ازدواج محدودیتهایی روی سن وسال افراد، روابط خویشاوندی پیشین آنها و یا عضویتشان در گروههای مذهبی و یا سایر گروههای اجتماعی قرار میدهند.
چین
منشا اساطیری ازدواج چینی، داستانی در مورد نووا و فوخی است، که روشهای مناسب ازدواج را پس از ازدواج شان، ابداع کردند. در جامعه باستانی چین، مردم با نام خانوادگی مشابه، مجاز به ازدواج با یکدیگر نبودند و این عمل به عنوان زنای با محارم، قلمداد میشد. با این حال، به دلیل ازدواج با بستگان مادر که زنا با محارم، تلقی نمیشد، خانوادهها گاهی ازدواجهای درون فامیلی، از نسلی به نسلی دیگر نیز داشتند. با گذشت زمان، علیرغم جابه جایی زیاد جغرافیایی مردم چین، نسبت بیولوژیکی اعضای خانواده همچنان برجا بود. هنگامی که زن و شوهری فوت میکردند، زن و شوهر به طور جداگانه در گورستان قبیله مربوطه به خاک سپرده میشدند. در نوع ازدواج مادرانه، مرد به عنوان پسر خوانده در خانهً همسر زندگی میکرد.
قانون جدید ازدواج در سال ۱۹۵۰، به طور اساسی سنتهای ازدواج را در چین تغییر داد. اعمال تک همسری، برابری حقوق زنان ومردان، و اهمیت انتخاب در ازدواج از جملهً این تغییرات بود. ازدواجهای مقرر(arranged marriage) اغلب، رایج ترین نوع ازدواج در چین، تا آن زمان بود.
اروپا
در یونان باستان، هیچ گونه مراسم خاص حقوقی برای ایجاد یک ازدواج لازم نبود - تنها توافق طرفین و اینکه زوج باید یکدیگر را بعنوان زن و شوهر بپذیرند کافی بود . مردها معمولاً وقتی به دوره ۲۰ یا ۳۰ سالگی میرسیدند ازدواج میکردند و انتظار داشتند که زنهای آنها در اوان نوجوانی باشند. عنوان شدهاست که این سنین برای یونانیان مناسب بود چرا که مردان معمولاً تا سن ۳۰ از خدمت سربازی فارغ شده بودند، و ازدواج با یک دختر جوان، باکرگی او را تضمین میکرد . زنان ازدواج کرده یونانی در یونان باستان حقوق کمی داشتند و انتظار میرفت که از خانه و فرزندان مراقبت کنند . زمان، عامل با اهمیتی در ازدواجهای یونانی بود. به عنوان مثال، بر اساس یک عقیده خرافی، ازدواج در زمانی که ماه کامل بود خوش شانسی میآورده و همچنین از نظر رابرت فلاسلیره، یونانیان در زمستان ازدواج میکردند . وراثت بسیار مهمتر از احساسات بود: زنی که پدرش میمرد در صورتی که هیچ وارث مذکری نداشت وادار میشد که با نزدیکترین خویشاوند مذکر خود ازدواج کند - حتی اگر اول مجبور بود از شوهرش طلاق بگیرد.
در روم باستان انواع گوناگونی از ازدواج وجود داشت. گونه سنتی (متعارف) آن conventio in manum نامیده میشد نیاز به مراسمی با حضور شاهدان داشت و با مراسم بخصوصی نیز باطل میشد. در این گونه ازدواج، زن حقوق ارث بری را در خانواده سابق خود از دست میداد و حقوق خانواده جدیدش را میگرفت. او دیگر تحت تبعیت اختیارات همسرش بود . یک نوع ازدواج آزاد وجود داشت تحت عنوان sine manu. در این قرارداد، زن همچنان یک عضو از خانوادهٔ خود باقی میماند، او تحت تبعیت پدرش میماند، حقوق ارث بری خانواده سابق خود را حفظ میکند وهیچ حقوقی در خانواده جدیدش دریافت نمیکند. حداقل سن ازدواج برای دختران ۱۲ سال بود.
از اوایل دوره مسحیت (سالهای ۳۰ تا ۳۲۵)، به ازدواج به دید یک مقولهی کاملاً خصوصی نگاه میشد، بدون نیاز به هیچ گونه مراسم خاص مذهبی. اگرچه کشیش ایگناتوس اهل Antioch حدود سال ۱۱۰ به کشیش پلی کرپ اهل Smyrna نوشت، «ین گونهاست که هر دو زن و مردی که با هم ازدواج میکنند، که این پیوند با پذیرش کشیش شکل میگیرد، که ازدواج آنها در محضر خداوند انجام میشود، و نه بر پایهی شهوت خودشان.» / در قرن دوازدهم [کجا؟] زنها مجبور بودند که نام شوهران خود را بگیرند و با از ابتدای نیمهی دوم قرن شانزدهم [کجا؟] رضایتنامه والدین به همراه رضایتنامه کلیسا برای ازدواج لازم بود.
به جز چند مورد محلی تا ۱۵۴۵ ازدواجهای مسیحی در اروپا، با رضایت طرفین، اعلام قصد ازدواج و وصلت جسمانی دو طرف انجام میشد. زوج به طور شفاهی به هم پیمان میبستند که با یکدیگر ازدواج کنند. حضور کشیش یا شاهدین الزامی نبود. این پیمان به عنوان "verbum" شناخته میشد. اگر آزادانه و با فعل زمان حاضر ادا میشد (برای مثال «من با تو ازدواج میکنم») بدون تردید الزام آور بود. اگر به زمان آینده ادا میشد («من با تو ازدواج خواهم کرد»)، منجر به نامزدی میشد. یکی از کارکردهای کلیسا در دوران قرون وسطی ثبت ازدواجها بود که اجباری نبود. به دلیل اینکه این مسائل در دادگاه کلیسایی حل و فصل میشد، هیچ مداخلهٔ حکومتی در ازدواج و وضعیت فردی وجود نداشت. در قرون وسطی ازدواجها از قبل تعیین میشد، حتی گاهی اوقات در هنگام تولد. و این قرارهای ازدواج معمولاً برای اطمینان از صحت قراردادها میان خانوادههای مختلف سلطنتی، اشراف و وراث فیفها بود. کلیسا در برابر این وصلتهای تحمیلی مقاومت کرد و دلابل ابطال این قرارها را افزایش داد در همان حال که مسیحیت در دوره رومن و قرون وسطی گسترش یافت، ایده آزادی انتخاب در گزینش شریک زندگی با آن رشد کرد و گسترده شد.
متوسط سن ازدواج در اوخر قرن سیزدهم تا اوایل قرن شانزدهم، حدود ۲۵ سالگی بودهاست. نقش ازدواجهای ثبت شده و قوانین مربوط به ازدواج، به عنوان بخشی از اصلاحات پروتستان، به تصویب دولت رسید. این اصلاحات نگاه مارتین لوتر را منعکس میکرد که ازدواج «امری دنیوی» است. در قرن هفدهم، بسیاری از کشورهای اروپایی پروتستان، دچار درگیری با دولت درامرازدواج، بودند. در سال ۲۰۰۰، متوسط سن ازدواج در گسترهً ۴۴-۲۵ سالگی برای مردان و ۳۹-۲۲ سالگی برای زنان بود. در انگلستان در سال ۱۷۵۳، اعتبار ازدواج با رضایت و اجماع، تحت قانون تصویب شدهً Lord Hardwich، در کلیسای آنجلیکا، تعیین میشد. این عمل الزامات خاصی همچون، حضور شاهدان در مراسم، را برای ازدواج به وجود میآورد.
در بخشی از اقدامات مخالف با اصلاحات، در سال ۱۵۶۳، شورای ترنت فرمان داد که، تنها در صورتی ازدواج کاتولیک روم را به رسمیت میشناسد که مراسم رسمی ازدواج در حضور یک کشیش و دوشاهد اجرا شود. این شورا همچنین، در سال ۱۵۶۶، تعلیمات و دستورها مذهبیِ مرتبط با ازدواج را تحت عنوان «اتحاد زناشویی بین زن و مرد، قرارداد بین دو نفر واجد شرایط، که آنها را ملزم به زندگی با یکدیگر، در طول حیاتشان میکند.»صادر کرد.
در اوایل عصر حاضر، جان کالوین و همکاران پروتستانی او، به اصلاح قوانین مسیحی ازدواج، که مورد تصویب احکام حقوقی ازدواج ژنو بود، پرداختند. این اصلاحات، خواستار بازنگریِ قانون " لزوم شکل گیری ازدواج با الزامات دوگانهً ثبت نام دولتی و تقدیس کلیساًبود. در انگلستان و ولز در سال ۱۷۵۳، قانون ازدواج Lord Hardwick نیازمند مراسم رسمی بود. مختصر برگزار کردن این عمل، منجر به یک ازدواج خارج از قاعده (غیر معمولی) میشد. این نوع از ازدواجهای مخفی یا بی قاعده در زندان ناوگان (Fleet Prison) و صدها مکان دیگر انجام میشد. از سال ۱۶۹۰ تا تصویب قانون ازدواج در سال ۱۷۵۳، تنها تعداد ۳۰۰،۰۰ ازدواج مخفی درزندان ناوگان Fleet Prison))انجام شد. این قانون، نیازمند به اجرای مراسمی رسمی بود، که توسط کشیشی در کلیسای آنجلیکا و دو شاهد، به رسمیت شناخته و ثبت میشد. این قانون به هیچ وجه برای اقلیتهای یهودی و کواکرها (Quakers) لازمالاجرا نبود. آنها با آداب و رسوم خود ازدواج میکردند.
به موجب قانون ازدواج ۱۸۳۶ از سال ۱۸۳۷، در انگلستان و ولز، ازدواج مدنی به عنوان به موجب قانون ازدواج ۱۸۳۶ از سال ۱۸۳۷، در انگلستان و ولز، ازدواج مدنی به عنوان یک جایگزین قانونی برای ازدواج کلیسایی به رسمیت شناخته شد. در آلمان، ازدواجهای مدنی در ۱۸۷۵ به رسمیت شناخته شد. این قانون اجازه انجام مراسم ازدواج در برابر کارکن رسمی اداره کل امور مدنی را صادر کرد، به شرط آنکه هر دو نفر قصد خود برای ازدواج معتبر و موثر تایید کنند. همچنین پذیرفت که در صورت تمایل طرفین مراسم مذهبی نیز به طور خصوصی برگزار شود.
در قانون معاصر عوام درانگلستان، ازدواج، قراردادی اختیاری میان یک زن و یک مرد است، که در این قرارداد آنها میپذیرند زن و شوهر باشند. ادوارد وسترمارک اظهار کردهاست که «نهاد ازدواج احتمالاً از یک عادت باستانی تکامل یافتهاست»
ازدواج از دیدگاه اخلاق
مصطفی ملکیان معتقد است ازدواج و فرزنداوری هر دو اخلاقاً ناروا هستند.
قدرت و نقشهای جنسیتی
نظریهٔ فمینیستی، به ازدواج با جنس مخالف به عنوان یک نهاد سنتی که در پدرسالاری ریشه دارد برخورد میکند و ازدواج را نهادی میداند که منجر به ترویج برتری و قدرت مرد بر زن میشود. این روابط قدرت، مردان را به عنوان «روزی رسان که در حوزهٔ عمومی عمل میکنند» و زنان را به عنوان«تامینکنندهٔ خدمات پرستاری و مراقبت که در حوزهٔ خصوصی عمل میکنند» در نظر میگیرد.» این با مفهوم ازدواج مساواتخواهانه که در آن قدرت و کار بین دو جنسیت به طور برابر تقسیم میشود، و این تقسیم برمبنای نقشهای جنسیتی صورت نمیگیرد در تضاد است.
در یک ازدواج، اختصاص دادنِ نقشهای جنسیتی غالب به مردان و نقشهای جنسیتی زیردستانه و سلطهپذیر به زنان، بر روابط قدرت درون رابطه اثر میگذارد. در برخی خانوادههای آمریکایی، زنان نقشهای جنسیتی کلیشهای را درونی میکنند، و غالباً خود را با نقش «همسر»، «مادر»، و «پرستار» در همانگی با هنجارهای اجتماعی و شریک مذکرشان وفق میدهند. «بل هوک» میگوید:«در ساختار خانواده، افراد یاد میگیرند که ستم جنسیتی را به عنوان امری»طبیعی«بپذیرند و این در حکم اولین قدم برای حمایت از سایر اشکال ستم، نظیر سلطهٔ یک جنس بر دیگری است.»
در ایالات متحد، مطالعات نشان دادهاست که، علارغم آرمانهای مساواتخواهانهای که ترویج میشوند، کمتر از نیمی از زنان به روابطشان با جنس مخالف از نظر قدرت به شکلی برابر مینگرند و روابط نابرابر که در آن مرد در سلطه قرار دارد بیشتر از همه به چشم میخورد. مطالعات همچنین نشان میدهند که زوجهای ازدواج کرده، بیشترین میزان رضایت خود را در روابط مساواتخواهانه تجربه میکنند.
در جوامع انسانی، خانواده به گروهی از افراد گفته میشود که با یکدیگر از طریق همخونی، تمایل سببی، و یا مکان زندگی مشترک وابستگی دارند. خانواده در بیشتر جوامع، نهاد اصلی جامعهپذیری کودکان است. انسان شناسان به طور کلی نهاد خانواده را این طور طبقه بندی میکنند: مادرتباری (مادر و فرزندان او)، زناشویی (زن و شوهر، و فرزندان.

که خانواده هستهای نیز خوانده میشود)، و خانواده گسترده (consanguinal) یا همخونی که در آن پدر و مادر و فرزندان با دیگران مثلا خویشاوندان در مکان مشترکی زندگی میکنند. همچنین در برخی جوامع مفاهیم دیگری از خانواده وجود دارد که روابط سنتی خانواده را کنار گذاشتهاند. خانواده به عنوان یک واحد اجتماعیِ جامعه پذیری، در جامعهشناسی خانواده مورد بررسی قرار میگیرد. تبارشناسی رشتهای است که دودمانهای خانوادگی را در تاریخ مطالعه میکند. همچنین اقتصاد خانواده در علم اقتصاد بررسی میشود.
دوستی
دوستی اصطلاحی است که برای توصیف رابطه همیارانه بین دو یا چند نفر بهکار میرود که به هر یک از آنها، دوست یا رفیق گفته میشود. رابطه دوستانه معمولاً شامل درک دوجانبه، احترام و محبت نیز هست.
خواستگاری
خواستگاری یا خوازه گری به معنی پیشنهاد ازدواج است.
در برخی گویش های فارسی مانند گویش همدانی، و گویش لکی خوازمنی هم گفته می شود.
در اسلام
در اسلام؛ خواستگاری از اشخاصی که امکان ازدواج را به لحاظ شرعی ندارند، ممنوع است. برای مثال زن شوهردار، زنی که به دلیل رابطهٔ خویشاوندی نزدیک ازدواج با او حرام است و زنی را که در عدهٔ رجعیه است، یعنی شوهرش او را طلاق قابل رجوع گفته و او در عدهٔ پس از طلاق است، نمیتوان خواستگاری کرد. در مورد امکان خواستگاری زن در عدهٔ طلاق بائن (غیرقابل رجوع) و وفات، نظرات مختلف است. بعضی گفتهاند خواستگاری به کنایه (و نه با صراحت) جایز است. کودکان را هم میتوان از ولی آنها (پدر و جد پدری) خواستگاری کرد، چون حق به ازدواج درآوردنشان با ایشان است. با اینکه در عرف مسلمانان خواستگاری از سوی مردان انجام میگیرد. منعی برای خواستگاری زن از مرد وجود ندارد. همچنین در مرحلهٔ خواستگاری و برای تصمیمگیری ازدواج میتوان برخی مقررات حجاب اسلامی را رعایت نکرد. برای مثال به صورت، دستان و موهای او نگریست.
ازدواج
ازدواج یا پیوند زناشویی پیوندی آیینیاست که طی احکام یا رسومی خاص بین زن و مرد در مذاهب و کشورهای مختلف برقرار میشود تا به تشکیل خانواده منجر گردد و میتواند منجر به زایش فرزند شود. در برخی از کشورهای جهان، ازدواج همجنسگرایان، یعنی ازدواج دو مرد یا دو زن با یکدیگر و تشکیل خانواده نیز وجود دارد.
تعاریف
مردمشناسان برای اینکه تنوع وسیع اَعمال زناشویی مشاهده شده از سوی فرهنگ را در نظر بگیرند چندین تعریف رقابتی از ازدواج پیشنهاد کردهاند. اِدوارد وستمارک در کتابش با عنوان «تاریخ ازدواج انسان (۱۹۲۱)» ازدواج را به این صورت تعریف میکند: ارتباط پردوام یا کمدوام نر و ماده گذشته از عمل زادآوری محض تا بعد از تولد فرزند«. او در کتاب» آیندهٔ ازدواج در تمدن وسترن «تعریف پیشیناش را رد میکند و در عوض بطور موقت ازدواج را اینگونه تعریف میکند:»رابطهٔ یک یا تعداد بیشتری مرد با یک یا تعداد بیشتری زن که بوسیلهٔ عرف یا قانون پذیرفته شدهاست«.
یادداشتها و جستجوها (۱۹۵۱)، کتابچه راهنمای انسانشناسی، ازدواج را چنین تعریف کردهاست، «پیوندی بین یک زن و یک مرد بطوریکه بچههای متولد شده از زن بعنوان فرزندان مشروع هر دوی والدین شناخته شوند.» در راستای رویهٔ معمول در میان مردم ساکن قبایل جنوب سودان و غرب اتیوپی که به زنها اجازه میداد در شرایط خاص در نقش شوهر عمل کنند، کاتلین گوگ [ انسانشناس بریتانیایی ] پیشنهاد داد که آن تعریف را به این صورت تغییر دهند که «یک زن و یک یا چند شخص دیگر».
دموند لیچ تعریف گافس را مورد انتقاد قرار میدهد و آن را در مقولهٔ شناخت حلالزادگی (مشروعیت) فرزند بسیار دست و پاگیر میداند و پیشنهاد میکند که ازدواج را مانند انواع متفاوتی از قوانین که برای اجرایی شدن وضع میشوند نگاه کنیم. لیچ تعریفاش را باز میکند و میگوید: «ازدواج رابطهای است که بین یک زن با یک یا تعداد بیشتری از اشخاص دیگر برقرار میشود- که این روابط تولد کودکی را تحت پیشامدهایی که توسط قوانین رابطهها قدغن نشدهاند میسّر میکند- تمامی قوانین همگانی مراتب تولد مطابقت داده شدهاند با عضوهای معمولی یا سطوح متفاوت جامعه». استدلال لیچ این است که هیچکدام از تعاریف ازدواج برای همه فرهنگها قابل اجرا نیست. او لیستی از ده قانون مرتبطشده با ازدواج را ارائه میکند شامل انحصار جنسی، قوانینی با احترام به کودک و قوانین متنوع ویژهای از سوی فرهنگ.
دوران بل همچنین تعریف بنیان مشروعیت را با این اصل که برخی جوامع برای ازدواج به مشروعیت احتیاج ندارند مورد نقد قرار میدهد و اینگونه استدلال میکند: در جوامعی که نامشروعیت فقط به معنای ازدواج نکردن مادر است و غیر از این هیچ قانون ضمنی دیگری وجود ندارد تعریف بنیان مشروعیت ازدواج چرخهای است. او تعریف ازدواج را در مقولهٔ قوانین دستیابی جنسی قرار میدهد.
دیدگاههای معاصر در مورد ازدواج
انتقادها
بسیاری از مردم به دلایل گوناگون، استدلالهایی بر ضد ازدواج دارند. این استدلالها شامل نقدهای سیاسی و مذهبی، اشاره به میزان طلاق، و نیز اهمیت تجرد بر پایهٔ آموزههای مذهبی و فلسفی میشود.
انتخاب شریک عاطفی-جنسی
گوناگونی وسیعی در سطح فرهنگها، در رسومی که انتخاب همسر را کنترل میکنند وجود دارد. گوناگونیها یی در مورد سطحی که انتخاب همسر یک انتخاب شخصی توسط طرفین یا تصمیمی جمعی توسط خویشاوندهای دو طرف است و قوانینی که مشخص میکنند، کدام افراد انتخابهای معتبری محسوب میشوند وجود دارد.
در بسیاری از جوامع انتخاب همسر به افرادی مناسب از گروههای اجتماعی ویژه محدود میشود. در بعضی از جوامع رسم بر این است که همسر از درون گروه اجتماعی خود فرد انتخاب میشود - درون همسری "endogamy". این وضعیتی است که در بسیاری از جوامع که بر پایه صفوف و طبقات بنا شدهاند صدق میکند. ولی در دیگر جوامع همسر باید از گروهی به جز گروه خود انتخاب گردد- برون همسری "exogamy". این وضعیت در مورد جوامع فراوانی که آیین توتمی دارند و جامعه به چند قبیله توتمی برون همسر تقسیم شدهاست صادق است، همانند بیشتر جوامع بومی استرالیایی. در جوامع دیگر از فرد انتظار میرود با عموزادهها ازدواج کند. زن باید با پسر خواهر پدرش ازدواج کند و مرد با دختر برادر مادرش-این عمدتاً حالت جوامعی است که رسم دارند شجره نامه را تنها از خط پدری یا مادری پیگیری کنند، مانند مردم آکان آفریقا. نوع دیگر انتخاب، ازدواج با برادر شوهر «levirate marriage» است که در آن بیوه باید با برادر شوهرش ازدواج کند، این شیوه عمدتاً درجوامعی که بر پایه گروههای قبیلهای درون همسر بنا شدهاند یافت میشود.
در فرهنگهای دیگر رسومی که بر گروههایی که همسر میتواند از آنها انتخاب شود نظارت میکنند کمتر سختگیرانه هستند. انتخاب همسر میتواند یا شامل طی یک فرایند انتخابی به شیوه معاشقه توسط زوج یا تنظیم ازدواج توسط والدین زوج یا فردی بیرونی، دلال ازدواج، شود.
ازدواجهای کاربردی (یا «مصلحتی») به مدد روالهای رسمی خانواده یا سیاستهای گروهی تسهیل میشوند. یک مرجع مسئول روال ازدواج را تنظیم یا افراد را به آن تشویق میکند؛ حتا ممکن است برای یافتن همسر مناسب برای فرد مجرد، یک دلال ازدواج به کار گرفته شود. مرجعیت ممکن است با والدین، خانواده، یک مقام مذهبی یا اجماع گروهی باشد. در بعضی موارد، مرجع مسئول ممکن است در انتخاب زوج انگیزههایی به غیر از تفاهم داشته باشد.
در دهکدههای روستایی هند، ازدواج کودک نیز انجام میشود که والدین آن را در گاهی حتی قبل از تولد کودک تنظیم میکنند. این عمل به موجب «مصوبه ممنوعیت ازدواج کودک» در ۱۹۲۹ ممنوع گشت.
در بعضی جوامع از آسیای مرکزی، قفقاز تا آفریقا هنوز سنت عروس ربایی وجود دارد که در آن عروس توسط مرد و دوستانش اسیر میشود. گاهی اوقات این کار در حقیقت فرار با معشوق را پنهان میکند اما گاهی اوقات به سمت خشونت جنسی تمایل دارد. در زمانهای گذشته ربایش زنان، مقیاسی بزرگتر از این بودهاست که در آن گروههایی از زنان توسط گروههایی از مردان، گاهی اوقات در جنگ، اسیر میشدند. معروفترین مثال برای این مورد، تجاوز به زنان اهل سابین میباشد که موجب شد اولین شهروندان روم اولین همسرانشان را بدست آوردند.
سایر شرکای ازدواج کمابیش کمتر تحمیلی هستند. برای مثال ارثی که به زن بیوه میرسد برای او مردی از برادران شوهر محرومش فراهم میکند.
همزیستی
ازدواج نهادی است که زندگی افراد را به شیوههای گوناگون عاطفی و اقتصادی به هم پیوند میزند. دربسیاری از فرهنگهای غربی، ازدواج معمولاً به ایجاد خانوادهای جدید که از زوج متاهل تشکیل میشود منجر میشود که در خانهای مشترک با هم زندگی میکنند و غالباً از بستر یکسانی استفاده میکنند، ولی در بعضی از فرهنگهای دیگر سنت این نیست. در میان «میانگ کاباو»ها در غرب سوماترا، در منزل مادری "matrilocal"است و شوهر به خانهٔ مادر زن نقل مکان میکند. اقامت بعد از ازدواج میتواند در منزل پدری "patrilocal" و یا منزل دایی شوهر"avunculocal" باشد. چنین ازدواجهایی در پکن امروزی به طور روزافزونی متداول میشوند.«گو جیانمی»، مدیر مرکز مطالعات زنان در دانشگاه پکن به خبرنگار «نیوزدی» گفت:«ازدواجهای پاره وقت»Walking marriage«نشان دهندهٔ تغییرات گسترده در جامعه چین است» تمهیدی مشابه در عربستان سعودی تحت عنوان «ازدواج میسیر» وجود دارد که در آن زن و شوهر جدا از هم زندگی میکنند و به طور مرتب با هم دیدار میکنند.
از سوی دیگر، ازدواج لازمهٔ همزیستی نیست. در بعضی موارد زوجهایی که با هم زندگی میکنند دوست ندارد متاهل شناخته شوند. مثلاً هنگامی که حق بازنشستگی یا نفقه به طرز منفی تحت تاثیر قرار میگیرند یا به خاطر ملاحظات مالیاتی، مسائل مهاجرتی و دلایل فراوان دیگر. در جوامع امروزی غربی بعضی از زوجها پیش از ازدواج با هم زندگی میکنند تا کارایی چنین تمهیدی را در طولانی مدت بیازمایند. در بعضی از موارد هم زیستی ممکن است منجر به ازدواج عرفی شود و در بعضی از کشورها هم زیستی را به رسمیت ازدواج به جهت منافع مالیاتی و امنیت اجتماعی ترجیح میدهند. این در مورد استرالیا صدق میکند.
محدودیتهای ازدواج
ازدواج نهادی است که به صورت تاریخی توسط جامعه به منظور حفظ منافع بچهها، انتقال ژنهای سالم، حفظ ارزشهای فرهنگی، یا به خاطر تعصب و ترس با محدودیت همراه بودهاست، از هر سن و نژاد تا هر وضعیت اجتماعی، هر نوع قرابت قوم و خویشی و هر جنسیتی. تقریباً همه فرهنگهایی که ازدواج را به رسمیت میشناسند زنای با دیگری را تخطی از ضوابط ازدواج میدانند.
ایالات متحده تاریخچهای از قوانین محدودیت در ازدواج دارد. ایالات زیادی به قوانینی که علیه ازدواج بین نژادی بود عمل میکردند که اولین بار در قرن ۱۷ (در مستعمره برده داری «ویرجینیاً۱۶۹۱ و»مریلند«۱۶۹۲) مطرح شد و تا ۱۹۶۷ که توسط قانون شهروندی Loving v. Virginia واژگون شد ادامه داشت. بسیاری ازین ایالات چندین اقلیت را از ازدواج با سفید پوستان منع کردند. مثلاً آلاباماً،» آرکانزاس«و»اکلاهاماً مشخصا سیاهان را منع کردند. ایلاتی مثل «میسیسیپی» و «میسوری» سیاهپوستان و آسیاییها را ممنوع کردند. ایالاتی چون«کارولینای شمای و جنوبی» سیاهان و بومیان امریکایی را و ایالاتی چون «جرجیاً،»کارولینای جنوبی«و»ویرجینیاً همه غیر سفیدپوستان را از ازدواج با سفید پوستان منع کردند.
به رسمیت شناختن قانونی ازدواج زوجهای هم جنس آن طور که برای زوجهای غیر هم جنس فراهم است، عملی نسبتاً جدید است. در ایالات متحده، مصوبه حمایت از ازدواج ۱۹۹۶ (DOMA) به طرز واضحی ازدواج به جهت اهداف قوانین فدرال را میان یک مرد و یک زن تعریف میکند و اجازه میدهد ایالتها ازدواج هم جنسها در ایالات دیگر را نادیده بگیرند (گرچه استدلال میشود که ایالتها میتوانستند قبلاً هم اینکار را بکنند). چهل و یک ایالت آمربکا ازدواج را میان یک مرد و یک زن تعریف میکنند. سه مورد از این ایالتها زبان قانونی دارند که از تعریف این چنینی DOMA قدیمی تر هستند (پیش از ۱۹۹۶ تصویب شدهاند). سی ایالت ازدواج را در قانون اساسی خود تعریف کردهاند. آریزونا تنها ایالتی است که تاکنون اصلاحیه قانون اساسی در مورد تعریف ازدواج تنها میان یک مرد و یک زن را رد کردهاست (۲۰۰۶)، ولی بعداً این اصلاحیه در ۲۰۰۸ تصویب شد.
در جوامع اغلب محدودیتهایی برای ازدواج با فامیل وجود داشتهاست، گرچه شدت این محدودیتها متفاوت بودهاست. به جز چند مورد استثنایی، ازدواج میان والدین و فرزندان یا میان خواهر و برادر با والدین یکسان زنا محسوب شده و ممنوع بودهاست. با این وجود، ازدواج میان فامیلهای دورتر بسیار متعارف بودهاست، و تخمینی در این باره حاکی از آن است که در ٪۸۰ ازدواجها در طول تاریخ نسبت خانوادگی نوه عموی والدینی و یا نزدیکتر بودهاست. در دوران مدرن این نسبت کاهش شدیدی داشتهاست، اما هنوز تخمین زده میشود که بیش از ٪۱۰ ازدواجها میان نوه عموهای والدینی یا عموزادهها صورت میگیرد. در ایالات متحد، امروزه چنین ازدواجهایی نکوهیدهاست، و ممنوعیت ازدواج عموزادهها در بیش از ۳۰ ایالت قانونی است. تنوع قابل ملاحظهاست: در کرهٔ جنوبی، در گذشته ازدواج با فردی با نام خانوادگی یکسان غیرقانونی بودهاست. در جوامع زیادی ازدواج به طبقهی اجتماعی فرد محدود بودهاست - پدیدهای که انسانشناسان درونهمسری مینامند. یک نمونه از چنین محدودیتهایی شرط ازدواج با همقبیلهای است. محدودیت در برابر چندهمسری نیز متداول بودهاست. مخالفت دولت فدرال آمریکا با به رسمیت شناختن دِسِرِت به عنوان یک ایالت بر پایهٔ مخالفت با ازدواجهای چندهمسریای بود که در گذشته در میان مورمونها رواج داشتهاست.
نگرشهای بحثبرانگیز
در رابطه با ازدواج، مباحثههای زیادی در کشورهای مختلف انجام شدهاست- از جمله: مباحث مربوط به سازگاری زوجهای دارای مذاهب، عقاید، تبارها یا نژادهای متفاوت، تعداد و حداقل سن قابلقبول برای زنان، حقوق زوجها (بهویژه زنان)، و تعهدات خانوادگی گستردهتر. بهطور مثال، یکی از مجادلههای دورهٔ معاصر (که علیالخصوص بهطور چشمگیری در ایالات متحد آمریکا جریان دارد) عبارت است از، ممانعت از قانونیشدن روابط همجنسگرایانه، تأیید اجتماعی آن، و بهرهمندی از حقوق و تعهدات قانونی. در برخی از کشورها، محافظهکاران اجتماعی با ازدواج همجنسگرایان مخالفاند، با این ادعا که هرگونه تلاشی برای تعریف ازدواج به شکلی غیر از «پیوند یک مرد و یک زن»، موجب «تهیشدن واژهٔ ازدواج از معنا و مفهوم اصلیاش» خواهد شد. همچنین، در دیگر کشورها، چندهمسری یک رسم «به لحاظ اجتماعی محافظهکارانه» است. از سوی دیگر، مدافعان ازدواجِ افراد هممذهب و همنژاد، ممکن است به ترتیب، قانونیشدن ازدواج بینالادیانی و ازدواج میاننژادی را محکوم کنند.
ایالت ماساچوست، خواستار تجدیدنظر دولت فدرال ایالات متحد آمریکا در مورد تعریفاش از پدیدهٔ ازدواج شدهاست. ایالت ماساچوست نخستین ایالتی بود که ازدواج همجنسگرایان را به رسمیت شناخت. بر پایهٔ این دعوی، «لایحهٔ دفاع از ازدواج ۱۹۹۶» (DOMA) به حق حاکمیت و خودمختاری ایالتها برای ارائهٔ تعریف خویش از مفهوم ازدواج تجاوز کردهاست. این دعوی معتقد است که DOMA حق خودمختاری ایالت برای ارائهٔ تعریف خویش از مفهوم ازدواج را نقض کرده و مغایر با قانون اساسی است.
برانگیختگی هفتساله زناشویی
برانگیختگی هفتساله زناشویی سندرم، نظریه، عقیده و اصطلاحی در روانشناسی رابطه است که میگوید پس از حدود کم و بیش هفت سال اشتیاق جنسی و احساس رضایت رابطه زناشویی به تدریج کاسته میگردد. این نظریه از گرایش به پیمانشکنی و خیانت زناشویی در حدود سال هفتم ازدواج سخن میگوید. تمایل به طلاق از دیگر ادعاهای این نظریه است. این موضوع روانشناسی همچنین تمایل فرد متاهل به ارزیابی مجدد در ارتباط زناشویش را بازگو میکند. البته این مدت بر اساس آمار و شواهد ممکنا" و محتملا" کمتر از هفت سال هم روی میدهد اما با توجه به این که بر اساس برخی آمارها در آمریکا متوسط طول عمر هر ازدواج هفت سال است مدت هفت سال را برای این تئوری در نظر گرفتهاند.
وسوسه و برانگیختگی هفتساله زناشویی چیز بدی نیست ولی آن چیز که اهمیت دارد این است که نباید توجه زیادی به آن کرد زیرا در زندگی اولویت اصلی ازدواج و روابط با همسر است.
چندهمسری
گروههای مذهبی رویکردهای متفاوتی بر مشروعیت چند همسری دارند. اختیار کردن بیش از یک همسر برای مرد، این عمل در اسلام و کنفوسیوس مجاز است، هر چند که امروزه در بسیاری مناطق غیر معمول شدهاست. در گذشته چند همسری در مذاهبی چون یهود، مسیحیت و هندوئیسم، مجاز بودهاست، ولی اخیراً توسط جریانات اعمال قدرت دنیای مدرن، ممنوع شدهاست.
حقوق و وظایف
ازدواج به زوجین، حقوق و وظایفی اعطا میکند. و از آنجاییکه یگانه ساختار ایجاد خویشاوندی سببی است این وضع گاهی شامل خویشاوندان آنها نیز میشود. و میتواند شامل موارد ذیل باشد:
واگذاری کنترل بر خدمات جنسی، کار و اموال همسر به شوهر/زن یا خانوادهٔ دیگری
واگذاری مسئولیت دیون همسر به شوهر/زن
دادن حق ملاقات همسر به شوهر/زن هنگامی که وی بستری با زندانی است
واگذاری کنترل امور همسر به شوهر/زن هنگامی که وی ناتوان است
گماشتن دومین سرپرست قانونی فرزند والد
برقراری حسابی مالی مشترک به خاطر کودکان
برقراری خویشاوندی میان خانوادههای زوجین
این حقوق و وظایف در میان جوامع و گروههای گوناگون در هر جامعه به طور قابل ملاحظهای متغیر است.
ازدواج گروهی
ازدواج گروهی که همچنین تحت عنوان ازدواج چند جانبه شناخته میشود، فرمی از چندمهری (پلی آموری) است در آن بیش از دو نفر واحد خانواده را تاسیس میکنند و تمام اعضای ازدواج گروهی، همسر تمام اعضای دیگر ازدواج گروهی محسوب میشود، و تمام اعضای ازدواج مسئولیت والدینی را برای هر کودکی که از ازدواج حاصل شود به عهده میگیرند. هیچ کشوری ازدواجهای گروهی را چه از لحاظ قانون و چه از لحاظ قانون عرفی نپذیرفتهاست.
ازدواج در جامعهشناسی
جامعهشناسی خانواده به بررسی واقعیتهای موجود در مفهوم «خانواده» و ریشهیابی دگرگونیهای آن میپردازد. به طور کلی، ازدواج موجب تغییر نقشهای اجتماعی و جابهجایی پایگاه اجتماعی افراد میشود.
موضوع مکانگزینی زوج پس از ازدواج یکی از موضوعات مورد پژوهش در جامعهشناسی و انسانشناسی است.
محل سکونت، بعد از ازدواج
نظریههای اولیهای که سعی در توضیح ِ عوامل تعیینکنندهٔ «محل سکونت پس از ازدواج» داشتهاند - برای مثال سکونت با خویشاوندان شوهر، زن یا سکونت در نزدیکی آنها- آن را با تقسیم جنسی کار مرتبط دانستهاند (از جمله، نظریههای لوییس هنری مورگان، ادوارد تیلور، یا جورج پتر مُرداک). با این وجود، با گذشت زمان، پژوهشهای میانفرهنگی که با استفاده از نمونهگیریهای جهانی بر روی این فرضیه انجام شد، نتوانست رابطهٔ چشمگیری بین این دو متغیر بیابد؛ البته تحقیقات کوروتایو (Korotayev) نشان دادهاست که، بهطورکلی کمک و مشارکتِ زن در امرار معاش، همبستگی چشمگیری با سکونت در نزدیکی خانوادهٔ زن دارد؛ با این حال، این همبستگی زیر پوشش عامل متداولی همچون «چند زنی» پنهان ماندهاست. به بیان دقیقتر، اگرچه کمک زن به امرار معاش گرایش به آن دارد تا منجر به سکونت در نزدیکی خانوادهٔ زن بشود، توأمان گرایش به آن دارد تا به چند زنی ِ «غیرخواهرانه» (non-sororal، ازدواج مرد با کسی غیر از خواهر زنش) بینجامد. «چند زنی ِ غیرخواهرانه» مانع از سکونت در کنار خانوادهٔ تازه عروس میشود. اگر عامل «چند زنی» کنترل شود، تقسیم کار تبدیل به عامل مهمی برای پیشبینی محل سکونتِ پس از ازدواج خواهد شد. از اینرو، نظریهٔ مُرداک (Murdock) در زمینهٔ رابطهٔ بین تقسیم جنسی کار و محل سکونتِ پس از ازدواج، اساساً صحیح است، هر چند همانطور که کوروتایو نشان دادهاست، رابطهٔ موجود بین این متغیرها، پیچیدهتر از آن است که امکان پیشبینی را بدهد.
در جوامع امروزی، شاهد آن هستیم که افراد گرایش به آن دارند تا محلهای جدیدی را برای سکونت بعد از ازدواج انتخاب کنند.
سیر تاریخی ازدواج
ایران باستان
در زمان ساسانی نوع اصلی ازدواج ایرانی «زنیِ پادِخشای» خوانده میشد که در واقع انتقال قیمومیت دختر از پدر به شوهر بود. انواع دیگری هم از ازدواج بود از جمله «چَگَر» که هنگامی بود که شوهر توانایی فرزندآوری نداشت و زن خود را به عنوان همسر موقت به یکی از نزدیکان میداد تا فرزند آورد. چگر را به صورت چَکَر هم نوشتهاند. نوع دیگر که باعث بحث و جدلهای زیادی میان امروزیان شدهاست خویدوده بود که ازدواج با محارم است.
تاریخ ازدواج بر اساس فرهنگ
گرچه نهاد خانواده از تاریخ ثبت شده موثق فراتر میرود بسیاری از فرهنگها افسانههایی پیرامون خاستگاه ازدواج دارند. روشی که بدان صورت ازدواج انجام میشود و قواعد و انشعابات آن مانند خود نهاد بسته به فرهنگ و ویزگیهای آماری دوره در طول زمان تغییر کردهاست فرهنگهای گوناگون تئوریهای خود را در مورد خاستگاه ازدواج داشتهاند. برای مثال یکی میتواند ریشه در نیاز مرد به اطمینان از پدر فرزندانش بودن داشته باشد. در نتیجه شاید او راغب باشد که هزینهٔ عروس را بپردازد یا یک زن را به ازای دسترسی اختصاصی جنسی تامین کند حلال زادگی نتیجهٔ این معاملهاست تا انگیزههای آن. در جامعهٔ کومانچی زنان متاهل بیشتر کار میکنند آزادی جنسی را ازدست میدهند و به نظر نمیرسد هیچ سودی از ازدواج عاید کنند
اما زنهایی که میشد آنها را به همسری گرفت، همواره منبع حسادت و ستیز در قبیله بودند، بنابر این معمولاً انتخابی جز تن دادن به ازدواج نداشتند. «تقریباً در همه جوامع، دستیابی به زنها به نوعی از طریق رسمی و قانونی ممکن شدهاست تا بتوان شدت رقابتها را کاهش داد.» انواعی از ازدواجهای گروهی که در آنها بیش از یک نفر از یک جنس شرکت دارد، ولی چندزنی یا چند شوهری نیستند، در تاریخ وجود داشتهاند. اگرچه که این گونه ازدواجها به ندرت اتفاق میافتاد. از ۲۵۰ جامعه آماری که در سال ۱۹۴۹ توسط انسانشناس آمریکایی جورج پی. مرداک گزارش شده بود، تنها در میان اهالی کینگنگِ برزیل نوعی ازدواج گروهی دیده شد. انواع متفاوتی از ازدواج در دنیا وجود دارد. در بعضی از جوامع، فرد محدود است به اینکه در هر زمان تنها در یک زوج باقی بماند (تک همسری)، در حالیکه سایرفرهنگها به مرد اجازه میدهند که بیش از یک همسر داشته باشد (چندزنی) یا، در جوامع معدودی، به زن اجازه داده میشود که بیش از یک شوهر اختیار کند (چندشوهری). بعضی از جوامع نیز ازدواج بین دو مرد یا دو زن را مجاز میدانند. بیشتر جوامع برای ازدواج محدودیتهایی روی سن وسال افراد، روابط خویشاوندی پیشین آنها و یا عضویتشان در گروههای مذهبی و یا سایر گروههای اجتماعی قرار میدهند.
چین
منشا اساطیری ازدواج چینی، داستانی در مورد نووا و فوخی است، که روشهای مناسب ازدواج را پس از ازدواج شان، ابداع کردند. در جامعه باستانی چین، مردم با نام خانوادگی مشابه، مجاز به ازدواج با یکدیگر نبودند و این عمل به عنوان زنای با محارم، قلمداد میشد. با این حال، به دلیل ازدواج با بستگان مادر که زنا با محارم، تلقی نمیشد، خانوادهها گاهی ازدواجهای درون فامیلی، از نسلی به نسلی دیگر نیز داشتند. با گذشت زمان، علیرغم جابه جایی زیاد جغرافیایی مردم چین، نسبت بیولوژیکی اعضای خانواده همچنان برجا بود. هنگامی که زن و شوهری فوت میکردند، زن و شوهر به طور جداگانه در گورستان قبیله مربوطه به خاک سپرده میشدند. در نوع ازدواج مادرانه، مرد به عنوان پسر خوانده در خانهً همسر زندگی میکرد.
قانون جدید ازدواج در سال ۱۹۵۰، به طور اساسی سنتهای ازدواج را در چین تغییر داد. اعمال تک همسری، برابری حقوق زنان ومردان، و اهمیت انتخاب در ازدواج از جملهً این تغییرات بود. ازدواجهای مقرر(arranged marriage) اغلب، رایج ترین نوع ازدواج در چین، تا آن زمان بود.
اروپا
در یونان باستان، هیچ گونه مراسم خاص حقوقی برای ایجاد یک ازدواج لازم نبود - تنها توافق طرفین و اینکه زوج باید یکدیگر را بعنوان زن و شوهر بپذیرند کافی بود . مردها معمولاً وقتی به دوره ۲۰ یا ۳۰ سالگی میرسیدند ازدواج میکردند و انتظار داشتند که زنهای آنها در اوان نوجوانی باشند. عنوان شدهاست که این سنین برای یونانیان مناسب بود چرا که مردان معمولاً تا سن ۳۰ از خدمت سربازی فارغ شده بودند، و ازدواج با یک دختر جوان، باکرگی او را تضمین میکرد . زنان ازدواج کرده یونانی در یونان باستان حقوق کمی داشتند و انتظار میرفت که از خانه و فرزندان مراقبت کنند . زمان، عامل با اهمیتی در ازدواجهای یونانی بود. به عنوان مثال، بر اساس یک عقیده خرافی، ازدواج در زمانی که ماه کامل بود خوش شانسی میآورده و همچنین از نظر رابرت فلاسلیره، یونانیان در زمستان ازدواج میکردند . وراثت بسیار مهمتر از احساسات بود: زنی که پدرش میمرد در صورتی که هیچ وارث مذکری نداشت وادار میشد که با نزدیکترین خویشاوند مذکر خود ازدواج کند - حتی اگر اول مجبور بود از شوهرش طلاق بگیرد.
در روم باستان انواع گوناگونی از ازدواج وجود داشت. گونه سنتی (متعارف) آن conventio in manum نامیده میشد نیاز به مراسمی با حضور شاهدان داشت و با مراسم بخصوصی نیز باطل میشد. در این گونه ازدواج، زن حقوق ارث بری را در خانواده سابق خود از دست میداد و حقوق خانواده جدیدش را میگرفت. او دیگر تحت تبعیت اختیارات همسرش بود . یک نوع ازدواج آزاد وجود داشت تحت عنوان sine manu. در این قرارداد، زن همچنان یک عضو از خانوادهٔ خود باقی میماند، او تحت تبعیت پدرش میماند، حقوق ارث بری خانواده سابق خود را حفظ میکند وهیچ حقوقی در خانواده جدیدش دریافت نمیکند. حداقل سن ازدواج برای دختران ۱۲ سال بود.
از اوایل دوره مسحیت (سالهای ۳۰ تا ۳۲۵)، به ازدواج به دید یک مقولهی کاملاً خصوصی نگاه میشد، بدون نیاز به هیچ گونه مراسم خاص مذهبی. اگرچه کشیش ایگناتوس اهل Antioch حدود سال ۱۱۰ به کشیش پلی کرپ اهل Smyrna نوشت، «ین گونهاست که هر دو زن و مردی که با هم ازدواج میکنند، که این پیوند با پذیرش کشیش شکل میگیرد، که ازدواج آنها در محضر خداوند انجام میشود، و نه بر پایهی شهوت خودشان.» / در قرن دوازدهم [کجا؟] زنها مجبور بودند که نام شوهران خود را بگیرند و با از ابتدای نیمهی دوم قرن شانزدهم [کجا؟] رضایتنامه والدین به همراه رضایتنامه کلیسا برای ازدواج لازم بود.
به جز چند مورد محلی تا ۱۵۴۵ ازدواجهای مسیحی در اروپا، با رضایت طرفین، اعلام قصد ازدواج و وصلت جسمانی دو طرف انجام میشد. زوج به طور شفاهی به هم پیمان میبستند که با یکدیگر ازدواج کنند. حضور کشیش یا شاهدین الزامی نبود. این پیمان به عنوان "verbum" شناخته میشد. اگر آزادانه و با فعل زمان حاضر ادا میشد (برای مثال «من با تو ازدواج میکنم») بدون تردید الزام آور بود. اگر به زمان آینده ادا میشد («من با تو ازدواج خواهم کرد»)، منجر به نامزدی میشد. یکی از کارکردهای کلیسا در دوران قرون وسطی ثبت ازدواجها بود که اجباری نبود. به دلیل اینکه این مسائل در دادگاه کلیسایی حل و فصل میشد، هیچ مداخلهٔ حکومتی در ازدواج و وضعیت فردی وجود نداشت. در قرون وسطی ازدواجها از قبل تعیین میشد، حتی گاهی اوقات در هنگام تولد. و این قرارهای ازدواج معمولاً برای اطمینان از صحت قراردادها میان خانوادههای مختلف سلطنتی، اشراف و وراث فیفها بود. کلیسا در برابر این وصلتهای تحمیلی مقاومت کرد و دلابل ابطال این قرارها را افزایش داد در همان حال که مسیحیت در دوره رومن و قرون وسطی گسترش یافت، ایده آزادی انتخاب در گزینش شریک زندگی با آن رشد کرد و گسترده شد.
متوسط سن ازدواج در اوخر قرن سیزدهم تا اوایل قرن شانزدهم، حدود ۲۵ سالگی بودهاست. نقش ازدواجهای ثبت شده و قوانین مربوط به ازدواج، به عنوان بخشی از اصلاحات پروتستان، به تصویب دولت رسید. این اصلاحات نگاه مارتین لوتر را منعکس میکرد که ازدواج «امری دنیوی» است. در قرن هفدهم، بسیاری از کشورهای اروپایی پروتستان، دچار درگیری با دولت درامرازدواج، بودند. در سال ۲۰۰۰، متوسط سن ازدواج در گسترهً ۴۴-۲۵ سالگی برای مردان و ۳۹-۲۲ سالگی برای زنان بود. در انگلستان در سال ۱۷۵۳، اعتبار ازدواج با رضایت و اجماع، تحت قانون تصویب شدهً Lord Hardwich، در کلیسای آنجلیکا، تعیین میشد. این عمل الزامات خاصی همچون، حضور شاهدان در مراسم، را برای ازدواج به وجود میآورد.
در بخشی از اقدامات مخالف با اصلاحات، در سال ۱۵۶۳، شورای ترنت فرمان داد که، تنها در صورتی ازدواج کاتولیک روم را به رسمیت میشناسد که مراسم رسمی ازدواج در حضور یک کشیش و دوشاهد اجرا شود. این شورا همچنین، در سال ۱۵۶۶، تعلیمات و دستورها مذهبیِ مرتبط با ازدواج را تحت عنوان «اتحاد زناشویی بین زن و مرد، قرارداد بین دو نفر واجد شرایط، که آنها را ملزم به زندگی با یکدیگر، در طول حیاتشان میکند.»صادر کرد.
در اوایل عصر حاضر، جان کالوین و همکاران پروتستانی او، به اصلاح قوانین مسیحی ازدواج، که مورد تصویب احکام حقوقی ازدواج ژنو بود، پرداختند. این اصلاحات، خواستار بازنگریِ قانون " لزوم شکل گیری ازدواج با الزامات دوگانهً ثبت نام دولتی و تقدیس کلیساًبود. در انگلستان و ولز در سال ۱۷۵۳، قانون ازدواج Lord Hardwick نیازمند مراسم رسمی بود. مختصر برگزار کردن این عمل، منجر به یک ازدواج خارج از قاعده (غیر معمولی) میشد. این نوع از ازدواجهای مخفی یا بی قاعده در زندان ناوگان (Fleet Prison) و صدها مکان دیگر انجام میشد. از سال ۱۶۹۰ تا تصویب قانون ازدواج در سال ۱۷۵۳، تنها تعداد ۳۰۰،۰۰ ازدواج مخفی درزندان ناوگان Fleet Prison))انجام شد. این قانون، نیازمند به اجرای مراسمی رسمی بود، که توسط کشیشی در کلیسای آنجلیکا و دو شاهد، به رسمیت شناخته و ثبت میشد. این قانون به هیچ وجه برای اقلیتهای یهودی و کواکرها (Quakers) لازمالاجرا نبود. آنها با آداب و رسوم خود ازدواج میکردند.
به موجب قانون ازدواج ۱۸۳۶ از سال ۱۸۳۷، در انگلستان و ولز، ازدواج مدنی به عنوان به موجب قانون ازدواج ۱۸۳۶ از سال ۱۸۳۷، در انگلستان و ولز، ازدواج مدنی به عنوان یک جایگزین قانونی برای ازدواج کلیسایی به رسمیت شناخته شد. در آلمان، ازدواجهای مدنی در ۱۸۷۵ به رسمیت شناخته شد. این قانون اجازه انجام مراسم ازدواج در برابر کارکن رسمی اداره کل امور مدنی را صادر کرد، به شرط آنکه هر دو نفر قصد خود برای ازدواج معتبر و موثر تایید کنند. همچنین پذیرفت که در صورت تمایل طرفین مراسم مذهبی نیز به طور خصوصی برگزار شود.
در قانون معاصر عوام درانگلستان، ازدواج، قراردادی اختیاری میان یک زن و یک مرد است، که در این قرارداد آنها میپذیرند زن و شوهر باشند. ادوارد وسترمارک اظهار کردهاست که «نهاد ازدواج احتمالاً از یک عادت باستانی تکامل یافتهاست»
ازدواج از دیدگاه اخلاق
مصطفی ملکیان معتقد است ازدواج و فرزنداوری هر دو اخلاقاً ناروا هستند.
قدرت و نقشهای جنسیتی
نظریهٔ فمینیستی، به ازدواج با جنس مخالف به عنوان یک نهاد سنتی که در پدرسالاری ریشه دارد برخورد میکند و ازدواج را نهادی میداند که منجر به ترویج برتری و قدرت مرد بر زن میشود. این روابط قدرت، مردان را به عنوان «روزی رسان که در حوزهٔ عمومی عمل میکنند» و زنان را به عنوان«تامینکنندهٔ خدمات پرستاری و مراقبت که در حوزهٔ خصوصی عمل میکنند» در نظر میگیرد.» این با مفهوم ازدواج مساواتخواهانه که در آن قدرت و کار بین دو جنسیت به طور برابر تقسیم میشود، و این تقسیم برمبنای نقشهای جنسیتی صورت نمیگیرد در تضاد است.
در یک ازدواج، اختصاص دادنِ نقشهای جنسیتی غالب به مردان و نقشهای جنسیتی زیردستانه و سلطهپذیر به زنان، بر روابط قدرت درون رابطه اثر میگذارد. در برخی خانوادههای آمریکایی، زنان نقشهای جنسیتی کلیشهای را درونی میکنند، و غالباً خود را با نقش «همسر»، «مادر»، و «پرستار» در همانگی با هنجارهای اجتماعی و شریک مذکرشان وفق میدهند. «بل هوک» میگوید:«در ساختار خانواده، افراد یاد میگیرند که ستم جنسیتی را به عنوان امری»طبیعی«بپذیرند و این در حکم اولین قدم برای حمایت از سایر اشکال ستم، نظیر سلطهٔ یک جنس بر دیگری است.»
در ایالات متحد، مطالعات نشان دادهاست که، علارغم آرمانهای مساواتخواهانهای که ترویج میشوند، کمتر از نیمی از زنان به روابطشان با جنس مخالف از نظر قدرت به شکلی برابر مینگرند و روابط نابرابر که در آن مرد در سلطه قرار دارد بیشتر از همه به چشم میخورد. مطالعات همچنین نشان میدهند که زوجهای ازدواج کرده، بیشترین میزان رضایت خود را در روابط مساواتخواهانه تجربه میکنند.
5:40 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 هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده میشود.
معناشناسی اجرا
وقتی که داده مشخص شد، ماشین باید هدایت شود تا عملیاتها را روی داده انجام دهد. معناشناسی اجرا ی یک زبان تعیین میکند که چگونه و چه زمانی ساختارهای گوناگون یک زبان باید رفتار برنامه را ایجاد کنند.
برای مثال، معناشناسی ممکن است استراتژی را که بویسله آن عبارات ارزیابی میشوند را تعریف کند و یا حالتی را که ساختارهای کنترلی تحت شرایطی دستورها را اجرا میکنند.
کتابخانه هسته
اغلب زبانهای برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده میشوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازیهای زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتمها، داده ساختارها و مکانیزمهای ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار میکنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هستهای را مشخص میکنند که باید در تمام پیاده سازیها موجود باشند، و در زبانهای استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبانها به گونهای تعریف شدهاند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونهای از کلاس “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 در برنامههای تعبیه شده و سیستمهای عامل؛ و بقیه برنامهها معمولاً برای نوشتن انواع دیگر برنامهها کاربرد دارند. روشهای مختلفی برای سنجش محبوبیت زبانها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شدهاست:
شمارش تعداد تبلیغات شغلی که از آن زبان نام میبرند.
تعداد کتابهای آموزشی و شرح دهندهٔ آن زبان که فروش رفتهاست.
تخمین تعداد خطوطی که در آن زبان نوشته شده اند- که ممکن است زبانهایی را که در جستجوها کمتر پیدا میشوند دست کم گرفته شوند.
شمارش ارجاعهای زبان(برای مثال، به اسم زبان) در موتورهای جستجوهای اینترنت.
طبقه بندیها هیچ برنامه غالبی برای دسته بندی زبانهای برنامه نویسی وجود ندارد. یک زبان مشخص معمولاً یک زبان اجدادی ندارد. زبانها معمولاً با ترکیب المانهای چند زبان پیشینه بوجود میآیند که هربار ایدههای جدید درگردشند. ایدههایی که در یک زبان ایجاد میشوند در یک خانواده از زبانهای مرتبط پخش میشوند، و سپس از بین خلاهای بین خانوادهها منتقل شده و در خانوادههای دیگر ظاهر میشوند.
این حقیقت که این دسته بندی ممکن است در راستای محورهای مختلف انجام شوند، این وظیفه را پیچیده تر میکند؛ برای مثال، جاوا هم یک زبان شیءگرا(چون به برنامه نویسی شیءگرا تشویق میکند) و زبان همزمان(چون ساختارهای داخلی برای اجرای چندین جریان موازی دارد) است. پایتون یک زبان اسکریپتی شیءگراست.
در نگاه کلی، زبانهای برنامه نویسی به مثالهای برنامه نویسی و یک دسته بندی بر اساس محدوده استفاده تقسیم میشوند. مثالها شامل برنامه نویسی رویهای، برنامه نویسی شیءگرا، برنامه نویسی کاربردی، وبرنامه نویسی منطقی؛ برخی زبانها ترکیب چند مثالند. یک زبان اسمبلی مثالی از یک مدل مستقیم متضمن معماری ماشین نیست. با توجه به هدف، زبانهای برنامه نویسی ممکن است همه منظوره باشند، زبانهای برنامه نویسی سیستمی، زبانهای اسکریپتی، زبانهای محدوده مشخص، زبانهای همزمان/ گسترده(و یا ترکیب اینها). برخی زبانهای همه منظوره تا حد زیادی برای اهداف آموزشی طراحی شدهاند.
یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثالهای برنامه نویسی دسته بندی شود. برای مثال، غالب زبانهای برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده میکنند، در حالیکه تعداد کمی این کار را نمیکنند. سایر زبانها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف دادهها، و عملیات یا تبدیلهایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم میکند. یک برنامه نویس از انتزاعات آماده در زبان استفاده میکند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از سادهترین عناصر موجود بیان میشوند(مفاهیم ابتدایی نامیده میشوند).

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