بامداد نویس

مکانیک آماری

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





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

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





میانه‌ها و شاخص‌های آماری
میانه‌ها وشاخص‌های آماری ترتیبی

iامین شاخص آمار ترتیبی یک مجموعه n عضوی، iامین عضو کوچک است. به عنوان مثال، مینیمم یک مجموعه از اعضا، اولین شاخص آمار ترتیبی (i=۱)است و ماکزیمم، nامین شاخص آمار ترتیبی (i=n)است. میانه، به طور غیر رسمی، نقطهٔ میانی مجموعه‌است. هنگامی که n فرد است، میانه منحصر به فرد است که در i=(n+۱)/۲ رخ می‌دهد. وقتی n زوج است، دو میانه وجود دارند که در i=n/۲ و i=n/۲+۱ رخ می‌دهند. این مقاله انتخاب iامین شاخص آمار ترتیبی از یک مجموعه با n عضو مجزا را بیان می‌کند. مسئله انتخاب می‌تواند به طور رسمی به شکل زیر تعیین شود: ورودی: مجموعه A با n عدد(مجزا) و عدد i، که i بزرگتر یا مساوی ۱ و کوچکتر یا مساوی با n است. خروجی: عضو x در A که بزرگتر از دقیقا i-۱ عضو دیگر A می‌باشد. مسئله انتخاب می‌تواند در زمان (O(nlgn حل شود، چون می‌توانیم اعداد را با استفاده از مرتب سازی دودویی (heap sort) یا مرتب سازی ادغام مرتب کنیم و سپس به سادگی iامین عنصر در آرایه خروجی را مشخص کنیم اما الگوریتم‌های سریع تری وجود دارند. ابتدا مسئله انتخاب مینمم و ماکزیمم یک مجموعه از اعضا را بررسی می‌کنیم. مسئله جالب تر، مسئله انتخاب کلی است، که دردوقسمت بررسی می‌شود.قسمت اول یک الگوریتم عملی را تحلیل می‌کند که در حالت میانگین به زمان اجرای (O(n می‌رسد. قسمت بعد یک الگوریتم است که جنبه‌های نظری بیشتری داشته و در بدترین حالت به زمان اجرای (O(n می‌رسد.






مینیمم و ماکزیمم

چه تعداد مقایسه برای تعیین یک مجموعه n عضوی لازم است؟ می‌توانیم به سادگی به حد بالای n-۱ برای مقایسه‌ها برسیم: هر عضو مجموعه را به ترتیب بررسی کرده و کوچکترین عضوی که تا کنون دیده شده‌است را نگه می‌داریم. در روال زیر، فرض می‌کنیم مجموعه در آرایه A قرار دارد، که طول آرایه n است. قطعا یافتن ماکزیمم می‌تواند با n-۱ مقایسه نیز انجام شود. آیا این بهترین کاری است که می‌توانیم انجام دهیم؟ بله، چون می‌توانیم به حد پایین n-۱ برا مقایسه‌ها برای مینممم برسیم. الگوریتم را در نظر بگیرید که مینیمم را به صورت مسابقه‌ای بین عناصر تعیین می‌کند. هر مقایسه یک بازی در مسابقه‌است که در آن عنصر کوچکتر از میان دو عنصر، برنده می‌شود. نگرش اصلی این است که هر عنصر به جز برنده باید حداقل یک بازی را ببازد. از این رو n-۱ مقایسه برای تعیین مینیمم لازم است.






مینیمم و ماکزیمم هم زمان

در برخی کاربردها، باید هم مینیمم و هم ماکزیمم یک مجموعه از n عضو را پیدا کنیم. ارائه الگوریتمی که بتواند هم مینیمم و هم ماکزیمم n عضو را با استفاده از (θ(nمقایسه، که به طور مجانبی بهینه‌است، پیدا کند سخت نیست. به سادگی مینیمم و ماکزیمم را به طور مستقل، با استفاده از n-۱ مقایسه برای هر یک پیدا می‌کند، که در کل ۲n-۲ مقایسه انجام می‌دهد. در حقیقت، حداکثر ۳n/۲ مقایسه برای پیدا کردن مینیمم و ماکزیمم کافی است. استراتژی این است که اعضای مینیمم و ماکزیمم را که تا این جا دیده شده‌اند نگه داریم. به جای این که هر عضو ورودی را با مقایسه با مینیمم و ماکزیمم فعلی پردازش کنیم، که هزینه ۲ مقایسه برای هر عضو را صرف می‌کند، اعضا را جفت به جفت مقایسه می‌کنیم. ابتدا جفت عضوها را از ورودی با یکدیگر مقایسه می‌کنیم و سپس عضو کوچکتر را با مینیمم جاری و عضو بزرگتر را با ماکزیمم جاری مقایسه می‌کنیم که هزینه ۳ مقایسه برای هر دو عضو را موجب می‌شود.






انتخاب در زمان خطی مورد انتظار

مسئله انتخاب کلی نسبت به مسئله پیدا کردن یک مینیمم سخت تر به نظر می‌آیدو هم چنان که به صورت شگفت آوری زمان اجرای مجانبی هر دو مسئله یکی است: (θ(n.در این بخش یک الگوریتم تقسیم و حل را برای مسئله انتخاب ارائه می دهیم. الگوریتم Randomized-Select بعد از الگوریتم مرتب سازی سریع مدل می‌شود. همانند مرتب سازی سریع ایده آن است که آرایه ورودی را به طور بازگشتی تقسیم کنیم. ولی برخلاف مرتب سازی سریع که هر دو طرف تقسیم بندی را به صورت بازگشتی پردازش می‌کند، Randomized-Select فقط روی یک طرف تقسیم بندی عمل می‌کند. این تفاوت در تحلیل آشکار می‌شود. در حالی که زمان اجرای مورد انتظار مرتب سازی سریع (θ(nlgn است، زمان مورد انتظار این الگوریتم (θ(nاست. Randomized-Select از روال Randomized-Partition که در بخش مرتب سازی سریع معرفی شد استفاده می‌کند.






انتخاب در بدترین حالت زمان خطی

اکنون الگوریتمی را بررسی می کنیم که زمان اجرای آن در بدترین حالت (O(nاست. مانند Randomized-Select، الگوریتم Select عنصر مورد نظر را با تقسیم بندی بازگشتی آرایه ورودی پیدا می‌کند. اما ایده‌ای که پشت این الگوریتم وجود دارد، این است که یک قسمت خوب را در هنگامی که آرایه تقسیم می‌شود تضمین می‌کند. Select از الگوریتم تقسیم بندی قطعی Partition مربوط به مرتب سازی سریع استفاده می‌کند که طوری تغییر یافته است که عنصری که تقسیم بندی حول آن انجام می‌شود را به عنوان پارامتر ورودی بگیرد. این الگوریتم iامین عنصر کوچک از آرایه ورودی با n>1 عنصر را با اجرای مراحل زیر تعیین می‌کند.(اگر n=1باشد آن گاه Select به طور مطلق، تنها ورودیش را به عنوان iامین عنصر کوچک برمی گرداند.)

n عنصرآرایه ورودی را بهn/5 گروه 5 عنصری تقسیم کنید و حداکثر یک گروه از n mod 5 عنصر باقیمانده ساخته می‌شود.
میانه هر یک از n/5گروه را ابتدا با مرتب ساز درجی عناصر هر گروه (که حداکثر 5 عنصر در هر یک وجود دارد)و سپس انتخاب میانه از لیست مرتب شده عناصر گروه پیدا کنید.
از Select به صورت بازگشتی برای پیدا کردن میانه x از n/5میانه‌ای که در مرحله 2 پیدا شدند استفاده کنید.
آرایه ورودی را حول میانهٔ میانه‌ها (یعنی x)با استفاده از نسخه تغییر یافته Partition تقسیم کنید. فرض کنید k یک واحد بیشتر از تعداد عناصر در طرف کم تر تقسیم بندی باشد، بنابراین k، x امین عنصر کوچک است و n-k عنصر در طرف بیشتر تقسیم بندی موجود است.
اگر i=k باشد، x را برگردانید در غیر این صورت اگر i<k باشد از Select به صورت بازگشتی برای پیدا کردن iامین عنصر کوچک در طرف کم تر استفاده کرده یا اگر i>k باشد، از آن برای پیدا کردن (i-k)امین عنصر کوچک در طرف بیشتر استفاده کنید.

برای تحلیل زمان اجرای Select، ابتدا یک حد پایین روی تعداد عناصر بزرگتر از عنصر تقسیم کنندهٔ x تعیین می کنیم. حداقل نصفی از میانه‌های پیدا شده در مرحله 2 بزرگتر از x یعنی میانهٔ میانه‌ها هستند. بنابراین در حداقل نصف n/5گروه، 3 عنصر وجود دارند که از x بزرگترند، به جز برای گروهی که اگر5 به n قابل قسمت نباشد، کم تر از 5 عنصر دارد و گروهی که خود شامل x است. با منظور نکردن این دو گروه ثابت می‌شود که تعداد عناصر بزرگتر از x حداقل برابر است با

3(2-1/2n/5)

که این عبارت بزرگتر یا مساوی با 3n/10-6 است. به طور مشابه عناصری که کوچک تر از x هستند حداقل 3n/10-6 است. بنابراین در بدترین حالت، Select برای حداکثر 7n/10+6 عنصر در مرحلهٔ 5 به طور بازگشتی فراخوانی می‌شود.





توان آماری

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

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

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

در مطالعات با توان آماری بالا، خیلی کم پیش میاید که در تشخیص اثرات تمرین اشتباه کنند.

توان یک تست آماری، شامل عملکردِ: حساسیت، اندازه اثر در جمیعت آماری، و استاندارد های استفاده شده برای اندازه گیری فرضیه آماری است. - ساده ترین راه برای افزایش حساسیت یک تحقیق، افزایش تعداد آزمودنی هاست. - در مورد استاندارد، ساده تر آن است که فرضیه صفر را رد کنیم اگر سطح معناداری، ۰.۰۵ باشد تا ۰.۰۱ یا ۰.۰۰۱.

سه قدم برای تعین توان آماری: ۱- مشخص کردن حد، برای معنی دار بودن آماری. فرضیه چیست؟ سطح معناداری چقدر است؟

۲- حدس زدن اندازه اثر. انتظار دارد که درمان(treatment)، دارای اثری کم، زیاد، یا متوسط باشد؟





احتمالات

بطور ساده، احتمالات (به انگلیسی: Probability) به شانس وقوع یک حادثه گفته می‌شود.

احتمال معمولا مورد استفاده برای توصیف نگرش ذهن نسبت به گزاره هایی است که ما از حقیقت انها مطمئن نیستیم. گزاره های مورد نظر معمولا از فرم "آیا یک رویداد خاص رخ می دهد؟" و نگرش ذهن ما از فرم "چقدر اطمینان داریم که این رویداد رخ خواهد داد؟" است. میزان اطمینان ما، قابل توصیف به صورت عددی می باشد که این عدد مقداری بین 0 و 1 را گرفته و آن را احتمال می نا میم. هر چه احتمال یک رویداد بیشتر باشد، ما مطمئن تر خواهیم بود که آن رویداد رخ خواهد داد. درواقع میزان اطمینان ما از اینکه یک واقعه (تصادفی) اتفاق خواهد افتاد.






نظریهٔ احتمالات

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

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

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

روشهای دیگری نیز برای کمی کردن میزان عدم قطعیت، مانند نظریه Dempster-Shafer theory یا possibility theory وجود دارد ، اما آن ها به طور اساسی با آنچه گفته شد، تفاوت دارند و با درک معمول از قوانین احتمال سازگار نیستند.






تاریخچه

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

به گفته ریچارد جفری، "قبل از اواسط قرن هفدهم، اصطلاح ‘’ احتمالی’’ به معنای قابل تایید (تصویب) و در آن معنا چه برای عقیده افراد و چه برای عمل مورد استفاده بود. در واقع افکار یا اقدام احتمالی، رفتاری بود که مردم معقول درآن شرایط از خود نشان می دادند." البته به خصوص در زمینه های قانونی ،احتمالی (به انگلیسی: Probability) همچنین می تواند به گزاره ای که شواهد خوبی برای اثبات آن وجود دارد، اطلاق شود.

گذشته از کار ابتدایی توسط Girolamo Cardano در قرن 16 اصول احتمالات به مکاتبات پیر دو فرما و بلز پاسکال (1654). کریستین هویگنس (1657) اولین مدل شناخته شده علمی از این موضوع را داد. یاکوب برنولی ARS Conjectandi (منتشرشده پس ازمرگ،1713) و اصول شانس Abraham de Moivre (1718) این موضوع را به عنوان شاخه ای از ریاضیات مطرح می کند. برای تاریخچه ای از توسعه های اولیه مفهوم احتمال ریاضی، ظهور احتمال هک ایان و علم حدس جیمز فرانکلین را ببینید.

تئوری خطاها ممکن است از Roger Cotes's Opera Miscellanea (منتشرشده پس ازمرگ،1722) سرچشمه گرفته باشد، اما شرح حالی که توماس سیمپسون در سال 1755 آماده کرد(چاپ 1756)، برای اولین بار اعمال این نظریه به بحث در مورد خطاهای مشاهده است. چاپ مجدد (1757) این شرح حال نشان می دهد که خطاهای مثبت و منفی هر دو به یک اندازه قابل پیشبینی هستند، و با اختصاص برخی از محدودیت های معین، بازه ای برای تمام خطاها ارائه می دهد.سیمپسون همچنین در مورد خطاهای پیوسته بحث می کند و یک منحنی احتمال را توصیف می کند.

پیر سیمون لاپلاس(1774) برای اولین بار سعی دراستنتاج قانونی برای توصیف مشاهدات از نظر اصول تئوری احتمالات کرد. او قانون احتمال خطاها را با یک منحنی به صورت y = \phi(x), x ، x هر نوع خطا و y احتمال آن معرفی می کند و 3 خاصیت برای این منحنی وضع می کند:

نسبت به محور y متقارن است
محور x مجانب است، احتمال خطا در \infty صفر است
مساحت زیر نمودار آن برابر 1 است.

او همچنین، در سال 1781، یک فرمول برای قانون امکان خطا ( اصطلاحی که لاگرانژ سال 1774 مورد استفاده قرار داد) ارائه کرد، اما به معادلات منظمی منجر نشد.

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






تفسیرها و تحلیل‌های مفاهیم احتمالات

کلمه احتمال تعریف مفرد مستقیم برای کاربرد عملی ندارد. در واقع، چندین دسته گسترده از تفسیر احتمال، که پیروان دارای دیدگاه های مختلف (و گاهی متضاد) در مورد ماهیت اساسی احتمال وجود دارد.

Frequentists
Subjectivists
Bayesians







کاربردها

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

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

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






علوم اجتماعی

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





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





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





داده

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

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

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

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

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

داده‌های ساخت‌یافته
داده‌های نیمه‌ساخت‌یافته







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





قضاوت

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





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





استدلال

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






انواع استدلال

تمثیل

تمثیل سرایت دادن حکم یک موضوع به موضوع دیگر به دلیل مشابهت آن دو به یکدیگر است.







استقرا

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







قیاس (استنتاج)

اما وقتی ذهن از قضیه‌های کلّی به نتیجه‌های جزئی می‌رسد و به عبارت مختصرتر از کلّ به جز می‌آید، آن را قیاس می‌نامند. مثال:

«۱. سقراط انسان است.

۲. هر انسان فانی است.

۳. پس سقراط فانی است.»

در استدلال قیاسی از حداقل دو قضیهٔ درست، ضرورتا و بدون هیچ تردیدی قضیهٔ درست دیگری به نام نتیجه به دست می‌آید.





حقیقت
حقیقت مفهوم و اصطلاحی است برای اشاره به اصل هر چیز استفاده می‌شود.






واژه‌شناسی

واژه حقیقت وام‌واژه‌ای است که از واژه عربی حقیقة وارد فارسی شده‌است. معادل انگلیسی واژه حقیقت واژهٔ Truth می‌باشد.






تفاوت حقیقت و واقعیت

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

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

اما حقیقت می‌تواند این باشد:

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


اگر در ریشهٔ واژگان حقیقت و واقعیت دقیق شویم، تفاوت‌هایی را مشاهده می‌کنیم. ریشهٔ کلمهٔ حقیقت، "حق" به معنای راستی و درستی است و ریشهٔ کلمهٔ واقعیت، "وَقَعَ" به معنای رویدادن و یا اتفاق افتادن است. حقیقت، اشاره به ماهیت راست و درست دارد و واقعیت اشاره به امور عینی و یا اموری که اتفاق می‌افتند.

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






حقیقت و واقعیت در اندیشه‌های متفکران و فلاسفه

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

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

دیدگاه عرفاً پیرامون حقیقت و واقعیت، شکل متکامل تفکرات دینی است.

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

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

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

اندیشه‌های نسبی‌گرایانهٔ نیچه در باب حقیقت و واقعیت به شکلی رادیکال در آراء متفکران پست مدرنی چون ژان فرانسوا لیوتار، ژاک دریدا، ژیل دلوز، میشل فوکو و ژان بودریار دوباره مطرح شد.
1:16 am
کاربرد

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





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

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

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



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

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

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

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

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

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

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

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

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

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




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


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

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

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




نوع گذاری ایستا و متحرک

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





زبان‌های نوع گذاری شده ایستا می‌توانند با مانیفست نوع گذاری شوند یا با استفاده از نوع استنباط شوند. در حالت اول، برنامه نویس بیشتر صریحاً نوع‌ها را در جایگاه‌های منتنی مشخص می‌نویسد(برای مثال، در تعریف متغیرها). در حالت دوم، کامپایلر نوع عبارات و تعریف‌ها را بر اساس متن استنباط می‌کند. غالب زبان‌های مسیر اصلی(mainstream) ایستا نوع گذاری شده، مانند C#,C++ و Java، با مانیفست نوع گذاری می‌شوند



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

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

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل perl, JavaScript, C++، که اجازه تعداد زیادی تبدیل نوع داخلی را می‌دهند. در جاوااسکریپت، برای مثال، عبارت ۲*x به صورت ضمنی x را به عدد تبدیل می‌کند، و این تبدیل موفقیت آمیز خواهد بود حتی اگر x خالی، تعریف نشده، یک آرایه، و یا رشته‌ای از حروف باشد. چنین تبدیلات ضمنی غالباً مفیدند، اما خطاهای برنامه نویسی را پنهان می‌کنند.

قوی و ایستا در حال حاضر عموماً دو مفهوم متعامد فرض می‌شوند، اما استفاده در ادبیات تفاوت دارد، برخی عبارت "قوی نوع گذاری شده" را به کار می‌برند و منظورشان قوی، ایستایی نوع گذاری شده‌است، و یا، حتی گیچ کننده تر، منظورشان همان ایستایی نوع گذاری شده‌است. بنابراین C هم قوی نوع گذاری شده و هم ضعیف و ایستایی نوع گذاری شده نامیده می‌شود.



معناشناسی اجرا

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

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


کتابخانه هسته
اغلب زبان‌های برنامه نویسی یک کتابخانه هسته مرتبط دارند(گاهی اوقات "کتابخانه استاندارد" نامیده می‌شوند، مخصوصا وقتی که به عنوان قسمتی از یک زبان استاندارد ارائه شده باشد)، که به طور قراردادی توسط تمام پیاده سازی‌های زبان در دسترس قرار گرفته باشند. کتابخانه هسته معمولاً تعریف الگوریتم‌ها، داده ساختارها و مکانیزم‌های ورودی و خروجی پرکاربرد را در خود دارد. کاربران یک زبان، غالباً با کتابخانه هسته به عنوان قسمتی از آن رفتار می‌کنند، اگرچه طراحان ممکن است با آن به صورت یک مفهوم مجزا رفتار کرده باشند. بسیاری از خصوصیات زبان هسته‌ای را مشخص می‌کنند که باید در تمام پیاده سازی‌ها موجود باشند، و در زبان‌های استاندارد شده این کتابخانه هسته ممکن است نیاز باشد. بنابراین خط بین زبان و کتابخانه هسته آن از زبانی به زبان دیگر متفاوت است. درواقع، برخی زبان‌ها به گونه‌ای تعریف شده‌اند که برخی از ساختارهای دستوری بدون اشاره به کتابخانه هسته قابل استفاده نیستند. برای مثالف در جاوا، یک رشته به عنوان نمونه‌ای از کلاس “java.lang.String” تعریف شده است؛ مشابها، در سمال تاک(smalltalk) یک تابع بی نام(یک "بلاک") نمونه‌ای از کلاس BlockContext کتابخانه می‌سازد. بطور معکوس، Scheme دارای چندین زیرمجموعه مرتبط برای ایجاد سایر ماکروهای زبان می‌باشد، و در نتیجه طراحان زبان حتی این زحمت را نیز تحمل نمی‌کنند که بگویند کدام قسمت زبان به عنوان ساختارهای زبان باید پیاده سازی شوند، و کدام یک به عنوان بخشی ازکتابخانه.


عمل
طراحان زبان و کاربران باید مصنوعاتی ایجاد کنند تا برنامه نویسی را در عمل ممکن سازند و کنترل کنند. مهمترین این مصنوعات خصوصیات و پیاده سازی‌های زبان هستند.
ساعت : 1:16 am | نویسنده : admin | مطلب قبلی | مطلب بعدی
بامداد نویس | next page | next page