امام شیعیان
امامان شیعیان دوازده امامی

اکثریت شیعه، را شیعه امامیه یا اثنی‌عشری (دوازده امامی) تشکیل می‌دهد، از آنجا که آنان جانشینان پیامبر اسلام را ۱۲ نفر می‌دانند، اثنا عشریه (دوازده امامی) نامیده شده‌اند.

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






امام علی بن ابی طالب امیرالمومنین
امام حسن بن علی(حسن مجتبی)
امام حسین بن علی (سید الشهدا)
امام علی بن الحسین (سجاد/زین العابدین)
امام محمد بن علی (باقر)
امام جعفر بن محمد (صادق)
امام موسی بن جعفر (کاظم)
امام علی بن موسی (رضا)
امام محمد بن علی (تقی)
امام علی بن محمد (نقی)
امام حسن بن علی (حسن عسکری)
امام حجت بن الحسن (المهدی)







فقه

مذهب فقهی شیعیان دوازده‌امامی به فقه امامیه مشهور است.






علایم ظاهری شیعیان

در روایتی از حسن بن علی العسکری نقل شده است: «نشانه و علامتِ مؤمن (شیعه) پنج چیز است: ۱- ۵۱ رکعت نماز در شبانه‌روز خواندن (۱۷ رکعت واجب و ۳۴ رکعت مستحبی و نافله روزانه)، ۲- زیارت کردن امام حسین در روز اربعین، ۳- انگشتر را در دست راست نمودن، ۴- پیشانی را در سجده بر خاک نهادن، ۵- بسم الله الرحمن الرحیم را در نمازه بلند گفتن.»

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






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





شاه عبدالعظیم
آرامگاه عبدالعظیم حسنی در مجموعه آرامگاه‌های نوادگان حسن بن علی است که در شهر ری (در جنوب تهران) قرار دارد. این آرامگاه با آرامگاه حمزه و طاهر یکی از مشهورترین زیارتگاه‌های شیعیان ایران بوده و مربوط به دوره ایلخانی - دوره صفوی - دوره قاجار است. این اثر در تاریخ ۱۱ بهمن ۱۳۳۴ با شمارهٔ ثبت ۴۰۶ به‌عنوان یکی از آثار ملی ایران به ثبت رسیده است.






نسب عبدالعظیم

احمد بن علی نجاشی (یکی از بزرگان علم رجال)، درباره نسب وی می‌نویسد: هنگامی که جنازه او را برای غسل برهنه می‌کردند، در جیب لباس وی نوشته‌ای یافت شد که در آن، نسبش، این گونه نوشته شده بود: من ابوالقاسم، عبدالعظیم بن عبدالله بن علی بن حسن بن زید بن علی بن حسن بن علی بن ابی طالب هستم. براساس این نسخه از رجال النجاشی، در نسب ایشان، میان وی و امام حسن، پنج نفر واسطه وجود دارد؛ لیکن در نسخه‌های معتبر این کتاب، میان «زید» - یعنی جدّ سوّم ایشان – و امام حسن علیه السّلام، شخص دیگری واسطه نیست. بنابراین، نیاکان حضرت عبدالعظیم علیه السّلام به ترتیب، عبارت اند از:

۱. عبدالله بن علی

پدر عبدالعظیم، «عبدالله» نام داشت و مادرش، «فاطمه» دختر عقبة بن قیس بود. عبدالله، در زمان حیات جدّش «حسن بن زید» زاده شد و چون پیش از زایشش، پدرش «علی» در زندان درگذشت، جدّش سرپرستی او را به عهده گرفت.

۲. علی بن حسن

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

۳. حسن بن زید

جدّ دوّم عبدالعظیم، «حسن» نام داشت. وی تنها فرزند پسر زید بود که از بزرگان عصر خودش به شمار می‌رفت و در بین بنی هاشم، به بخشش، کرَم، سخاوت و خدمت به نیازمندان، شهرت داشته است. وی از سوی منصور خلیفه عبّاسی به ولایت مدینه گمارده شد؛ ولی پس از مدّتی، مورد خشم او قرار گرفت و به زندان افتاد و در سال ۱۶۸ ق، در هشتاد سالگی از دنیا رفت.

۴. زید فرزند (حسن پسر علی بن ابیطالب)

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






بناها

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

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






آثار تاریخی

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







آرامگاه‌های پیرامون

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

در دوره پهلوی آرامگاهی در جوار این آستان برای رضا شاه پهلوی تدارک دیده شد که به تدریج بسیاری از وابستگان این خاندان در آن جا به خاک سپرده شدند. از جمله: علیرضا پهلوی، سلیمان بهبودی، سپهبد فضل‌الله زاهدی، ارتشبد محمد خاتم، حسن علی منصور. این آرامگاه پس از انقلاب اسلامی سال ۱۳۵۷ به همراه آرامگاه پنجاه تن از وابستگان رژیم گذشته توسط گروهی به سردستگی صادق خلخالی ویران شد.






درگذشت عبدالعظیم

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

پس از مدتی عبدالعظیم بیمار می‌شود و چندی بعد در می‌گذرد. هنگامی که خواستند او را غسل بدهند کاغذی را در پیراهنش می‌یابند که او خود و پدرانش را نام می‌برد: من ابوالقاسم پسر عبدالله پسر علی پسر حسن پسر زید پسر حسن پسر علی بن ابیطالب هستم.





حسن بن راشد

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

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

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

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





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






نام

او از قبیله بنی اسد بود و چون در سامرا زندگی می‌کرد به او عسکری هم می‌گفتند. در محافل شیعه به او «سمّان» و «زیّات» (به معنی روغن فروش) هم می‌گفتند. به خاطر اختفاء امر نیابت و استتار فعالیت‌های سیاسی، روغن‌فروشی می‌کرد، و اموال و نامه‌ها را با ظرف روغن میان امام و شیعیان جابه‌جا می‌کرد. وی همچنین به خاطر ابراز نیابت از طرف امام دوازدهم خود را باب (به معنای درب امامت) می‌نامید. امام حسن عسکری چون نام طولانی او را شنید، گفت: «کنیه ابن عثمان و ابو عمرو در یک مرد جمع نمی‌شود». و بنابراین دستور داد که کنیه او را که ابو عمرو باشد بر هم بزنند و وی را «عمری» نامیدند.






غیبت صغری

پس از در گذشت امام حسن عسکری، احتمالاً عثمان بن سعید امام حسن عسکری را غسل داد و کفن کرد و حنوط نمود و به خاک سپرد.

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





مدینه

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

شهری مدینه در ناحیه تاریخی حجاز در کشور عربستان سعودی، این شهر پس از هجرت پیامبر اسلام، به مدینةالنبی(شهر پیامبر) معروف شد، در اولین شب ربیع الاول سال ۱۴ بعثت، «محمد» به «یثرب» مهاجرت نمود و سرآغاز تاریخ مسلمانان(تاریخ هجری)، از همان سال می‌باشد.

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

فاصله مدینه تا مکه حدود ۴۲۰ کیلومتر است.






تاریخچه یثرب

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

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

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






نامیدن به نام پیشین

در قرآن آمده است که منافقین مدینه، شهر را به نام قدیمش (یعنی یثرب) می‌نامیدند، و نام جدید آن را پذیرا نبودند. آیات ۱۲ و ۱۳ سوره احزاب بیان می‌دارد که در جنگ احزاب، وقتی منافقان و افراد ضعیف‌الایمان، احزاب و گروه‌های مختلف کفار و جمعیت فراوان آن‌ها را دیدند، گفتند: خدا و رسولش جز وعده‌های فریبنده دروغین به ما نداده‌اند؛ و برخی از آن‌ها می‌گفتند: ای مردم یثرب این میدان جای ماندن شما نیست، پس به خانه‌های خود بازگردید (و گر نه همگی کشته می‌شوید)! این در حالی بود که -طبق آیه ۲۲ سوره احزاب- وقتی مؤمنان احزاب و سپاهیان دشمن را دیدند، گفتند: اين همان است كه خدا و رسولش به ما وعده دادند و خدا و رسولش راست گفتند؛ و (ديدن آنها) جز بر ايمان و تسليم آنان نيفزود.





تقلید

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






معانی تقلید

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






مصادیق تقلید

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

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

در مذاهب مختلف اسلامی، تقلید بر مجتهد حرام است اما فرد غیرمجتهد یا کسی که در برخی موضوعات، عامی محسوب می‌شود، باید تقلید کند.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 4:39 am
تعاریف

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

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





هدف: زبان‌های برنامه نویسی با زبان‌های طبیعی تفاوت دارند و آن اینکه زبان‌های طبیعی فقط برای فعل و انفعالات بین مردم به کار می‌روند، در حالیکه زبان‌های برنامه نویسی همچنین به انسانها اجازه می‌دهد که از طریق دستورات با ماشین‌ها ارتباط برقرار کنند. برخی زبان‌های برنامه نویسی بوسیله یک دستگاه استفاده می‌شوند تا دستگاه دیگری را کنترل کند. برای مثال برنامه‌های پست اسکریپت(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.



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

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

دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف می‌شوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص می‌کند:

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

"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثال‌هایی هستند از دنباله‌های خوش فرم در این گرامر.

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

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

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

این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام می‌دهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);

گرامر مورد نیاز برای مشخص کردن یک زبان برنامه نویسی می‌تواند با جایگاهش در "سلسله مراتب چامسکی" طبقه بندی شود. دستور اغلب زبان‌های برنامه نویسی می‌تواند بوسیله یک گرامر نوع ۲ مشخص گردد، برای مثال، گرامرهای مستقل از متن.




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


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

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

در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی می‌شوند(چک کردن یا رد کردن تمام عملیات‌ها)، غالب زبان‌های امروزی درجه‌ای از نوع گذاری را فراهم می‌کنند. بسیاری از زبان‌های تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم می‌کنند.
ساعت : 4:39 am | نویسنده : admin | مطلب قبلی | مطلب بعدی
بهینه سازهای وب | next page | next page