علی صافی گلپایگانی
علی صافی گلپایگانی (زادهٔ ۱۲۹۱ در گلپایگان - درگذشتهٔ ۱۳ دی ۱۳۸۸ در گلپایگان) از مجتهدان و مراجع تقلید معاصر شیعه بود. لطف الله صافی گلپایگانی برادر کوچک علی صافی گلپایگانی نیز از مراجع تقلید شیعه است.






تحصیلات

تحصیلات ابتدایی را نزد پدرش آیت‌الله ملا محمدجواد صافی گلپایگانی گذراند. در سن شانزده سالگی برای تحصیل به اصفهان رفت و در نوزده سالگی عازم قم شد و در سن بیست‌ودو سالگی به درجه اجتهاد نائل شد.

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

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






مرجعیت و فعالیت‌ها

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

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






آثار

آثاری از وی به نظم و نثر فارسی و عربی به جا مانده است که برخی به چاپ رسیده بود. شماری از آنها زیر چاپ و قسمتی به صورت دست‌نویس بود.







بخشی از آثار چاپ‌شدهٔ او شامل موارد زیر است:

ذخیرة العقبی فی شرح العروة الوثقی
منتخب الحکام
مناسک حج
در انتظار وصال
رساله عملیه توضیح المسائل فارسی
تقریرات اصول آیت‌الله حجت به نام «المحجة فی تقریرات الحجة» در دوجلد
راز دل
الدلالة الی من له الولایة
المحجة فی تقریرات الحجة (۲جلد)
تاریخ تحول فقه شیعه
منتخب الاحکام
اصول الفقه
تقریرات درس آیت‌الله بروجردی (صلاة، وصیت و ...)
تقریرات درس آیت‌الله حجت (تیمم، بیع و ...)







درگذشت

وی در صبح ۱۴ دی ۱۳۸۸ در سن ۹۷ سالگی در گلپایگان درگذشت و بنابر وصیتش در آرامستان قاضی زاهد این شهر دفن شد.






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






شرایط اجتهاد

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






تاریخچه اجتهاد

کلمه اجتهاد در طول تاریخ اسلام، دارای معانی مختلف و احیانا متناقضی بوده‌است.

در زمان صدر اسلام و در عصر ائمه اطهار و اصحاب آنان، اجتهاد به معنای «عمل به رأی شخصی» تلقی می‌شده‌است. به همین دلیل، سخنانی از دانشمندان و فقیهان آن برهه از زمان در مذمت اجتهاد رسیده‌است. مثلا شیخ مفید (متوفای سال ۴۱۳ هجری) کتابی تحت عنوان «النقض علی ابن الجنید فی اجتهاد الرای» به رشته تحریر در آورده‌است و اجتهاد به رأی را رد نموده‌است. مثال دیگر اینکه سید مرتضی (متوفای سال ۴۳۶ هجری) در کتاب خود به نام «الذریعه» می‌گوید: «اجتهاد باطل است و امامیه، عمل به ظن و رأی و اجتهاد را جایز نمی‌دانند».

اما از قرن هفتم هجری، کلمه اجتهاد و مجتهد، معنای دیگری به خود گرفت و به معنای «بذل جهد و تلاش در جهت استنباط احکام شرعی از منابع و دلائل فقه اسلامی» به کار برده شد. بدین جهت، محقق حلی (متوفای سال ۶۷۶ هجری) در کتاب خود به نام «المعارج» تحت عنوان «حقیقة الاجتهاد» چنین می‌گوید: «و هو فی عرف الفقهاء بذل الجهد فی استخراج الأحکام الشرعیّة، و بهذا الاعتبار یکون استخراج الأحکام من أدلّة الشرع اجتهاداً. یعنی :»اجتهاد در عرف فقهاء، بذل جهد و کوشش در امر استخراج احکام شرعیه‌است، و به این اعتبار، استخراج احکام از دلائل شرعی آن، اجتهاد می‌باشد".






مجتهد متجزّی

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






مجتهد جامع الشرایط

این واژه در اصطلاح متشرعین، به معنای مجتهدی است که واجد شرایط خاص باشد. اکثر مراجع فعلی شرایط زیر را لازم می دانند:

اجتهاد مطلق
عاقل
بالغ
عادل
شیعه دوازده امامی
حلال زاده
زنده
مرد
اعلم
تقوا و پرهیزکاری
آگاهی از زمان و مسائل و مشکلات جامعه

البته این موارد محل اختلاف است و فقهای بسیاری هستند که بسیاری از این موارد را قبول ندارند.






مجتهد اعلم

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






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






معنای لغوی و اصطلاحی مرجع

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






معنای لغوی و اصطلاحی تقلید

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

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






تاریخچه

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

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

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






نقش مراجع تقلید شیعه

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

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






مرجعیت عام

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






مرجعیت اعلی

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






مراجع مشهور کنونی

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






تقلید

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






معانی تقلید

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






مصادیق تقلید

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

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

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






تقلید در مذهب شیعه

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

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

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






ادله جواز و وجوب تقلید از نظر شیعه

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






دلایل چهارگانه جواز و وجوب تقلید

دلایل چهارگانه فقهی جواز و وجوب تقلید به تفصیل شامل: عقل، وحی و حدیث و اجماع می‌باشند.






دلایل عقلی

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






دلایل وحیانی

آیات متعددی دلیل دیگر جواز تقلیدند، از جمله آیة ۷ سوره انبیاء که سؤال کردن از عالمان و «اهل ذکر» را بر غیر عالمان لازم دانسته‌است اما گفته‌اند که این آیه در مورد اعتقادات است که تقلید در آن راه ندارد. همچنین برخی آیة ۱۲۲ سوره توبه را، که بر وجوب سفر برای تفقّه در امر دین دلالت دارد، دلیل جواز تقلید از فقها دانسته‌اند.

در قرآن دو نوع تقلید مطرح شده‌است: تقلید ناپسند و تقلید پسندیده.

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

تقلید در اصول دین و عقاید، مذموم و ناپسند است؛ ولی آیات متعددی، تقلید در فروع دین و احکام تأیید شده، و بر آن تأکید شده‌است. علمای تفسیر و فقه از آیه ۱۲۲ سوره توبه لزوم تقلید «جاهلان به احکام دین» از فقیهان و عالمان برداشت کرده‌اند: گروهی از علمای اسلام به آیه یاد شده در مسئله جواز تقلید استدلال کرده‌اند، و چنین استدلال نموده‌اند که فراگیری تعلیمات اسلام و رساندن آن به دیگران در مسائل فروع دین و لزوم پیروی‌شوندگان از آنان، همان تقلید است. برخی مفسران و فقیهان از آیات ۴۳ سوره نحل و ۷ سوره انبیاء، ضرورت تقلید و رجوع انسان‌های «ناآگاه از مسایل فرعی دین» به عالمان و مجتهدان برداشت کرده‌اند: برخی علما برای جواز تقلید عامی و رجوع غیرمجتهد به مجتهد در مسائل فرعی، به این آیه استدلال کرده‌اند. علامه طباطبایی هم معتقد است این آیه، ارشاد به یک اصل کلّی و عقلایی است و آن رجوع جاهل به اهل علم و خبره‌است.

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






دلایل حدیثی

احادیثی که گاه فقهای امامیه برای جواز تقلید به آنها استناد کرده‌اند، چند دسته‌اند:

۱) حدیثی که واژة تقلید یا مشتقات آن را در بر دارد.

۲) احادیثی که در آنها امامان، شیعیان را به راویان حدیث ارجاع داده‌اند، مانند توقیع امام دوازدهم.

۳) احادیثی که طبق آنها امامان به اشخاص معیّنی، با ذکر نام، ارجاع داده‌اند.

۴) احادیثی که در آنها ائمه یاران خود را به فتوا دادن برای مردم ترغیب یا فتوای آنها را تأیید کرده‌اند.

۵) احادیثی که از فتوا دادن بدون علم یا فتوا دادن بر پایهٔ روشهایی مانند رأی و قیاس نهی کرده است که مفهوم آنها، جواز فتوا دادن بر اساس دلیل معتبر شرعی است.

۶) احادیثی که متضمن تقریر امامان شیعه مبنی بر جواز تقلید از کسانی است که بر طبق ضوابط شرعی فتوا می‌دهند.






دلایل اجماعی

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






اصطلاحات کلیدی تقلید

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







تقلید در مذهب اهل تسنن

موضوع تقلید در میان اهل سنّت فراز و نشیبهای بسیاری داشته است. برخی مؤلفان، از این منظر، فقه اهل سنّت را به چهار دوره تقسیم کرده‌اند:

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

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

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

۴) مرحلهٔ رواج مجدد اجتهاد و تقلید: بعضی علمای پیشین اهل سنّت، مانند ابوالفتح شهرستانی (متوفی ۵۴۸) و ابواسحاق شاطبی (متوفی ۷۹۰)، به بسته بودن باب اجتهاد و افتا معترض و خواهان گشودن آن بودند. در قرن اخیر نیز شماری از عالمان اهل سنّت و شیوخ الازهر، به استناد اجماع مسلمانان در صدر اسلام مبنی بر جواز تقلید از هر یک از صحابه، انحصار اجتهاد در چهار مذهب را مردود دانسته‌اند و اجتهاد علمی مجدداً رواج یافته است. بر این اساس، مکلفان سنّی مذهب می‌توانند از هر یک از ائمهٔ مذاهب فقهی که بخواهند تقلید کنند و حتی جایز است که در مورد مسائل مختلف، از میان آرای مذاهب چهارگانهٔ اهل سنّت، آسانترین رأی فقهی را برای تقلید برگزینند. این دیدگاه در میان فقهای پیشین اهل سنّت نیز مدافعانی داشته، هر چند برخی از آنها مانند کیاهراسی و ابن تیمیّه (متوفی ۷۲۸) با آن به مخالفت بر خاسته‌اند.






جواز یا حرمت تقلید از نظر اهل تسنن

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

فقهای متأخر اهل سنّت قائل به جواز تقلید و وجوب آن برای عامی (غیر عالم) هستند، زیرا هر فرد، مکلف به انجام دادن احکام شرعی است و نبودن حجت برای اثبات تکلیف، موجب زوال آن و طرد شریعت می‌شود.







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






حوزه‌های علمیه در ایران

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






پذیرش

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






تغییر نظام آموزشی

نظام سنتی: تا قبل از انقلاب ۱۳۵۷ ایران، حوزه‌های علمیه بر پایهٔ همکاری متقابل استاد و شاگرد اداره می‌شد و نظام آموزشی واحد و نظام‌مندی نداشتند.

نظام جدید: بعد از انقلاب، حوزه‌ها به تابعیت شورای عالی حوزه‌های علمیه و مدیریت «مرکز مدیریت حوزه‌های علمیه» تحت شورای عالی حوزه‌ها درآمدند. به دنبال آن ساختارهای سنتی در برخی از بخش‌ها فرو ریخت و حوزه‌های علمیه ساختار جدیدی یافتند.






حوزه علمیه خواهران

در میان شیعیان تحصیل علوم دینی میان زنان به صورت منفرد و پراکنده بود. از حدود چهار دهه پیش، مراکز تحصیلی علوم دینی زنان به شکل سامان‌یافته به تعداد کمی وجود داشت. شورای عالی حوزه علمیه قم در اسفند ۱۳۷۵ مرکز مدیریت حوزه‌های علمیه خواهران را تأسیس کرد تا «با مدیریت واحد، مدارس علمیهٔ خواهران را سازماندهی، هدایت و نظارت کند». فعالیت‌های این نهاد «تلاش برای حفظ و گسترش نگرش مردسالارانه در میان زنان» عنوان می‌شود که اکثر طلاب طرفدار آن هستند.علاوه بر مرکز مدیریت حوزه‌های علمیه خواهران، حوزه علمیه جامعة الزهراء قم هم به پذیرش و آموزش طلاب خانم اقدام می‌کند.
1:03 am
برنامه‌نویسی

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

برنامه‌نویسی کامپیوتر (که اغلب در انگلیسی 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 را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
ساعت : 1:03 am | نویسنده : admin | کاکاپو | مطلب قبلی
کاکاپو | next page | next page