آق‌قویونلوها

آق قویونلو سلسله‌ای از ترکمنهای سنی بود که بر قسمت‌های از قفقاز، شرق ترکیه و شمال ایران از ۱۳۷۸ تا ۱۵۰۸ میلادی فرمان می‌راند.

طبق اسناد بیزانسی آق قویونلوها حداقل از سال ۱۳۴۰ میلادی در آناتولی حضور داشتند و اکثر سلاطین آق قویونلو همچنین بانی آن قره عثمان با شاهزاده خانمهای بیزانس ازدواج می‌کردند.






اولین اراضی تحت حاکمیت آق قویونلوها ایالت دیار بکر در آناتولی بود که در سال ۱۴۰۲ میلادی از تیمور به قره عثمان واگذار گردید. مدت زیادی آق قویونلوها قادر به گسترش اراضی خود نبودند، چون رقیبانشان (قره قویونلوها) مانع قدرت‌گیری آنها می‌شدند ولی این وضع با پیروزی اوزون حسن بر جهانشاه قره قویونلو در سال ۱۴۶۷ پایان یافت.
در دوران حکومت‌های ملی





صفویه

صفوی، صفویه یا صفویان دودمانی ایرانی و شیعه بودند که در سال‌های ۸۸۰ تا ۱۱۰۱ هجری خورشیدی (برابر ۱۱۳۵-۹۰۷ قمری و ۱۷۲۲-۱۵۰۱ میلادی) بر ایران فرمانروایی کردند. بنیانگذار دودمان پادشاهی صفوی، شاه اسماعیل یکم است که در سال ۸۸۰ خورشیدی در تبریز تاجگذاری کرد و آخرین پادشاه راستین صفوی، شاه سلطان حسین است که در سال ۱۱۰۱ خورشیدی از افغانها شکست خورد.

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

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





افشاریه

افشارها طایفه‌ای از اوغوزها هستند که در ایران، ترکیه و افغانستان پراکنده‌اند.

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

نادرقلی افشار ملقب به نادر شاه رئیس ایل افشار بود که به پادشاهی ایران رسید و بنیانگذار دودمان افشاریه شد. او دوازده سال (از ۱۱۱۴ تا ۱۱۲۶) بر ایران حکومت کرد. پایتخت وی شهر مشهد بود. او از مشهورترین پادشاهان ایران پس از اسلام است. نادرقلی در حدود سال ۱۰۶۶ خورشیدی در ایل افشار در درگز در شمال خراسان به دنیا آمد. این ایل به دو شعبه بزرگ تقسیم می‌شد: یکی قاسملو و دیگری ارخلو یا قرخلو؛ نادر شاه افشار از شعبه اخیر بود.. تعداد بسیاری از این ایلها در زمان شاه عباس اول در ایل شاهسون ادغام گشتند.





زندیه

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

کریمخان زند وکیل الرعایا (۱۱۹۳ – ۱۱۶۳ ه. ق.): از سوابق زندگی خان زند تا سال ۱۱۶۳ ه. ق. که جنگ‌های خانگی بازماندگان نادر شاه بی کفایتی آنان را برای مملکتداری آشکار ساخت و به تبع آن عرصه را برای ظهور قدرت‌های جدید مستعد گردانید، خبری در دست نیست. به دنبال اغتشاشات گسترده و عمومی این ایام خان زند به همراه علی مردان خان بختیاری و ابوالفتح خان بختیاری اتحاد مثلثی تشکیل دادند و کسی را از سوی مادری از تبار صفویان بود را به نام شاه‌اسماعیل سوم به شاهی برداشتند. ولی چون هیچ یک از آنان خود را از دیگری کمتر نمی‌شمرد، ناچار به نزاع‌های داخلی روی آوردند. سرانجام کریم خان توانست پس از شانزده سال مبارزه دایمی بر تمامی حریفان خود از جمله محمدحسن خان قاجار و آزاد خان افغان غلبه کند و صفحات مرکزی و شمالی و غربی و جنوبی ایران را در اختیار بگیرد. وی به انگلیسها روی خوش نشان نداد و همواره می‌گفت آن‌ها می‌خواهند ایران را مانند هندوستان کنند. برادر وی، صادق خان، نیز موفق شد در سال ۱۱۸۹ هجری قمری بصره را از حکومت عثمانی منتزع نماید و به این ترتیب، نفاذ اوامر دولت ایران را بر سراسر اروندرود و بحرین و جزایر جنوبی خلیج فارس مسلم گرداند.





قاجاریه

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

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

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




پهلوی

دودمان پهلوی (۱۳۰۴ تا ۱۳۵۷) سلسله‌ای است که پس از انحلال سلسله قاجار، بر ایران حکومت کردند.

رضاخان میر پنج با کودتای سوم اسفند ۱۲۹۹ به قدرت رسید و وزیر جنگ شد و سید ضیا نخست‌وزیر، سه ماه بعد، سید ضیا برکنار شد و قوام نخست‌وزیر شد و رضاخان وزیر جنگ باقی‌ماند. بعدها وی به مقام ریاست الوزرایی رسید. رضاشاه پهلوی، شاه ایران از (۱۳۰۴ تا ۱۳۲۰) و بنیانگذار سلسله پهلوی بود.

محمدرضا شاه پهلوی از ۲۵ شهریور ۱۳۲۰ تا وقوع انقلاب ایران در ۲۲ بهمن ۱۳۵۷ شاه ایران بود. محمدرضاشاه با کودتای ۲۸ مرداد، قدرت خود را تحکیم کرد، او با وقوع انقلاب ایران برکنار شد و از این رو آخرین شاه نظام ۲۵۰۰ ساله سلطنتی در ایران به حساب می‌آید. از جمله فعالیتهای سلسله پهلوی آزادی مردم در شرب خمر، نوع لباس وهمچنین آزادی زنان در ورزش٫حجاب ٫شرکت در مجلس وحق رای؛ همچنین تلاش بسیاری برای مدرنوزاسیون انجام شد.

انقلاب ایران در سال ۱۳۵۷، انقلابی بود که با شرکت اکثر مردم و احزاب اسلامی، ملی، کمونیستی، و روشنفکران ایران، نظام پادشاهی این کشور را سرنگون، و پیش‌زمینهٔ روی کار آمدن نظام جمهوری اسلامی در ایران را فراهم کرد. ۲۲ بهمن سال ۱۳۵۷ را روز پیروزی این انقلاب می‌دانند. این انقلاب به رهبری خمینی به پیروزی رسید. سلطنت پهلوی با انقلاب ایران در سال ۱۳۵۷ برچیده شد.




جمهوری اسلامی

نظام جمهوری اسلامی ایران حکومت کنونی ایران است که پس از پیروزی انقلاب ایران در سال ۱۳۵۷ و در تاریخ ۱۲ فروردین ۱۳۵۸، طی یک همه‌پرسی با رأی آری ۹۸٫۲٪ درصد از شرکت‎کنندگان تشکیل شد.

به دنبال سرنگونی نظام شاهنشاهی در ۲۲ بهمن در جریان انقلاب ایران در سال ۱۳۵۷ خورشیدی به رهبری روح‌الله خمینی حکومت جمهوری اسلامی در ایران شکل گرفت. این حکومت در ۱۲ فروردین ۱۳۵۸ مورد همه‌پرسی قرار گرفت که ۹۸٫۲ درصد شرکت‌کنندگان به آن رأی مثبت آری دادند. برابر قانون اساسی ایران، اصول نظام جمهوری اسلامی ایران بر پایه «جمهوریت و اسلامیت» بنا شده‌است.

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




جغرافیا

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

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




استان‌ها

بر اساس قانون بخش‌بندی کشوری (مصوب ۱۲۸۶ شمسی) ایران به ۴ ایالت «آذربایجان»، «خراسان»، «فارس»، و «کرمان و بلوچستان» و ۱۰ ولایت (جدا از ایالات) تقسیم شد. این تقسیمات تا سال ۱۳۱۶ با دگرگونی‌های کوچکی به همین گونه ماند.

در سال ۱۳۱۶ خورشیدی با تصویب قانون جدید تقسیمات کشوری، ایران به ۱۰ استان و ۴۹ شهرستان تقسیم شد. به مرور زمان با ایجاد استان‌های جدید، تعداد استان‌های ایران افزایش یافت. برای مدت‌های مدیدی پس از پیروزی انقلاب اسلامی، ایران همچنان دارای ۲۴ استان بود. در سال ۱۳۷۲ استان اردبیل از استان آذربایجان شرقی جدا شد. همچنین استان قم در سال ۱۳۷۴ از استان تهران جدا شد و قزوین در سال ۱۳۷۳ از استان زنجان جدا و به استان تهران پیوست و در سال ۱۳۷۶ به استان قزوین مبدل شد. پس از آن گلستان از مازندران جدا شدند و در سال ۱۳۸۳، استان خراسان به سه استان: خراسان جنوبی، خراسان شمالی و خراسان رضوی تقسیم شد و در ۱۳۸۹/۴/۲، استان تهران به دو استان تهران و البرز تقسیم شد. به این ترتیب اکنون ایران از ۳۱ استان تشکیل شده‌است.

در روز دوشنبه ۱۳۹۲/۹/۱۸ عبدالرضا رحمانی فضلی وزیر کشور دولت یازدهم جمهوری اسلامی ایران گفت: طرح منطقه ای کردن استان های کشور و تقسیمات جدید کشوری از سوی وزارت کشور در دست بررسی و مطالعه است. وی گفت: اجرای این طرح نیازمند اصلاح قانون است و مسیر طولانی خواهد داشت، اما وزارت کشور به شکل قراردادی برای هر چهار یا پنج استان کشور به صورت یک منطقه برنامه ریزی کرده است.

پایتخت کنونی ایران تهران می‌باشد که بر اساس طرح آمایش سرزمین که در سال ۱۳۸۸ توسط مجمع تشخیص مصلحت نظام تصویب شد، پایتخت ایران باید تا سال ۱۴۰۴ هجری شمسی از تهران به مکانی دیگر انتقال یابد. نمایندگان در نشست علنی روز سه شنبه ۱۳۹۲/۱۰/۳ مجلس شورای اسلامی در جریان بررسی طرح انتقال پایتخت با کلیات این طرح با ۱۱۰ رای موافق، ۶۷ رأی مخالف و ۱۰ رأی ممتنع از مجموع ۲۱۴ نماینده حاضر در صحن موافقت کردند.




شهرها
آب و هوا

ایران از لحاظ آب و هوایی یکی از منحصربه‌فردترین کشورهاست. اختلاف دمای هوا در زمستان میان گرم‌ترین و سردترین نقطه گاهی به بیش از ۵۰ درجهٔ سانتی گراد می‌رسد.

داغ‌ترین نقطهٔ زمین در سال‌های ۲۰۰۴ و ۲۰۰۵ میلادی، در نقطه‌ای در کویر لوت ایران بوده‌است.

ایران از لحاظ بارندگی در سطح نیمه‌خشک و خشک است.

آب و هوای ایران متأثر از چندین سامانه‌است:

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

میزان بارندگی در ایران بسیار متغیر است. در شمال به بیش از ۲۱۱۳ میلیمتر (رشت، ۱۳۸۳) نیز می‌رسد. در نواحی کویری بارش عمدتاً بسیار کم و در حدود ۱۵ میلیمتر است. بارش نواحی شمال غرب و غرب، دامنه‌های جنوبی البرز و شمال شرق تا حدودی قابل توجه (حدود ۵۰۰ میلیمتر) می‌باشد. در سایر نقاط میزان بارش از ۲۰۰ میلیمتر بیشتر نمی‌شود. ایران با مشکلات کم آبی دست و پنجه نرم می‌کند. پیش‌بینی می‌شود ایران در سال ۲۰۲۵ در وضعیت تنش آبی قرار بگیرد.

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




جامعه
نژاد

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

نژاد آریایی طی تاریخ با اقوام گوناگون عرب، ترک و مغول درآمیخته‌است.




مردم

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

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

ترکیب قومیتی ایران بر اساس داده‌های «کتاب واقعیت‌های جهان سیا» ۶۱٪ پارس، ۱۶٪ آذری، ۱۰٪ کرد، ۶٪ لر، ۲٪ بلوچ، ۲٪ عرب، ۲٪ ترکمن و ۱٪ از دیگر اقوام است.

تخمین‌های کتابخانه کنگره به این ترتیب هستند: پارس (۶۵٪)، آذری (۱۶ ٪)، کرد (۷٪)، لر (۶٪)، عرب (۲٪)، بلوچ (۲٪)، ترکمن (۱٪)، گروه‌های ترک‌تبار قبیله‌ای همچون قشقایی (۱٪)، و گروه‌های غیرایرانی و غیرترک همچون ارمنی، آشوری، و گرجی (کمتر از ۱٪). طبق آنها پارسی به عنوان زبان مادری توسط حداقل ۶۵٪ جمعیت و به عنوان زبان دوم توسط بخش بزرگی از ۳۵٪ دیگر گویش می‌شود.

بنابر گزارش سال ۲۰۰۸ دفتر کنترل مواد و جرایم سازمان ملل متحد، نزدیک به سه درصد جمعیّت ۱۵ تا ۶۴ سال ایران مواد مخدر مصرف می‌کنند که این بالاترین درصد مصرف موادّ مخدر در جهان است.

ایران ۳۲٬۲۰۰٬۰۰۰ کاربر در اینترنت دارد.




جمعیت

بانک مرکزی جمهوری اسلامی ایران، جمعیت ایران را براساس برآوردهای مرکز آمار ایران، ۷۷٫۰۰۰٫۰۰۰ میلیون نفر اعلام کرد.
بر پایهٔ گزارشی از سوی مجمع جهانی اقتصاد ایران هجدهمین کشور پرجمعیت جهان شناخته شده‌است.
پیش بینی میشود با نرخ رشد کنونی ، جمعیت ایران تا سال ۲۰۵۰ به ۱۰۵ میلیون تن افزایش یابد.




زبان

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

تاکنون در هیچیک از سرشماری‌های ایران پرسش‌های مربوط به وابستگی‌های قومی و زبانی مطرح نشده‌است. البته این سؤال در پرسشنامه‌های سرشماری سال ۱۳۶۵ مطرح شده بود ولی به دلیل ملاحظات سیاسی از جمع‌آوری اطلاعات مربوط به آن خودداری شد. با این حال تحقیقات و برآوردهایی در مورد ترکیب قومی و زبانی کشور انجام شده‌است. یکی از این تحقیقات به نمونه‌گیری سازمان ثبت احوال کشور در مرداد ۱۳۷۰ باز می‌گردد که زبان مادری زنانی را که برای دریافت شناسنامه فرزندان خود به دفاتر ثبت احوال مراجعه کرده بودند، مورد پرسش قرار می‌داد. در این نظرسنجی از مجموع ۴۹٬۵۵۸ مادر، ۴۶٫۲٪ به پارسی، ۲۰٫۶٪ به آذری، ۱۰٪ به کردی، ۸٫۹٪ به لری، ۷٫۲٪ به شمالی، ۳٫۵٪ به عربی، ۲٫۷٪ به بلوچی، ۰٫۶٪ به ترکمنی، ۰٫۱٪ به ارمنی و ۰٫۲٪ به دیگر زبان‌ها تکلم می‌کردند. مشابه این نظرسنجی در سال ۱۳۷۳ هم انجام شد و به نتایج مشابهی رسید. در این نظرسنجی‌ها مشخص شد که سطح باروری و ویژگی‌های جمعیتی بر حسب جامعهٔ زبانی مادران بسیار متفاوت است و تعداد فرزندان زنده به دنیا آورده در گروه‌های مختلف زبانی بین ۲٫۹ تا ۵ قرار داشت اما مطالعه‌ای دیگر نشان داد که این اختلاف بیشتر از تفاوت‌های فرهنگی و اقتصادی این گروه‌ها ناشی می‌شود تا صرف تعلق قومی و زبانی آن‌ها.

ترکیب زبانی جمعیت ایران بر اساس «کتاب واقعیت‌های جهان سیا» ۵۳٪ پارسی و گویش‌های پارسی، ۱۸٪ ترکی و دیگر گویش‌های ترکی، ۱۰٪ کردی، ۷٪ گیلکی و مازندرانی، ۶٪ لری، ۲٪ بلوچی، ۲٪ عربی و ۲٪ زبان‌های دیگر است.

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




دین

دورهٔ مهرپرستی
دورهٔ مزدیسنی (کیش زرتشت)
دورهٔ اسلامی

هم چنین آیین‌های دیگر در برخی دوره‌ها رواج یافته‌اند مانند دین مزدک، مانی و مسیحیت پیش از اسلام. در پانصد سال گذشته، پس از تشکیل دولت صفویان همواره تشیع آیین رسمی ایران بوده‌است. بر اساس نتایج سرشماری عمومی نفوس و مسکن سال ۱۳۹۰از ۷۵٬۱۴۹٬۶۶۹ نفر سرشماری شده در خصوص نوع دین، ۹۹/۳۸ درصد (۷۴٬۶۸۲٬۹۳۸ نفر) مسلمان، ۰/۱۶ درصد (۱۱۷٬۷۰۴ نفر) مسیحی، ۰/۰۱ درصد (۸٬۷۵۶ نفر) کلیمی، ۰/۰۳ درصد (۲۵٬۲۷۱ نفر) زرتشتی، ۰/۰۷ درصد (۴۹٬۱۰۱ نفر) سایر ادیان و ۰/۳۵ درصد (۲۶۵٬۸۹۹ نفر) اظهار نشده ثبت شده است. برآوردهای خارجی انجام شده از جمعیت ایران، ٪۸۹ شیعه، ٪۹ سنی و ٪۲ مسیحی، زرتشتی، یهودی، بهائی و پیروان سایر ادیان هستند که با آمارهای رسمی اندکی متفاوت است.

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




سیاست
روابط خارجی

ایران یکی از ۱۹۲ کشور عضو سازمان ملل متحد است. همچنین در سازمان کشورهای صادر کنندهٔ نفت (اوپک)، سازمان کنفرانس اسلامی، جنبش عدم تعهد، سازمان اکو نیز عضویّت دارد.

روابط خارجی ایران در دورهٔ جمهوری اسلامی با تنش‌های فراوانی روبرو بوده‌است.

از جمله چالش‌های ایران پس از انقلاب می‌توان به موارد زیر اشاره کرد:

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




راه‌ها

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

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

سالانه ۸۰۰ هزار تصادف در ایران روی می‌دهد که از حیث آمار مرگبارترین حوادث جاده‌ای ایران رتبه اول را در جهان دارد.





اقتصاد

در ۳۰ سال گذشته جمعیت ۳۶ میلیونی ایران به ۷۷ میلیون تن افزایش پیدا کرده و نخستین موج این نسل نو به بزرگسالی رسیده‌است. بر اساس آمارهای رسمی نرخ بیکاری به ۲۲ درصد رسیده‌است اما برخی کارشناسان رقم آن را ۱۲٫۲ درصد برآورد می‌کنند. محمد خاتمی رئیس جمهوری پیشین می‌گوید: «حضور سالانه ۷۰۰ هزار نفر به بازارکار نشانگر فشار شدیدی است که اقتصاد ایران ناگزیر به تحمل آن است.»

در دوره (۱۳۸۳–۱۳۵۳)، نرخ تورم گاه ۷ درصد بوده و گاه به مرز ۵۰ درصد نزدیک شده‌است و نرخ بیکاری زمانی ۳ درصد و گاهی بیش از ۱۶ درصد بوده‌است. در حالی که در زمینه بدهی خارجی، این رقم برای مدت‌ها صفر بوده ولی گاه چنان افزایش یافته که دولت را با بحران بازپرداخت مواجه کرده‌است. خصوصی سازی، رهایی از اقتصاد متکی به نفت و همگام شدن با اقتصاد جهانی پیشنهادهایی است که از سوی تحلیلگران برای بهبود اوضاع اقتصادی ایران مطرح می‌شود.

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

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

ایران در سالیان مختلف رشد اقتصادی مختلفی را تجربه کرده‌است. بر پایه‌گذارش صندوق بین‌المللی پول در سال ۲۰۰۹ رشد اقتصادی ایران ۱٫۱ بوده که این رقم در سال ۲۰۱۰ به ۱٫۶ درصد رسیده‌است که پس از قرقیزستان کمترین نرخ رشد اقتصادی را در بین کشورهای منطقه داشته‌است. بر پایه پیش بینی صندوق بین‌المللی پول نرخ رشد ایران در سال ۲۰۱۱ به صفر درصد نزول می‌کند و در سال ۲۰۱۲ به ۳ درصد خواهد رسید.

بانک جهانی در سال ۲۰۱۰ اعلام نمود ایران ۱۰۰ میلیارد دلار ذخیره ارزی دارد. همچنین رئیس وقت بانک مرکزی ایران در سال ۱۳۸۹ اعلام کرد که ذخیره طلای ایران به صورت میانگین ۱۳۵۰ دلار است. همچنین اکونومیست اعلام کرد ذخایر ایران بجز طلا در سال ۲۰۰۹ میلادی ۸۱ میلیارد دلار بوده‌است و این رقم در سال ۲۰۱۰ کاهش شش میلیارد دلاری داشت.





کشاورزی

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





صنایع

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

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

جستار وابسته: فهرست صنایع دستی ایران





منابع و معادن

مهمترین صنایع و معادن ایران عبارتست از: نفت و گاز. ایران، سومین ذخایر نفتی جهان، یازده درصد ذخایر ثابت شده نفتی زمین معادل ۱۳۰ میلیارد بشکه؛ و نیز دومین ذخایر گازی جهان، هجده درصد ذخایر ثابت شده گاز زمین، معادل ۲۶ تریلیون متر مکعب را در اختیار خود دارد. همچنین ایران دومین صادرکننده بزرگ سازمان اپک است که پتانسیل تبدیل شدن به یک ابرقدرت انرژی را دارد. مهم‌ترین منطقه‌های نفتی این کشور مسجد سلیمان، هفتگل، گچساران، آغاجاری و اسلام آباد غرب(شاه آباد پیشین) است. همچنین دریای مازندران نیز اندوخته نفتی بسیاری را در خود نهفته دارد. نفت قم نیز در حال بهره‌برداری است. مهمترین میدان گازی ایران، میدان گازی پارس، شامل: میدان گازی پارس جنوبی در منطقه عسلویه و میدان گازی پارس شمالی در منطقه مندستان هر دو در استان بوشهر واقع است.

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





گردشگری
گردشگری در ایران به مجموعه امکانات گردشگری از جمله بناهای تاریخی، مکان‌های تفریحی، طبیعت، حمل و نقل، هتل‌داری و... گفته می‌شود. گردشگری ایران به عنوان یک صنعت از ظرفیت‌های بسیار بالایی برای رشد و توسعه برخوردار است.
بر پایهٔ گزارش سازمان جهانی جهانگردی، ایران رتبه دهم جاذبه‌های باستانی و تاریخی و رتبه پنجم جاذبه‌های طبیعی را در جهان دارا است، ولی با این وجود به دلیل محدودیتهای اجتماعی و تفریحی تاکنون چندان در جذب گردشگران خارجی موفق نبوده‌است.
9:25 pm
برنامه‌نویسی

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

برنامه‌نویسی کامپیوتر (که اغلب در انگلیسی programming یا coding گفته می‌شود) فرایند نوشتن، اشکال زدایی(debug) و نگهداری کد منبع (source code) برنامه کامپیوتر می‌باشد. این کد منبع با یک زبان برنامه نویسی نوشته شده است. این کد منبع ممکن است تغییر داده شده یک کد قبلی و یا یک کد کاملاً جدید باشد. هدف برنامه نویسی ساختن یک برنامه می‌باشد که یک رفتار خواسته شده را به نمایش بگذارد.






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

برنامه نویسی مدرن
اندازه گیری کاربرد زبان

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


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



برنامه‌نویسی دستوری

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

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





زبان برنامه‌نویسی

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

نسل اول زبان ماشین - زبان صفرو یک
نسل دوم زبانهایی مانند اسمبلی -قابل فهم تر برای انسان
نسل سوم زبانهایی مانند کوبول و پی ال وان و... -دستورات قابل فهم تر برای انسان و نیاز به کمپایلرها
نسل چهارم مثل زبانهای اوراکل و فاکس پرو و اس کیو الها - نزدیک به محاوره‌های انسانی
نسل پنج زبانهایی مانند prolog , ops5 - تمرکز بر حل مسئله و استفاده از الگوریتمهای نوشته شده توسط

برنامه نویس

یک زبان برنامه نویسی یک زبان مصنوعی است که برای بیان محاسباتی که توسط یک ماشین (مخصوصا رایانه) قابل انجام است، طراحی شده‌است.زبان‌های برنامه نویسی برای ایجاد برنامه‌هایی به کار می‌روند که رفتار یک ماشین را مشخص می‌کنند، الگوریتم دقیق را بیان می‌کنند، و یا روشی برای ارتباط انسانند. بسیاری از زبان‌های برنامه نویسی تعدادی قالب از ویژگی‌های نوشته شده دستوری(syntax) و معناشناسی (semantics) دارند، چرا که رایانه‌ها دستورات دقیقاً مشخص نیاز دارند. برخی توسط سند خصوصیات (specification document) تعیین شده‌اند. (برای مثال یک استاندارد ISO)، در حالی که برخی دیگر دارای پیاده سازی غالبی می‌باشند.(مانند Perl) اولین زبان برنامه نویسی به قبل از اختراع رایانه باز می‌گردد، و برای هدایت رفتار ماشین‌هایی مانند دستگاه‌های نساجی اتوماتیک و نوازنده‌های پیانو به کار می‌رفت. هزاران زبان برنامه نویسی خلق شده‌اند، بیشتر در زمینهٔ رایانه، زمینه‌ای که هر ساله بسیاری دیگر ایجاد می‌شوند.


تقسیم‌بندی
زبان‌های برنامه نویسی را می‌توان از چهار دیدگاه متفاوت مورد بررسی قرار داده و تقسیم بندی کرد: الف)روش‌های برنامه نویسی ۱-زیر روالی ۲-ساخت یافته ۳-مدولار ۴-شئ گرا ب)نزدیکی به زبان ماشین ۱-سطح پایین ۲-سطح میانی ۳-سطح بالا ج)نوع ترجمه ۱-مفسری ۲-کامپایلری د)رابط برنامه نویسی ۱-مبتنی بر متن ۲-مبتنی بر گرافیک (ویژوال)



تعاریف

ویژگی‌هایی که غالباً برای تشکیل یک زبان برنامه نویسی مهم شمرده می‌شوند:

تابع :یک زبان برنامه نویسی، زبانی است که برای نوشتن برنامه‌های رایانه‌ای به کار می‌رود که رایانه‌ای را برای انجام محاسبات یا اجرای الگوریتم و یا احتمالاً کنترل دستگاه‌های خارجی مثل چاپگر، ربات و... درگیر می‌کنند.





هدف: زبان‌های برنامه نویسی با زبان‌های طبیعی تفاوت دارند و آن اینکه زبان‌های طبیعی فقط برای فعل و انفعالات بین مردم به کار می‌روند، در حالیکه زبان‌های برنامه نویسی همچنین به انسانها اجازه می‌دهد که از طریق دستورات با ماشین‌ها ارتباط برقرار کنند. برخی زبان‌های برنامه نویسی بوسیله یک دستگاه استفاده می‌شوند تا دستگاه دیگری را کنترل کند. برای مثال برنامه‌های پست اسکریپت(post script) غالباً توسط برنامه دیگری برای کنترل یک چاپگر و یا نمایشگر ایجاد می‌شوند.
ساختارها: زبان‌های برنامه نویسی ممکن است ساختارهایی برای تعریف و تغییر داده ساختارها یا کنترل جریان اجرا داشته باشند.
توان بیانگر: نظریه محاسبات، زبان‌ها را بوسیله محاسباتی که توان بیان آنها را دارند طبقه بندی می‌کند. تمام زبان‌های "کامل تورینگ" می‌توانند مجموعه یکسانی از الگوریتم‌ها را پیاده سازی کنند.ANSI/ISO SQL و Charity مثال‌هایی هستند از زبان‌هایی که کامل تورینگ نیستند، ولی غالباً زبان برنامه نویسی نامیده می‌شوند.

برخی مولفین اصطلاح" زبان برنامه نویسی" را محدود به آنهایی می‌کنند که می‌توانند تمام الگوریتم‌های ممکن را پیاده سازی کنند، گاهی اوقات اصطلاح" زبان رایانه" برای زبان‌های برنامه نویسی محدودتر به کار می‌رود. زبان‌های غیر محاسباتی، مانند زبان‌های مارک آپ(markup) HTML یا گرامرهای قراردادی مثل BNF، معمولاً زبان برنامه نویسی محسوب نمی‌شوند. یک زبان برنامه نویسی(که می‌تواند کامل تورینگ نباشد) ممکن است در این زبان‌های غیر محاسباتی (میزبان) تعبیه شوند.


کاربرد

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

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

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




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


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

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

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



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

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

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل 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 را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
ساعت : 9:25 pm | نویسنده : admin | کاکاپو | مطلب قبلی
کاکاپو | next page | next page