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

سلسله هان
اولین دوره درخشان هان و ادبیات چین قبل از حمله مغولها است. زمانی که چین از نظر وسعت برابر با وسعت امپراطوری روم بود. در این دوره همه گونه سرگرمی شامل نمایشهای ورزشی، ژیمناستیک، حرکات آکروباتیک، چشم بندی، تردستی و موسیقی وجود داشت. امپراطوران سلسله هان فعالانه هنر را ترویج میکردند.
سلسله یانگ
رواج نمایشهای تارخی و پرشکوه که در آن شخصیتهای تاریخی را بازسازی میکردند. مشهور است که امپراطور«یانگ تی»پیش از انقراض امپراطوریش نمایشی ترتیب داد که در آن ۱۸ تا ۳۰ هزار اجرا کننده در محلی به درازای ۶ کیلومتر شرکت جستند.
سلسله سونگ
در این دوره فرهنگ و هنر چین شکوفا شد. ساخت وسایل صنعتی، جنگی و هنرهای دستی رواج یافت. داستان گو و نقالی به اوج رسید. این داستانها توسط نقالان یا راویان حرفهای در چایخانهها نقل میشد.(نخستین تماشاخانههای عمومی که در چین ساخته شدند همان چایخانهها بودند.)
ویژگیهای اجرای نمایشی چین
-در درام چین صحنه آرایی اندک است و تماشاگران برای فهمیدن نمایشنامه ناچار هستند تخیل خود را به کار گیرند (یک صندلی شاید نمادی از پل، یا کوه یا یک تخت سلطنتی باشد). -رنگ لباس و چهره از قراردادهای مهم اجرای نمایش است و در بیشتر موارد نشانگر شخصت، حرفه و طبقه اجتماعی است. - حرکات و اشارهها آنچه را که قرار است اتفاق بیفتد نشان میدهد. - موسیقی از بخشهای مهم اجرای درام چین است.
- نمایشهای چین معمولاً دارای داستانی با پایان خوش و همراه با موسیقی هستند.
نمایش در قرن ۱۶ و ۱۷
اسپانیا
نویسندگان اسپانیایی پس از رنسانس بیشتر از نویسندگان ایتالیایی تاثیر گرفتند. در ابتدا به داستانهای سلحشوران، جنگاوران و قطعات رمانتیک میپرداختند.«میگوئل سروانتس» نویسنده رمانس مشهور «دون کیشوت» از جمله نویسندگان اسپانیا است که با نگاهی طنزآمیز اثری زیبا آفریده است. «لوپه دوگا» از نویسندگان نمایشی اسپانیا است که او را پرکارترین نویسنده جهان میدانند، زیرا حدود ۴۸۰ نمایشنامه از او باقیمانده است.
«کالدرون» ازجمله نمایشنامه نویسان عصر طلایی اسپانیایی است که نمایشنامه «قاضی سالامئا» متعلق به او است.
فرانسه
آغاز دوره نئو کلاسیک
فرانسه در قرن ۱۷ متلاطم ترین دوره نمایشی و سیاسی را داشت. از ناآرامی تا ثبات کامل. این دوره را به دلیل احیای قوانین هنری یونان و روم، دوره «نئو کلاسیک» مینامند. فرانسویها در این دوره قواعد ارسطویی را استخراج و ترجمه کردند، و به اجرا درآوردند. مهم ترین گونه یا ژانر نمایش این دوره «تراژدیکمدی» بود. نمایشی ترکیبی از تراژدی و کمدی که در آن نمایش به شکل جدی و مصیبت بار آغاز میشود اما شادمانه و با پایان خوش به اتمام میرسد، یا دسته کم میتوان گفت با مرگ و مصیبت به پایان نمیرسد. تراژیکمدیهای این دوره را بیشتر با عنوان«عشق در برابر شرف» یا «شنل و شمشیر» و یا «عشق و وظیفه» نام میبرند. چهرههای برجسته نئو کلاسیک فرانسه عبارتند از:
پیر کرنی:او را پایهگذار و تثبیت کننده مبانی نئو کلاسیک فرانسه می دانند. از مهمترین آثار او میتوان به «السید» و «ردگونه»اشاره کرد.
ژان راسین: ویژگیهای آثار راسین، داشتن طرحهای ساده و شخصیت پردازی پیچیده است که در آثاری چون «فدر» دیده میشود.
مولیر:مولیر را میتوان بزرگترین کمدی نویس این دوره فرانسه دانست. مولیر با ایجاد گروههای نمایشی دوره گرد و به خصوص با تاکید بر کمدیا دل آرته ایتالیا توانست، تحول بزرگی در کمدی فرانسه به وجود آورد. امروزه آثار او را با عناوینی چون کمدی رئالیستی و کمدی اجتماعی میشناسند. برخی از آثار او عبارتند از: «تردستیهای اسکاپن»، «مریض خیالی»، «طبیب اجباری» ،«میزانتروپ»، «تارتوف» ،«خسیس» ،«دون ژوان»،«زنان فضل فروش».
نمایش در سده ۱۸ در فرانسه
نمایش در سده هجدهم در سرتاسر اروپا گسترش یافت. هر شهری صاحب تماشاخانهای شد. نمایشنامه نویسان این دوره به طرح مسائلی از طبقات متوسط پرداختند. با آوردن شخصیتهای عادی در آثار خود به خلق نوع جدیدی از درام پرداختند که اصطلاحاً آن را «نمایش بورژوایی» می خوانندو از طرفی جایگاه استقلال میان آمریکا، انگلیس و انقلاب کبیر فرانسه و مشاجرات فکری و فلسفی این قرن زمینه را برای نهضت ادبی قرن آینده یعنی«رمانتی سیسم» آماده کرد.
چهره جنجالی نقد و نمایشنامه نویسی فرانسه در قرن هجدهم «دیده رو» است. او نقاد، نمایشنامه نویس، فیلسوف و داستان پردازی است که در آثارش بر خلاف عرف، نظرات جدیدی را مطرح میکند. رسالاتی مانند: «درباره شعر نمایشی» و«قیاس ضد و نقیض در بازیگری» از آثار اوست.
در زمینه کمدی«بومارشه» موفقیت زیادی کسب کرد. اثر مهم او عبارت است از: «عروسی فیگارو».
در زمینه تراژدی میتوان به «ولتر» اشاره کرد که شهرتش بیشتر به دلیل افکار فلسفی و رساله مشهورش به نام «بحث درباره تراژدی» است.
اصفهان
اِصفَهان یا اِسپَهان دربارهٔ این پروندهشهری باستانی-گردشگری در مرکز ایران است. این شهر مرکز استان اصفهان و نیز مرکز شهرستان اصفهان است. اصفهان سومین شهر پرجمعیت ایران پس از تهران و [[مشهد] است.این شهر در میان سالهای ۱۰۵۰ تا ۱۷۲۲ میلادی به ویژه در قرن شانزدهم میلادی در میان حکومت صفویان هنگامی که برای دومین بار (پس از دوران سلجوقیان) پایتخت ایران شد، رونق فراوانی گرفت. حتی امروزه نیز شهر مقدار زیادی از شکوه گذشته خود را حفظ کردهاست. بناهای تاریخی متعددی در شهر وجود دارد که تعدادی از آنها به عنوان میراث تاریخی در یونسکو به ثبت رسیدهاند. اصفهان در سال ۲۰۰۶ به عنوان پایتخت فرهنگی جهان اسلام و در سال ۱۳۸۸ به عنوان پایتخت فرهنگ و تمدن ایران اسلامی انتخاب شد. این شهر به داشتن معماری زیبای اسلامی و بسیاری از بلوارهای زیبا، پلهای سرپوشیده، کاخها، مسجدها و منارههای منحصربفرد معروف است. این امر باعث شدهاست که در فرهنگ ایرانی اصفهان، نصف جهان لقب بگیرد. میدان نقش جهان یکی از بزرگترین میدانهای دنیاست و نمونه برجستهای از معماری اسلامی است که توسط یونسکو به عنوان میراث جهانی ثبت شدهاست.
نامهای پیشین
از روزگاران کهن تا کنون به نامهای: الیهودیه (که وجه تسمیه الیهودیه آن بود که در زمان بخت نصر، یهودیان را از بابل کوچ داده و در این مکان ساکن کرده بودند)، صفاهان، صفویان، جی، رشورجی، سپاهان، سپانه، شهرستان، صفاهان، صفاهون، گابا، گابیان، گابیه، گبی، گی و نصف جهان سرشناس بودهاست.پس از فتح توسط اعراب مسلمان و چون در عربی حرف «پ» وجود نداشته بمرور زمان با لهجه و حرف «ص» بصورت «اصفهان» تلفظ گردید.
بیشتر نویسندگان بر این باورند که چون این ناحیه پیش از اسلام، به ویژه در دوران ساسانیان، مرکز گردآمدن سپاه بود و سپاهیان مناطق جنوبی ایران، مانند بختیاری، فارس، خوزستان، سیستان و... در این ناحیه گرد آمده و به سوی محل نبرد حرکت میکردند، آنجا را «اسپهان» گفته، سپس عربی شده و به صورت «اصفهان» درآمدهاست.
این شهرنامهای کهنتری هم دارد که با نام کنونی آن، هیچگونه پیوندی ندارد، مانند: گابیان، گابیه، جی، گبی، گی، گابا.
برخی اصفهان را معرب (عربی شده) اسپهان یا سپاهان مینامند به معنی جایگاه سپاه. شاید در ایران باستان این شهر محل تجمع سپاه بوده گه این چنین نامیده شدهاست. زمانی که کورش بزرگ بابل را گرفت و یهودیان رااز اسارت نبوکدنصر شاه بابل، نجات داد شماری از آنها به ایران آمدند و در این منطقه که به دارالیهودیه نامگذاری شد اسکان یافتند.
تاریخچه
در طول تاریخ به آسانی نمیتوان رد شهر اصفهان را به طور پیوسته دنبال نمود. هر چند اصفهان در مرکز فلات ایران قرار داشت. به علت آن که در دوران پیش از اسلام گرانیگاه شاهنشاهیهای هخامنشی تا ساسانی، قلمرو غربی این شاهنشاهیها و به ویژه میانرودان بود، این شهر در کانون توجه این دودمانها قرار نداشت. در طول تاریخ تا دوران اسلامی میتوان در محل فعلی شهر اصفهان ردپای شهرهای مختلفی تحت نامهای مختلف، محلهای مختلف و حتی مردمان متفاوتی را پیگیری نمود. در دوران ساسانیان به دستور یزدگرد اول یک پادگان نظامی احتیاطی برای آموزش و اعزام نیروی کمکی احداث گردید - بغیر از این پادگان نیز سه مرکز نظامی در (مرو) و (گرگان) و (تیسفون) نیز بوجود آمده بود. این مراکز دارای نیروی ثابت بوده و فقط «سپاهان» برای تعلیم و اعزام نیروی کمکی پیش بینی شده بود.اصفهان کنونی در قدیم گابای (جی) نام داشت و در آغاز مرکز قبیله پَرِتاکِن (که نام فریدن از آن بهجا مانده) بودهاست.
پارتاکن یکی از قبایل بختیاری باستان بوده و در فریدن کنونی که در حال حاضر بخشی از آن بختیاری نشین است سکونت داشتهاند و فریدن در زمان رضاشاه از استان بختیاری جداشد و ضمیمه اصفهان گردید. بنابراین نباید نام پارتیکن را جزو پیشینه اصفهان ذکرنمود. به نظر میآید نام اسپهان (به معنی جایگاه ارتش) از روزگار ساسانیان به بعد جایگزین نام گی شدهباشد. آنگونه که در سرگذشتنامهها آمده، سوارهنظام ساسانی به هنگام صلح در سبزهزارهای پیرامون اسپهان بهویژه در بخش غربی این شهر تا دامنههای کوهها و سرچشمهٔ زایندهرود استقرار مییافت. اسپهان از آنجا که ولیعهدنشین ساسانیان بود امتیازی نسبت به شهرهای ایران آن زمان بهدستآورد. در زمان ساسانیان گاه اسپهان و گاه ارمنستان ولیعهدنشین شاهنشاهی ایران بود ولی اسپهان این امتیاز دیگر را نیز داشت که نشیمنگاه و قلمرو نفوذ واسپوهران یا اعضای هفت خانواده بزرگ ایرانی صاحب نفوذ در پادشاهی نیز بود.
هر چند در دوران اسلامی منطقه جغرافیایی اطراف شهر نام اَسپاهان که نام تقسیم بندی حکومتی زمان ساسانیان بودهاست را حفظ کردهاست. در هنگام حمله اسکندر مقدونی به ایران، این شهر مرکز گابیوه بودهاست و از آن تحت عنوان گابای یا تابای نام برده شدهاست.
سدههای نخست اسلامی
در سدههای آغازین اسلامی، منابع اسلامی از دو شهر در مکان فعلی شهر اصفهان نام میبرند؛ شهری بنام جَی در مکان فعلی محله جی و دیگری شهری در سه کیلومتری غرب جی با نام یهودیه که جمعیتی قابل توجه از یهودیان را در خود جای داده بود. نام جی بعدها به شهرستان و تغییر پیدا کرد و از یهودیه با عنوان جهودستان نیز یاد شدهاست. عربها اسپهان را در سال ۲۳ هجری تصرف کردند و این شهر نیز مانند دیگر شهرهای ایران تا آغاز سدهٔ چهارم هجری زیر سلطهٔ اعراب قرار داشت. در زمان خلیفه منصور عباسی در دهکدهٔ خشینان (احمدآباد امروزی) کاخی بزرگ بنا شد و بارویی به گرد شهر اصفهان کشیدهشد و خشینان به جویباره (یهودیه) پیوستهشد.
دیلمیان
در سال ۳۱۹ ه. ق. مردآویج زیاری با سپاهش از گیلان، اصفهان را آزاد کرد و این شهر را به پایتختی برگزید و جشن سده را با شکوه بسیار در این شهر برپا کرد. در سال ۳۲۷ قمری این شهر به دست رکنالدوله دیلمی افتاد که وی نیز اصفهان را پایتخت خود قرار داد. پس از آن شهر اصفهان پیشرفت پیشین خود را بازیافت و کانون گرد هم آمدن دانشوران و سرایندگان شد.
دوره سلجوقی
در بهار ۴۴۲ هجری قمری طغرل سلجوقی اصفهان را پس از یک محاصره طولانی و ویرانگر گشود. البته شهر به زودی به تدبیر ابولفتح مظفر نیشابوری که از طرف طغرل به حکومت اصفهان منسوب شده بود، بازسازی شد، ۵۰۰،۰۰۰ دینار خرج ساخت بناها شد و سه سال از مردم هیچ مالیاتی گرفته نشد. توسعهٔ سریع شهری، مردمی که در جریان درگیریها گریخته بودند را دوباره به شهر کشاند، همچنین طغرل پایتخت حکومتش را از ری به اصفهان منتقل کرد. گسترش شهر در زمان آلب ارسلان نیز ادامه یافت، اما در دوران ملکشاه و وزیر باتدبیرش خواجه نظام الملک طوسی بود که شهر به اوج شکوهش رسید به طوری که جمعیت شهر دو برابر شد و بناهای بسیاری در آن ساخته شد.
دوره صفوی
در سال ۱۰۰۶ هجری قمری شاه عباس صفوی پایتخت صفویه را از قزوین به اصفهان منتقل کرد، مولف عالم آرای عباسی سبب این انتقال را علاقه شاه عباس به طبیعت اصفهان میداند. دوری از مرزها، کاهش دادن قدرت قزلباشان، بهبود تجارت و ترس شاه عباس از پیشگویی منجمانی که ماندنش را در قزوین برای جانش خطرناک دانسته بودند از دیگر دلایل ذکر شده برای این انتقال است. گزیدن اصفهان به عنوان پایخت توسط شاه عباس، نتایج مثبتی برای این شهر به بار آورد، مسجدها، آب انبارها و کاروانسراهای بسیاری در شهر ساخته شد، به ابتکار شیخ بهایی شبکههای کامل ارتباطی و آبیاری پدید آمد و با بنیان نهادن شهر بازرگانی نجف آباد در چند کیلومتری غرب اصفهان برای تهیه آذوقه شهر، زیربنای زراعی استواری برای پایتخت جدید پدید آمد.
«اصفهان در روزگار شاه عباس اول تا مرگ شاه عباس دوم برتر از همهٔ شهرهای خاورزمین بوده است. در این روزگار، با افزوده شدن کویهای (:محلات) چهارگانهٔ (عباسآباد، جلفا، گبرآباد و اسپهان) نمای پایتخت صفوی از قسطنطنیه هم بزرگتر و زیباتر بود.»
دوره انقلاب اسلامی و پس از آن
در ۱۴ مرداد ۱۳۵۷ تظاهرکنندگان اصفهانی که برای هفتم کشته شدگان حادثه مشهد به خیابانها آمده بودند و البته برخی شان نیز مسلح بودند بیشتر قسمتهای شهر را به تصرف درآورند و آیت الله خادمی را که چندی پیش از آن بازداشت شده بود آزاد کردند، ناآرامیهای دو روزه اصفهان با اعلام حکومت نظامی توسط دولت و با هجوم نیروهای ارتش، پایان یافت. این نخستین بار از سال ۱۳۳۲ بود که در مرکز یک استان حکومت نظامی اعلام میشد.
معماری
پیش از اسلام
از دوره قبل از اسلام، چیزی به جز بقایای آتشکدهای در کوه آتشگاه، اکتشافات اندکی در تپه اشرف و همچنین پل شهرستان (متعلق به دوران ساسانیان) بجا نماندهاست که از میان آن سه، تنها بنای برپا و برجا پل شهرستان است.
بیشتر آثار تاریخی بجا مانده در مربوط به دورهٔ اسلامی است. آثاری از تمامی دورههای تاریخی پس از اسلام بجا ماندهاست اما بویژه آثار دو دوره باشکوه از تاریخ اصفهان یعنی دورهٔ سلجوقی و دورهٔ صفوی برجستگی ویژهای دارد، که هر کدام دارای ویژگیها و سبک معماری یگانه خود است.
سلجوقیان
معماری سلجوقیان - که بویژه در مسجد جامع نمود مییابد - ساده و بیپیرایه اما با ظرافت فراوان است. از ویژگیهای دیگر معماری این دوره سکوت و درونگرایی به دور از هر گونه جلوهگری آن است. بجای آنکه بیننده تحت تأثیر آنی آن قرار گیرد، آرام آرام زیبائی و عظمت اسرار آمیز آن را در جای خود احساس میکند. برخلاف معماری و هنر دوره صفوی که توجه به جلوههای رنگ و نور و چشمگیری و درخشندگی از ویژگیهای آن است. آرامگاه ملکشاه و سلطان سنجر و خواجه نظام الملک از آثار تاریخی این دوره در شهر اصفهان میباشد. یکی از قدیمی ترین شهرهای اصفهان شهر گز در ۱۰ کیلومتری اصفهان است یکی از آثار مهم باقیمانده در این شهر مسجد جامع شر مربوط به دوره سلجوقیان است.
صفویان
در سال ۱۰۰۰ هجری قمری بدستور شاه عباس اول پایتخت صفویان به اصفهان انتقال یافت دراین زمان جمعیت اصفهان به یک میلیون نفر رسید وبه شدت از نظر مراکز تجاری وفرهنگی ترقی نمود.عصر صفوی، عصر کمال و شکوفایی نبوغ معماری و شهرسازی در ایران است. هنرمندان شهر جلفای آذربایجان اوج شکوه معماری ایران را در اصفهان به نمایش گذاشتند. زیباترین و با شکوهترین آثار معماری ایران در همین دوره، توسط معماران خلاق و هنرمندی چون محمدرضا و علی اکبر اصفهانی آفریده شد. در زمان شاه عباس اول صفوی پایتخت از قزوین به اصفهان منتقل شد. اصفهان در مرکز امپراتوری صفوی قرار داشت و نسبت به قزوین به خراسان نزدیک تر بود. موقعیت جفرافیایی این شهر موجب افزایش سرعت عکسالعمل شاه در مقابل تهدیدات ازبکان و عثمانیان بود. شاه عباس بدون ایجاد تفییرات عمده در بخش قدیمی شهر، بخشهای جدیدی را به آن افزود. میدان نقش جهان، دولتخانه و خیابان چهارباغ در کنار بخشهای قدیمی شهر ساخته شدند.
از ویژگیهای مهم در شیوهٔ معماری این دوره، علاوه بر استحکام و زیبایی ساختار، درخشش بیان است. در آثار این دوره تابش رنگ و نور، و جذابیت سطوح و شکوه چشمگیر آنها، احساس زیبائی خیره کنندهای در بیننده ایجاد میکند و طنین رنگها و سطوح مکرر کاشیهای درخشان به منظرهای شفاف، مجرد و روحانی تبدیل میشود.
معماری این دوره از لحاظ وسعت و کارآیی، بسیار متنوع است و در تمامی ابعاد حیات فرهنگی، اجتماعی و اقتصادی مردم حضوری زنده و پویا دارد. باشکوهترین مساجد، عظیمترین میدانها، زیباترین پلها و خیابانها، بزرگترین بازارها، مدرسهها، و کاروانسراها در این عصر ساخته شد. و همه در نوع خود در اوج کمال هنری، استحکام و کارآیی و بعضی چنان باشکوه و زیبا و کامل، که گاهی نمیتوان باور کرد که انسانی ناچیز آن را پدید آورده باشد.
جغرافیا
موقعیت جغرافیایی
اصفهان در ۴۳۵ کیلومتری تهران و در جنوب این شهر قرار دارد. شهر اصفهان دارای طول جغرافیایی ۵۱ درجه و ۳۹دقیقه و ۴۰ ثانیه شرقی و عرض جغرافیایی ۳۲ درجه و ۳۸ دقیقه و ۳۰ ثانیه شمالی میباشد. محدوده شهری آن به چهارده منطقه شهری تقسیم میشود و در خارج از محدوده شهری نیز از غرب به سمت خمینی شهر و نجف آباد، از جنوب کوه صفه و سپاهان شهر، از سمت شمال به شاهین شهر و از شرق نیز به د شت سگزی منتهی میشود.
سطح شهر از سطح عمومی دریاها حدود ۱۵۷۰ متر ارتفاع دارد و در قسمت شمالی و شرقی به کویر محدود میگردد و در قسمت غربی و جنوبی نیز به سلسله کوههای زاگرس منتهی میشود. کوهستان کرکس در پنجاه کیلومتری شمال اصفهان و زردکوه بختیاری در جنوب غربی آن قرار دارد. وجود آبهایی همانند زاینده رود که از زردکوه بختیاری سرچشمه گرفته دلیل پیدایش این شهر میباشد. شهر اصفهان بر روی دشتی به نسبت هموار با شیبی در حدود ۲ درصد و به طرف شمال شرقی بنا گردیدهاست. در طی سدههای گذشته نیز به سبب وجود آب فراوانتر و آلودگی کمتر در سمت جنوب غربی توسعه بیشتری یافتهاست.
تقسیمات کشوری
آب و هوا
این شهر در منطقهای نیمه کویری در مرکز ایران و در کنار زایندهرود قرار گرفته که از کوههای مرکزی ایران سرچشمه میگیردو به باتلاق گاوخونی میریزد و از مراکز گردشگری، فرهنگی و اقتصادی ایران محسوب میشود. زایندهرود بزرگترین رود فلات مرکزی ایران از کوههای مرکزی ایران سرچشمه گرفته و از میان اصفهان میگذرد. همچنین جنگل ناژوان از مناطق خوش آب و هوای حاشیه زایندهرود میباشد، از دیگرمناطق طبیعی قابل گشت و گذار اصفهان میتوان به کوه کلاه قاضی و کوه صفه اشاره نمود. منطقه کلاه قاضی یک پارک ملی است با نام پارک ملی کلاه قاضی که محل زیست جانوران زیادی مانند کل، پازن، بز، آهو، و عقاب است.
اقلیم شهر اصفهان در شمال و شرق از منطقه کویری تاثیر گرفته و در جنوب به جهت وجود کوه صفه از هوای خنک تری بهرهمند است. آب و هوای اصفهان به طور کلی معتدل و خشک است و مقدار بارش باران و برف به نسبت کمی دارد. حداکثر درجه حرارت در تابستان ۴۰ درجه سانتیگراد است که تابستانهایی گرم و خشک را میسازد.
مردمشناسی و فرهنگ
جمعیت
جمعیت این شهر در سال ۱۳۸۵ بالغ بر ۱٬۵۸۳٬۶۰۹ تن برآورد شدهاست. در سال ۱۳۹۰ طبق آمار رسمی کشور، جمعیت این شهر ۱،۷۵۶،۱۲۶ برآورد شده است. اصفهان از دیرباز از مهمترین مراکز شهرنشینی در فلات ایران به شمار میرفتهاست. در ۵ دی ۱۳۱۹ در زمان رضاشاه برای اولین بار در ایران به سبک اروپای در اصفهان از مردم سرشماری بعمل آمد و ۲۰۴ هزار و ۶۰۰ تن را ساکن شهر اصفهان گزارش کردند.
زبان
مردم اصفهان به زبان پارسی و لهجه اصفهانی صحبت میکنند. از ویژگیهای لهجه اصفهانی اضافه کردن حرف «س» به آخر واژگان میباشد، که به جای واژه «است» استفاده میشود. همچنین ارامنه اصفهان نیز به زبان ارمنی سخن میگویند.
دین و مذهب
دین اسلام و مذهب تشیع دین و مذهب رسمی اصفهان است ولی از سدههای پیش ارامنه، یهودیان و سایر اقلیتهای مذهبی نیز در شهر زندگی میکردهاند. جلفا که در جنوب اصفهان قرار گرفته منطقهای است که بیشتر ارمنی نشین میباشد و از منطقههای خوب شهر نیز قلمداد میشود. اصفهان شهری است که اسلام به صورت تدریجی و آرام آرام به رضا و رغبت از سوی مردم اصفهان پذیرفته شد. یکی از صحابه رسول خدا و از شیعیان امام علی (ع) به نام «عبدالله بن بریر خزاعی» اسلام و را به اصفهان آورد. ورود مذهب تشیع به این شهر در طی چندین دوره زمانی صورت گرفته که مهمترین آن عبارتنداز: هجرت ابن هلال ثقفی از کوفه به این شهر، اقامت و تبلیغ صاحب بن عباد وزیر آل بویه در این شهر، هجرت تبلیغی علامه حلی و شاگردانش به همراهی و حمایت الجایتو (شاه خدا بتده) پادشاه شیعه مغول، و در آخرین دوره در دوره صفویه و هجرت علمای جبل عامل به این شهر، بافت شیعی این شهر به نقطه تکامل رسید.
یهودیان اصفهان از قدیمی ترین اهالی این شهر میباشند که در گذشته در محله جویباره (اصفهان) ساکن بودهاند ولی اکنون بیشترشان به خارج کشور مهاجرت کردهاند، معدود یهودیهای باقیمانده هم بیشتر در خیابان فردوسی ساکن هستند.
«در اصفهان، ارامنه و دیگر شاخههای مسیحی، زرتشتیان، بانیان-هندوهای تاجرپیشه- و یهودیان زندگی میکردند. اصفهان در جایگاه یک پایتخت و با شکوفایی سیاسی، اقتصادی و فرهنگی که در روند تاریخی خود داشت، همواره کانون نگرش اقلیتها بود.»
نظرسنجی سال ۱۳۸۹
طی پژوهشی که شرکت پژوهشگران خبره پارس به سفارش شورای فرهنگ عمومی در سال ۸۹ انجام داد و براساس یک بررسی میدانی و یک جامعه آماری از میان ساکنان ۲۸۸ شهر و حدود ۱۴۰۰ روستای سراسر کشور، درصد اقوامی که در این نظر سنجی نمونه گیری شد در اصفهان به قرار زیر بود:
آداب و رسوم
روز و نماد اصفهان
در بهمنماه سال ۱۳۸۳ پس از پیشنهاد گزینش روز اصفهان از سوی دکتر شاهین سپنتا و استقبال برخی از سازمانهای غیردولتی اصفهان از این پیشنهاد، تلاشی برای گزینش روز اصفهان آغاز شد. در اردیبهشت ماه سال ۱۳۸۴ پس از فراخوان «هماندیشی برای نام گذاری روز نکوداشت اصفهان» روز «یکم آذرماه» هر سال از سوی بیش از ۳۰ نفر از اصفهان شناسان به عنوان «روز نکوداشت اصفهان» گزینش و تصویب شد و بر اساس پیشنهاد دکتر لطفالله هنرفر نگاره تاریخی منقوش بر کاشی کاریهای سردر قیصریه اصفهان را که با اقتباس از صورت فلکی برج قوس (آذر ماه) طراحی شدهاست، به عنوان نماد اصفهان برگزیدند. دلیل انتخاب آنها این بود که بر اساس مستندات تاریخی زایچه شهر اصفهان در ماه آذر (قوس) است.
در متن بیان نامه مصوب اصفهان شناسان آمدهاست:
«... از آنجا که احداث باروی حفاظتی یا حصار بزرگ اصفهان به منظور تضمین امنیت شهر تاریخی اصفهان در دوران دیلمیان و در زمان رکنالدوله دیلمی (۲۹۲ - ۳۶۶ هجری قمری) صورت گرفت و برپایی این باروی امنیتی به عنوان نقطه عطفی در تاریخ اصفهان شناخته میشود، یاد روز آن رویداد تاریخی از این روی شایسته تر از دیگر پیشنهادها است. همچنین چون در آن زمان برپایی باروی بزرگ اصفهان بر بنیان زایچه این شهر در آذر ماه (برج قوس) صورت گرفت، لذا روز یکم آذرماه هر سال (مطابق با ۲۲ نوامبر) به عنوان روز نکوداشت اصفهان برگزیده میشود. همچنین نگاره تاریخی منقوش بر کاشیکاریهای سردر بازار قیصریه اصفهان که با اقتباس از صورت فلکی برج قوس (آذر ماه) و با محتوایی متعالی طراحی شدهاست، به عنوان نماد این روز گزیده شد.» از آن سال تاکنون، هرساله سازمانهای مردم نهاد اصفهان و سازمانهای دانشجویی دانشگاههای اصفهان یکم آذرماه را به عنوان روز اصفهان و هفته اصفهان را از یکم تا هفتم آذرماه گرامی میدارند. انجمن دوستداران اصفهان نیز شعار «اصفهان برای همیشه، برای همه» را به عنوان آرمان مشترک همه دوستداران اصفهان برگزیدهاست که بر پوسترهای روز اصفهان به چشم میخورد.
برخی نیز سوم اردیبهشت را به عنوان زادروز شیخ بهایی، روز اصفهان میدانند در حالی که او در روز ۲۶ ذیحجه سال ۹۵۳هجری قمری برابر با ۸ اسفندماه سال ۹۲۵هجری شمسی متولد شدهاست ولی در تقویم رسمی کشور سوم اردیبهشت، روز شیخ بهایی نام گرفته و اخیراً نیز این روز، روز ملی کارآفرینی نامیده شدهاست.
نماد جانوری اصفهان
در سال ۱۳۹۳ قوچ و میش اصفهان با نام علمی Ovis orientalis isphahanica از سوی فعالان زیست محیطی این شهر به عنوان نماد جانوری اصفهان پیشنهاد شد. قوچ و میش اصفهانی که در همه مجامع علمی جهان به نام شهر تاریخی اصفهان شناخته می شود طبق اعلام اتحادیه جهانی حفاظت از محیط زیست (IUCN) در فهرست گونه های آسیب پذیر (VU: Vulnerable) قرار دارد.زیستگاه این زیرگونه خاص در فلات مرکزی ایران در مناطق تپه ماهوری و کوهپایه های استان اصفهان به ویژه پارک ملی و پناهگاه حیات وحش قمشلو، پارک ملی و پناهگاه حیات وحش کلاه قاضی و پناهگاه حیات وحش موته در شمال استان اصفهان است. تاخت و تاز شکارچی ها و شکار بامجوز و بدون مجوز یکی از مهم ترین عواملی است که قوچ و میش اصفهانی را به عنوان یک زیر گونه آسیب پذیر در لیست قرمز معرفی کرده است و طبق مطالعات انجام شده، چرای بیش از حد دام، تصرف و تغییر کاربری اراضی، فعالیت نیروهای نظامی در داخل منطقه و عبور کنار گذر غربی اصفهان و شهرک های صنعتی واقع در شمال و شرق پناهگاه حیات وحش قمشلو از مهمترین عوامل تهدید زیستگاهی برای این گونه منحصر به فرد به شمار می آید .
ساختار شهری
شهرداری
نظم و امنیت
شهر اصفهان به لحاظ حفظ بافت جمعیتی سنتی خود در اغلب نقاط شهر و نیز همکاری مداوم مردم با نهادهای انتظامی و امنیتی، در مقایسه با سایر کلان شهرهای ایران از ضریب امنیت نسبتاً بالایی برخودار است همچنین میتوان گفت یکی از امن ترین شهرهای ایران است و وجود بیش از ۲۰ کلانتری انتظامی و ۳ ناحیه مقاومت متعلق به سپاه پاسداران و نیز مرکزیت اداره اطلاعات و سایر نهادهای امنیتی، بر روند حفظ و صیانت از شهر تاثیرگذار بودهاست.
درکشور چین رقص و آواز همانند کشورهای دیگر از زمانهای بسار کهن متداول بود، و احساسات اشخاص نمایش را با نوعی مبالغه روان شناختی نشان میداد. در حدود قرن هفتم و هشتم پیش از میلاد، راهبان بودایی برای جلب مردم به معابد، داستانهایی از کتابهای مقدس را با قصه و آواز نقل میکردند که در آنها از آوازهای عامیانه و رقص استفاده میشد. دورههای درخشان هنر و ادبیات چین به دوره قبل از حمله مغولها و دوره تسلط مغولها بر چین تقسیم میشود.
هنر و ادبیات چین قبل از حمله مغولها

سلسله هان
اولین دوره درخشان هان و ادبیات چین قبل از حمله مغولها است. زمانی که چین از نظر وسعت برابر با وسعت امپراطوری روم بود. در این دوره همه گونه سرگرمی شامل نمایشهای ورزشی، ژیمناستیک، حرکات آکروباتیک، چشم بندی، تردستی و موسیقی وجود داشت. امپراطوران سلسله هان فعالانه هنر را ترویج میکردند.
سلسله یانگ
رواج نمایشهای تارخی و پرشکوه که در آن شخصیتهای تاریخی را بازسازی میکردند. مشهور است که امپراطور«یانگ تی»پیش از انقراض امپراطوریش نمایشی ترتیب داد که در آن ۱۸ تا ۳۰ هزار اجرا کننده در محلی به درازای ۶ کیلومتر شرکت جستند.
سلسله سونگ
در این دوره فرهنگ و هنر چین شکوفا شد. ساخت وسایل صنعتی، جنگی و هنرهای دستی رواج یافت. داستان گو و نقالی به اوج رسید. این داستانها توسط نقالان یا راویان حرفهای در چایخانهها نقل میشد.(نخستین تماشاخانههای عمومی که در چین ساخته شدند همان چایخانهها بودند.)
ویژگیهای اجرای نمایشی چین
-در درام چین صحنه آرایی اندک است و تماشاگران برای فهمیدن نمایشنامه ناچار هستند تخیل خود را به کار گیرند (یک صندلی شاید نمادی از پل، یا کوه یا یک تخت سلطنتی باشد). -رنگ لباس و چهره از قراردادهای مهم اجرای نمایش است و در بیشتر موارد نشانگر شخصت، حرفه و طبقه اجتماعی است. - حرکات و اشارهها آنچه را که قرار است اتفاق بیفتد نشان میدهد. - موسیقی از بخشهای مهم اجرای درام چین است.
- نمایشهای چین معمولاً دارای داستانی با پایان خوش و همراه با موسیقی هستند.
نمایش در قرن ۱۶ و ۱۷
اسپانیا
نویسندگان اسپانیایی پس از رنسانس بیشتر از نویسندگان ایتالیایی تاثیر گرفتند. در ابتدا به داستانهای سلحشوران، جنگاوران و قطعات رمانتیک میپرداختند.«میگوئل سروانتس» نویسنده رمانس مشهور «دون کیشوت» از جمله نویسندگان اسپانیا است که با نگاهی طنزآمیز اثری زیبا آفریده است. «لوپه دوگا» از نویسندگان نمایشی اسپانیا است که او را پرکارترین نویسنده جهان میدانند، زیرا حدود ۴۸۰ نمایشنامه از او باقیمانده است.
«کالدرون» ازجمله نمایشنامه نویسان عصر طلایی اسپانیایی است که نمایشنامه «قاضی سالامئا» متعلق به او است.
فرانسه
آغاز دوره نئو کلاسیک
فرانسه در قرن ۱۷ متلاطم ترین دوره نمایشی و سیاسی را داشت. از ناآرامی تا ثبات کامل. این دوره را به دلیل احیای قوانین هنری یونان و روم، دوره «نئو کلاسیک» مینامند. فرانسویها در این دوره قواعد ارسطویی را استخراج و ترجمه کردند، و به اجرا درآوردند. مهم ترین گونه یا ژانر نمایش این دوره «تراژدیکمدی» بود. نمایشی ترکیبی از تراژدی و کمدی که در آن نمایش به شکل جدی و مصیبت بار آغاز میشود اما شادمانه و با پایان خوش به اتمام میرسد، یا دسته کم میتوان گفت با مرگ و مصیبت به پایان نمیرسد. تراژیکمدیهای این دوره را بیشتر با عنوان«عشق در برابر شرف» یا «شنل و شمشیر» و یا «عشق و وظیفه» نام میبرند. چهرههای برجسته نئو کلاسیک فرانسه عبارتند از:
پیر کرنی:او را پایهگذار و تثبیت کننده مبانی نئو کلاسیک فرانسه می دانند. از مهمترین آثار او میتوان به «السید» و «ردگونه»اشاره کرد.
ژان راسین: ویژگیهای آثار راسین، داشتن طرحهای ساده و شخصیت پردازی پیچیده است که در آثاری چون «فدر» دیده میشود.
مولیر:مولیر را میتوان بزرگترین کمدی نویس این دوره فرانسه دانست. مولیر با ایجاد گروههای نمایشی دوره گرد و به خصوص با تاکید بر کمدیا دل آرته ایتالیا توانست، تحول بزرگی در کمدی فرانسه به وجود آورد. امروزه آثار او را با عناوینی چون کمدی رئالیستی و کمدی اجتماعی میشناسند. برخی از آثار او عبارتند از: «تردستیهای اسکاپن»، «مریض خیالی»، «طبیب اجباری» ،«میزانتروپ»، «تارتوف» ،«خسیس» ،«دون ژوان»،«زنان فضل فروش».
نمایش در سده ۱۸ در فرانسه
نمایش در سده هجدهم در سرتاسر اروپا گسترش یافت. هر شهری صاحب تماشاخانهای شد. نمایشنامه نویسان این دوره به طرح مسائلی از طبقات متوسط پرداختند. با آوردن شخصیتهای عادی در آثار خود به خلق نوع جدیدی از درام پرداختند که اصطلاحاً آن را «نمایش بورژوایی» می خوانندو از طرفی جایگاه استقلال میان آمریکا، انگلیس و انقلاب کبیر فرانسه و مشاجرات فکری و فلسفی این قرن زمینه را برای نهضت ادبی قرن آینده یعنی«رمانتی سیسم» آماده کرد.
چهره جنجالی نقد و نمایشنامه نویسی فرانسه در قرن هجدهم «دیده رو» است. او نقاد، نمایشنامه نویس، فیلسوف و داستان پردازی است که در آثارش بر خلاف عرف، نظرات جدیدی را مطرح میکند. رسالاتی مانند: «درباره شعر نمایشی» و«قیاس ضد و نقیض در بازیگری» از آثار اوست.
در زمینه کمدی«بومارشه» موفقیت زیادی کسب کرد. اثر مهم او عبارت است از: «عروسی فیگارو».
در زمینه تراژدی میتوان به «ولتر» اشاره کرد که شهرتش بیشتر به دلیل افکار فلسفی و رساله مشهورش به نام «بحث درباره تراژدی» است.
اصفهان
اِصفَهان یا اِسپَهان دربارهٔ این پروندهشهری باستانی-گردشگری در مرکز ایران است. این شهر مرکز استان اصفهان و نیز مرکز شهرستان اصفهان است. اصفهان سومین شهر پرجمعیت ایران پس از تهران و [[مشهد] است.این شهر در میان سالهای ۱۰۵۰ تا ۱۷۲۲ میلادی به ویژه در قرن شانزدهم میلادی در میان حکومت صفویان هنگامی که برای دومین بار (پس از دوران سلجوقیان) پایتخت ایران شد، رونق فراوانی گرفت. حتی امروزه نیز شهر مقدار زیادی از شکوه گذشته خود را حفظ کردهاست. بناهای تاریخی متعددی در شهر وجود دارد که تعدادی از آنها به عنوان میراث تاریخی در یونسکو به ثبت رسیدهاند. اصفهان در سال ۲۰۰۶ به عنوان پایتخت فرهنگی جهان اسلام و در سال ۱۳۸۸ به عنوان پایتخت فرهنگ و تمدن ایران اسلامی انتخاب شد. این شهر به داشتن معماری زیبای اسلامی و بسیاری از بلوارهای زیبا، پلهای سرپوشیده، کاخها، مسجدها و منارههای منحصربفرد معروف است. این امر باعث شدهاست که در فرهنگ ایرانی اصفهان، نصف جهان لقب بگیرد. میدان نقش جهان یکی از بزرگترین میدانهای دنیاست و نمونه برجستهای از معماری اسلامی است که توسط یونسکو به عنوان میراث جهانی ثبت شدهاست.
نامهای پیشین
از روزگاران کهن تا کنون به نامهای: الیهودیه (که وجه تسمیه الیهودیه آن بود که در زمان بخت نصر، یهودیان را از بابل کوچ داده و در این مکان ساکن کرده بودند)، صفاهان، صفویان، جی، رشورجی، سپاهان، سپانه، شهرستان، صفاهان، صفاهون، گابا، گابیان، گابیه، گبی، گی و نصف جهان سرشناس بودهاست.پس از فتح توسط اعراب مسلمان و چون در عربی حرف «پ» وجود نداشته بمرور زمان با لهجه و حرف «ص» بصورت «اصفهان» تلفظ گردید.
بیشتر نویسندگان بر این باورند که چون این ناحیه پیش از اسلام، به ویژه در دوران ساسانیان، مرکز گردآمدن سپاه بود و سپاهیان مناطق جنوبی ایران، مانند بختیاری، فارس، خوزستان، سیستان و... در این ناحیه گرد آمده و به سوی محل نبرد حرکت میکردند، آنجا را «اسپهان» گفته، سپس عربی شده و به صورت «اصفهان» درآمدهاست.
این شهرنامهای کهنتری هم دارد که با نام کنونی آن، هیچگونه پیوندی ندارد، مانند: گابیان، گابیه، جی، گبی، گی، گابا.
برخی اصفهان را معرب (عربی شده) اسپهان یا سپاهان مینامند به معنی جایگاه سپاه. شاید در ایران باستان این شهر محل تجمع سپاه بوده گه این چنین نامیده شدهاست. زمانی که کورش بزرگ بابل را گرفت و یهودیان رااز اسارت نبوکدنصر شاه بابل، نجات داد شماری از آنها به ایران آمدند و در این منطقه که به دارالیهودیه نامگذاری شد اسکان یافتند.
تاریخچه
در طول تاریخ به آسانی نمیتوان رد شهر اصفهان را به طور پیوسته دنبال نمود. هر چند اصفهان در مرکز فلات ایران قرار داشت. به علت آن که در دوران پیش از اسلام گرانیگاه شاهنشاهیهای هخامنشی تا ساسانی، قلمرو غربی این شاهنشاهیها و به ویژه میانرودان بود، این شهر در کانون توجه این دودمانها قرار نداشت. در طول تاریخ تا دوران اسلامی میتوان در محل فعلی شهر اصفهان ردپای شهرهای مختلفی تحت نامهای مختلف، محلهای مختلف و حتی مردمان متفاوتی را پیگیری نمود. در دوران ساسانیان به دستور یزدگرد اول یک پادگان نظامی احتیاطی برای آموزش و اعزام نیروی کمکی احداث گردید - بغیر از این پادگان نیز سه مرکز نظامی در (مرو) و (گرگان) و (تیسفون) نیز بوجود آمده بود. این مراکز دارای نیروی ثابت بوده و فقط «سپاهان» برای تعلیم و اعزام نیروی کمکی پیش بینی شده بود.اصفهان کنونی در قدیم گابای (جی) نام داشت و در آغاز مرکز قبیله پَرِتاکِن (که نام فریدن از آن بهجا مانده) بودهاست.
پارتاکن یکی از قبایل بختیاری باستان بوده و در فریدن کنونی که در حال حاضر بخشی از آن بختیاری نشین است سکونت داشتهاند و فریدن در زمان رضاشاه از استان بختیاری جداشد و ضمیمه اصفهان گردید. بنابراین نباید نام پارتیکن را جزو پیشینه اصفهان ذکرنمود. به نظر میآید نام اسپهان (به معنی جایگاه ارتش) از روزگار ساسانیان به بعد جایگزین نام گی شدهباشد. آنگونه که در سرگذشتنامهها آمده، سوارهنظام ساسانی به هنگام صلح در سبزهزارهای پیرامون اسپهان بهویژه در بخش غربی این شهر تا دامنههای کوهها و سرچشمهٔ زایندهرود استقرار مییافت. اسپهان از آنجا که ولیعهدنشین ساسانیان بود امتیازی نسبت به شهرهای ایران آن زمان بهدستآورد. در زمان ساسانیان گاه اسپهان و گاه ارمنستان ولیعهدنشین شاهنشاهی ایران بود ولی اسپهان این امتیاز دیگر را نیز داشت که نشیمنگاه و قلمرو نفوذ واسپوهران یا اعضای هفت خانواده بزرگ ایرانی صاحب نفوذ در پادشاهی نیز بود.
هر چند در دوران اسلامی منطقه جغرافیایی اطراف شهر نام اَسپاهان که نام تقسیم بندی حکومتی زمان ساسانیان بودهاست را حفظ کردهاست. در هنگام حمله اسکندر مقدونی به ایران، این شهر مرکز گابیوه بودهاست و از آن تحت عنوان گابای یا تابای نام برده شدهاست.
سدههای نخست اسلامی
در سدههای آغازین اسلامی، منابع اسلامی از دو شهر در مکان فعلی شهر اصفهان نام میبرند؛ شهری بنام جَی در مکان فعلی محله جی و دیگری شهری در سه کیلومتری غرب جی با نام یهودیه که جمعیتی قابل توجه از یهودیان را در خود جای داده بود. نام جی بعدها به شهرستان و تغییر پیدا کرد و از یهودیه با عنوان جهودستان نیز یاد شدهاست. عربها اسپهان را در سال ۲۳ هجری تصرف کردند و این شهر نیز مانند دیگر شهرهای ایران تا آغاز سدهٔ چهارم هجری زیر سلطهٔ اعراب قرار داشت. در زمان خلیفه منصور عباسی در دهکدهٔ خشینان (احمدآباد امروزی) کاخی بزرگ بنا شد و بارویی به گرد شهر اصفهان کشیدهشد و خشینان به جویباره (یهودیه) پیوستهشد.
دیلمیان
در سال ۳۱۹ ه. ق. مردآویج زیاری با سپاهش از گیلان، اصفهان را آزاد کرد و این شهر را به پایتختی برگزید و جشن سده را با شکوه بسیار در این شهر برپا کرد. در سال ۳۲۷ قمری این شهر به دست رکنالدوله دیلمی افتاد که وی نیز اصفهان را پایتخت خود قرار داد. پس از آن شهر اصفهان پیشرفت پیشین خود را بازیافت و کانون گرد هم آمدن دانشوران و سرایندگان شد.
دوره سلجوقی
در بهار ۴۴۲ هجری قمری طغرل سلجوقی اصفهان را پس از یک محاصره طولانی و ویرانگر گشود. البته شهر به زودی به تدبیر ابولفتح مظفر نیشابوری که از طرف طغرل به حکومت اصفهان منسوب شده بود، بازسازی شد، ۵۰۰،۰۰۰ دینار خرج ساخت بناها شد و سه سال از مردم هیچ مالیاتی گرفته نشد. توسعهٔ سریع شهری، مردمی که در جریان درگیریها گریخته بودند را دوباره به شهر کشاند، همچنین طغرل پایتخت حکومتش را از ری به اصفهان منتقل کرد. گسترش شهر در زمان آلب ارسلان نیز ادامه یافت، اما در دوران ملکشاه و وزیر باتدبیرش خواجه نظام الملک طوسی بود که شهر به اوج شکوهش رسید به طوری که جمعیت شهر دو برابر شد و بناهای بسیاری در آن ساخته شد.
دوره صفوی
در سال ۱۰۰۶ هجری قمری شاه عباس صفوی پایتخت صفویه را از قزوین به اصفهان منتقل کرد، مولف عالم آرای عباسی سبب این انتقال را علاقه شاه عباس به طبیعت اصفهان میداند. دوری از مرزها، کاهش دادن قدرت قزلباشان، بهبود تجارت و ترس شاه عباس از پیشگویی منجمانی که ماندنش را در قزوین برای جانش خطرناک دانسته بودند از دیگر دلایل ذکر شده برای این انتقال است. گزیدن اصفهان به عنوان پایخت توسط شاه عباس، نتایج مثبتی برای این شهر به بار آورد، مسجدها، آب انبارها و کاروانسراهای بسیاری در شهر ساخته شد، به ابتکار شیخ بهایی شبکههای کامل ارتباطی و آبیاری پدید آمد و با بنیان نهادن شهر بازرگانی نجف آباد در چند کیلومتری غرب اصفهان برای تهیه آذوقه شهر، زیربنای زراعی استواری برای پایتخت جدید پدید آمد.
«اصفهان در روزگار شاه عباس اول تا مرگ شاه عباس دوم برتر از همهٔ شهرهای خاورزمین بوده است. در این روزگار، با افزوده شدن کویهای (:محلات) چهارگانهٔ (عباسآباد، جلفا، گبرآباد و اسپهان) نمای پایتخت صفوی از قسطنطنیه هم بزرگتر و زیباتر بود.»
دوره انقلاب اسلامی و پس از آن
در ۱۴ مرداد ۱۳۵۷ تظاهرکنندگان اصفهانی که برای هفتم کشته شدگان حادثه مشهد به خیابانها آمده بودند و البته برخی شان نیز مسلح بودند بیشتر قسمتهای شهر را به تصرف درآورند و آیت الله خادمی را که چندی پیش از آن بازداشت شده بود آزاد کردند، ناآرامیهای دو روزه اصفهان با اعلام حکومت نظامی توسط دولت و با هجوم نیروهای ارتش، پایان یافت. این نخستین بار از سال ۱۳۳۲ بود که در مرکز یک استان حکومت نظامی اعلام میشد.
معماری
پیش از اسلام
از دوره قبل از اسلام، چیزی به جز بقایای آتشکدهای در کوه آتشگاه، اکتشافات اندکی در تپه اشرف و همچنین پل شهرستان (متعلق به دوران ساسانیان) بجا نماندهاست که از میان آن سه، تنها بنای برپا و برجا پل شهرستان است.
بیشتر آثار تاریخی بجا مانده در مربوط به دورهٔ اسلامی است. آثاری از تمامی دورههای تاریخی پس از اسلام بجا ماندهاست اما بویژه آثار دو دوره باشکوه از تاریخ اصفهان یعنی دورهٔ سلجوقی و دورهٔ صفوی برجستگی ویژهای دارد، که هر کدام دارای ویژگیها و سبک معماری یگانه خود است.
سلجوقیان
معماری سلجوقیان - که بویژه در مسجد جامع نمود مییابد - ساده و بیپیرایه اما با ظرافت فراوان است. از ویژگیهای دیگر معماری این دوره سکوت و درونگرایی به دور از هر گونه جلوهگری آن است. بجای آنکه بیننده تحت تأثیر آنی آن قرار گیرد، آرام آرام زیبائی و عظمت اسرار آمیز آن را در جای خود احساس میکند. برخلاف معماری و هنر دوره صفوی که توجه به جلوههای رنگ و نور و چشمگیری و درخشندگی از ویژگیهای آن است. آرامگاه ملکشاه و سلطان سنجر و خواجه نظام الملک از آثار تاریخی این دوره در شهر اصفهان میباشد. یکی از قدیمی ترین شهرهای اصفهان شهر گز در ۱۰ کیلومتری اصفهان است یکی از آثار مهم باقیمانده در این شهر مسجد جامع شر مربوط به دوره سلجوقیان است.
صفویان
در سال ۱۰۰۰ هجری قمری بدستور شاه عباس اول پایتخت صفویان به اصفهان انتقال یافت دراین زمان جمعیت اصفهان به یک میلیون نفر رسید وبه شدت از نظر مراکز تجاری وفرهنگی ترقی نمود.عصر صفوی، عصر کمال و شکوفایی نبوغ معماری و شهرسازی در ایران است. هنرمندان شهر جلفای آذربایجان اوج شکوه معماری ایران را در اصفهان به نمایش گذاشتند. زیباترین و با شکوهترین آثار معماری ایران در همین دوره، توسط معماران خلاق و هنرمندی چون محمدرضا و علی اکبر اصفهانی آفریده شد. در زمان شاه عباس اول صفوی پایتخت از قزوین به اصفهان منتقل شد. اصفهان در مرکز امپراتوری صفوی قرار داشت و نسبت به قزوین به خراسان نزدیک تر بود. موقعیت جفرافیایی این شهر موجب افزایش سرعت عکسالعمل شاه در مقابل تهدیدات ازبکان و عثمانیان بود. شاه عباس بدون ایجاد تفییرات عمده در بخش قدیمی شهر، بخشهای جدیدی را به آن افزود. میدان نقش جهان، دولتخانه و خیابان چهارباغ در کنار بخشهای قدیمی شهر ساخته شدند.
از ویژگیهای مهم در شیوهٔ معماری این دوره، علاوه بر استحکام و زیبایی ساختار، درخشش بیان است. در آثار این دوره تابش رنگ و نور، و جذابیت سطوح و شکوه چشمگیر آنها، احساس زیبائی خیره کنندهای در بیننده ایجاد میکند و طنین رنگها و سطوح مکرر کاشیهای درخشان به منظرهای شفاف، مجرد و روحانی تبدیل میشود.
معماری این دوره از لحاظ وسعت و کارآیی، بسیار متنوع است و در تمامی ابعاد حیات فرهنگی، اجتماعی و اقتصادی مردم حضوری زنده و پویا دارد. باشکوهترین مساجد، عظیمترین میدانها، زیباترین پلها و خیابانها، بزرگترین بازارها، مدرسهها، و کاروانسراها در این عصر ساخته شد. و همه در نوع خود در اوج کمال هنری، استحکام و کارآیی و بعضی چنان باشکوه و زیبا و کامل، که گاهی نمیتوان باور کرد که انسانی ناچیز آن را پدید آورده باشد.
جغرافیا
موقعیت جغرافیایی
اصفهان در ۴۳۵ کیلومتری تهران و در جنوب این شهر قرار دارد. شهر اصفهان دارای طول جغرافیایی ۵۱ درجه و ۳۹دقیقه و ۴۰ ثانیه شرقی و عرض جغرافیایی ۳۲ درجه و ۳۸ دقیقه و ۳۰ ثانیه شمالی میباشد. محدوده شهری آن به چهارده منطقه شهری تقسیم میشود و در خارج از محدوده شهری نیز از غرب به سمت خمینی شهر و نجف آباد، از جنوب کوه صفه و سپاهان شهر، از سمت شمال به شاهین شهر و از شرق نیز به د شت سگزی منتهی میشود.
سطح شهر از سطح عمومی دریاها حدود ۱۵۷۰ متر ارتفاع دارد و در قسمت شمالی و شرقی به کویر محدود میگردد و در قسمت غربی و جنوبی نیز به سلسله کوههای زاگرس منتهی میشود. کوهستان کرکس در پنجاه کیلومتری شمال اصفهان و زردکوه بختیاری در جنوب غربی آن قرار دارد. وجود آبهایی همانند زاینده رود که از زردکوه بختیاری سرچشمه گرفته دلیل پیدایش این شهر میباشد. شهر اصفهان بر روی دشتی به نسبت هموار با شیبی در حدود ۲ درصد و به طرف شمال شرقی بنا گردیدهاست. در طی سدههای گذشته نیز به سبب وجود آب فراوانتر و آلودگی کمتر در سمت جنوب غربی توسعه بیشتری یافتهاست.
تقسیمات کشوری
آب و هوا
این شهر در منطقهای نیمه کویری در مرکز ایران و در کنار زایندهرود قرار گرفته که از کوههای مرکزی ایران سرچشمه میگیردو به باتلاق گاوخونی میریزد و از مراکز گردشگری، فرهنگی و اقتصادی ایران محسوب میشود. زایندهرود بزرگترین رود فلات مرکزی ایران از کوههای مرکزی ایران سرچشمه گرفته و از میان اصفهان میگذرد. همچنین جنگل ناژوان از مناطق خوش آب و هوای حاشیه زایندهرود میباشد، از دیگرمناطق طبیعی قابل گشت و گذار اصفهان میتوان به کوه کلاه قاضی و کوه صفه اشاره نمود. منطقه کلاه قاضی یک پارک ملی است با نام پارک ملی کلاه قاضی که محل زیست جانوران زیادی مانند کل، پازن، بز، آهو، و عقاب است.
اقلیم شهر اصفهان در شمال و شرق از منطقه کویری تاثیر گرفته و در جنوب به جهت وجود کوه صفه از هوای خنک تری بهرهمند است. آب و هوای اصفهان به طور کلی معتدل و خشک است و مقدار بارش باران و برف به نسبت کمی دارد. حداکثر درجه حرارت در تابستان ۴۰ درجه سانتیگراد است که تابستانهایی گرم و خشک را میسازد.
مردمشناسی و فرهنگ
جمعیت
جمعیت این شهر در سال ۱۳۸۵ بالغ بر ۱٬۵۸۳٬۶۰۹ تن برآورد شدهاست. در سال ۱۳۹۰ طبق آمار رسمی کشور، جمعیت این شهر ۱،۷۵۶،۱۲۶ برآورد شده است. اصفهان از دیرباز از مهمترین مراکز شهرنشینی در فلات ایران به شمار میرفتهاست. در ۵ دی ۱۳۱۹ در زمان رضاشاه برای اولین بار در ایران به سبک اروپای در اصفهان از مردم سرشماری بعمل آمد و ۲۰۴ هزار و ۶۰۰ تن را ساکن شهر اصفهان گزارش کردند.
زبان
مردم اصفهان به زبان پارسی و لهجه اصفهانی صحبت میکنند. از ویژگیهای لهجه اصفهانی اضافه کردن حرف «س» به آخر واژگان میباشد، که به جای واژه «است» استفاده میشود. همچنین ارامنه اصفهان نیز به زبان ارمنی سخن میگویند.
دین و مذهب
دین اسلام و مذهب تشیع دین و مذهب رسمی اصفهان است ولی از سدههای پیش ارامنه، یهودیان و سایر اقلیتهای مذهبی نیز در شهر زندگی میکردهاند. جلفا که در جنوب اصفهان قرار گرفته منطقهای است که بیشتر ارمنی نشین میباشد و از منطقههای خوب شهر نیز قلمداد میشود. اصفهان شهری است که اسلام به صورت تدریجی و آرام آرام به رضا و رغبت از سوی مردم اصفهان پذیرفته شد. یکی از صحابه رسول خدا و از شیعیان امام علی (ع) به نام «عبدالله بن بریر خزاعی» اسلام و را به اصفهان آورد. ورود مذهب تشیع به این شهر در طی چندین دوره زمانی صورت گرفته که مهمترین آن عبارتنداز: هجرت ابن هلال ثقفی از کوفه به این شهر، اقامت و تبلیغ صاحب بن عباد وزیر آل بویه در این شهر، هجرت تبلیغی علامه حلی و شاگردانش به همراهی و حمایت الجایتو (شاه خدا بتده) پادشاه شیعه مغول، و در آخرین دوره در دوره صفویه و هجرت علمای جبل عامل به این شهر، بافت شیعی این شهر به نقطه تکامل رسید.
یهودیان اصفهان از قدیمی ترین اهالی این شهر میباشند که در گذشته در محله جویباره (اصفهان) ساکن بودهاند ولی اکنون بیشترشان به خارج کشور مهاجرت کردهاند، معدود یهودیهای باقیمانده هم بیشتر در خیابان فردوسی ساکن هستند.
«در اصفهان، ارامنه و دیگر شاخههای مسیحی، زرتشتیان، بانیان-هندوهای تاجرپیشه- و یهودیان زندگی میکردند. اصفهان در جایگاه یک پایتخت و با شکوفایی سیاسی، اقتصادی و فرهنگی که در روند تاریخی خود داشت، همواره کانون نگرش اقلیتها بود.»
نظرسنجی سال ۱۳۸۹
طی پژوهشی که شرکت پژوهشگران خبره پارس به سفارش شورای فرهنگ عمومی در سال ۸۹ انجام داد و براساس یک بررسی میدانی و یک جامعه آماری از میان ساکنان ۲۸۸ شهر و حدود ۱۴۰۰ روستای سراسر کشور، درصد اقوامی که در این نظر سنجی نمونه گیری شد در اصفهان به قرار زیر بود:
آداب و رسوم
روز و نماد اصفهان
در بهمنماه سال ۱۳۸۳ پس از پیشنهاد گزینش روز اصفهان از سوی دکتر شاهین سپنتا و استقبال برخی از سازمانهای غیردولتی اصفهان از این پیشنهاد، تلاشی برای گزینش روز اصفهان آغاز شد. در اردیبهشت ماه سال ۱۳۸۴ پس از فراخوان «هماندیشی برای نام گذاری روز نکوداشت اصفهان» روز «یکم آذرماه» هر سال از سوی بیش از ۳۰ نفر از اصفهان شناسان به عنوان «روز نکوداشت اصفهان» گزینش و تصویب شد و بر اساس پیشنهاد دکتر لطفالله هنرفر نگاره تاریخی منقوش بر کاشی کاریهای سردر قیصریه اصفهان را که با اقتباس از صورت فلکی برج قوس (آذر ماه) طراحی شدهاست، به عنوان نماد اصفهان برگزیدند. دلیل انتخاب آنها این بود که بر اساس مستندات تاریخی زایچه شهر اصفهان در ماه آذر (قوس) است.
در متن بیان نامه مصوب اصفهان شناسان آمدهاست:
«... از آنجا که احداث باروی حفاظتی یا حصار بزرگ اصفهان به منظور تضمین امنیت شهر تاریخی اصفهان در دوران دیلمیان و در زمان رکنالدوله دیلمی (۲۹۲ - ۳۶۶ هجری قمری) صورت گرفت و برپایی این باروی امنیتی به عنوان نقطه عطفی در تاریخ اصفهان شناخته میشود، یاد روز آن رویداد تاریخی از این روی شایسته تر از دیگر پیشنهادها است. همچنین چون در آن زمان برپایی باروی بزرگ اصفهان بر بنیان زایچه این شهر در آذر ماه (برج قوس) صورت گرفت، لذا روز یکم آذرماه هر سال (مطابق با ۲۲ نوامبر) به عنوان روز نکوداشت اصفهان برگزیده میشود. همچنین نگاره تاریخی منقوش بر کاشیکاریهای سردر بازار قیصریه اصفهان که با اقتباس از صورت فلکی برج قوس (آذر ماه) و با محتوایی متعالی طراحی شدهاست، به عنوان نماد این روز گزیده شد.» از آن سال تاکنون، هرساله سازمانهای مردم نهاد اصفهان و سازمانهای دانشجویی دانشگاههای اصفهان یکم آذرماه را به عنوان روز اصفهان و هفته اصفهان را از یکم تا هفتم آذرماه گرامی میدارند. انجمن دوستداران اصفهان نیز شعار «اصفهان برای همیشه، برای همه» را به عنوان آرمان مشترک همه دوستداران اصفهان برگزیدهاست که بر پوسترهای روز اصفهان به چشم میخورد.
برخی نیز سوم اردیبهشت را به عنوان زادروز شیخ بهایی، روز اصفهان میدانند در حالی که او در روز ۲۶ ذیحجه سال ۹۵۳هجری قمری برابر با ۸ اسفندماه سال ۹۲۵هجری شمسی متولد شدهاست ولی در تقویم رسمی کشور سوم اردیبهشت، روز شیخ بهایی نام گرفته و اخیراً نیز این روز، روز ملی کارآفرینی نامیده شدهاست.
نماد جانوری اصفهان
در سال ۱۳۹۳ قوچ و میش اصفهان با نام علمی Ovis orientalis isphahanica از سوی فعالان زیست محیطی این شهر به عنوان نماد جانوری اصفهان پیشنهاد شد. قوچ و میش اصفهانی که در همه مجامع علمی جهان به نام شهر تاریخی اصفهان شناخته می شود طبق اعلام اتحادیه جهانی حفاظت از محیط زیست (IUCN) در فهرست گونه های آسیب پذیر (VU: Vulnerable) قرار دارد.زیستگاه این زیرگونه خاص در فلات مرکزی ایران در مناطق تپه ماهوری و کوهپایه های استان اصفهان به ویژه پارک ملی و پناهگاه حیات وحش قمشلو، پارک ملی و پناهگاه حیات وحش کلاه قاضی و پناهگاه حیات وحش موته در شمال استان اصفهان است. تاخت و تاز شکارچی ها و شکار بامجوز و بدون مجوز یکی از مهم ترین عواملی است که قوچ و میش اصفهانی را به عنوان یک زیر گونه آسیب پذیر در لیست قرمز معرفی کرده است و طبق مطالعات انجام شده، چرای بیش از حد دام، تصرف و تغییر کاربری اراضی، فعالیت نیروهای نظامی در داخل منطقه و عبور کنار گذر غربی اصفهان و شهرک های صنعتی واقع در شمال و شرق پناهگاه حیات وحش قمشلو از مهمترین عوامل تهدید زیستگاهی برای این گونه منحصر به فرد به شمار می آید .
ساختار شهری
شهرداری
نظم و امنیت
شهر اصفهان به لحاظ حفظ بافت جمعیتی سنتی خود در اغلب نقاط شهر و نیز همکاری مداوم مردم با نهادهای انتظامی و امنیتی، در مقایسه با سایر کلان شهرهای ایران از ضریب امنیت نسبتاً بالایی برخودار است همچنین میتوان گفت یکی از امن ترین شهرهای ایران است و وجود بیش از ۲۰ کلانتری انتظامی و ۳ ناحیه مقاومت متعلق به سپاه پاسداران و نیز مرکزیت اداره اطلاعات و سایر نهادهای امنیتی، بر روند حفظ و صیانت از شهر تاثیرگذار بودهاست.
5:50 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 را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
برنامهنویسی رایانه در فرهنگ واژه غیر متخصّصین ممکن است به تمام پروژه ساخت نرمافزار یا برنامهٔ رایانهای گفته شود. با این همه برنامهنویسی تنها بخشی از فرایند توسعهٔ نرمافزار یا برنامه رایانهای است. اهمیت، توجه و منابع اختصاص داده شده به برنامهنویسی، بسته به ویژگیهای مشخص شده محصول و خواست افراد درگیر در پروژه و کاربران و در نهایت شیوهٔ انتخاب شده مهندسی نرمافزار متغیر است.
برنامهنویسی کامپیوتر (که اغلب در انگلیسی 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 را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.