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





عرضه و تقاضا
عَرضه و تقاضا (به انگلیسی: Supply and demand) یک مدل اقتصادی می‌باشد که اثر قیمت را بر روی مقدار در بازار رقابتی بررسی می‌کند. قیمت بر روی مقدار تقاضا از طرف مصرف‌کنندگان و مقدار تولید از طرف عرضه‌کنندگان اثر می‌گذارد. در نتیجه اقتصاد در قیمت و مقدار به تعادل می‌رسد. سایر عوامل موثر در تعادل اقتصادی نیز در این مدل باعث تغییر تقاضا و عرضه می‌شوند.






اصول بنیادی

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

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






عرضه

عَرضه عبارتست از جریان کالا - خدمات به بازار برای برآوردن تقاضا. همچنین می‌توان گفت:مقدار کالا و خدماتی است که تولید کنندگان حاضرند در قیمتهای مختلف در اختیار مصرف کنندگان قرار دهند. شایان ذکراست که عرضه بستگی به دو عامل دارد:
۱-درآمد
۲-هزینه تولید
همچنین با ثابت در نظرگرفتن بعضی عوامل در کوتاه مدت یک رابطه مثبت بین مقدار عرضه کالا یا خدمات و قیمت آن ایجاد می‌شود که به قانون عرضه شهرت دارد.






انتقال تابع عرضه

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






منحنی عرضه عمودی

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





تورم

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

نرخ تورم برابر است با تغییر در یک شاخص قیمت که معمولاً شاخص قیمت مصرف کننده‌است.






تعریف

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







انواع
تورم مطلق و شبه تورم

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






تورم حاد

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






تورم آشکار و نهان

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






ریشه‌های تورم

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

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

نگاهی به شاخصهای رسمی اقتصاد نشان می‌دهد که طی دوره ۱۳۹۱-۱۳۸۴، بدهی بانکها به بانک مرکزی ایران ۱۳٫۶ برابر و بدهی بخش دولتی به بانک مرکزی ۲٫۶ برابر گردیده که این امر در اثر عدم توازن مالی دولت و عدم کفایت منابع خزانه رخ داده است. نتیجه چنین رویکردی ۴٫۴ برابر شدن پایه پولی و ۵٫۰ برابر شدن نقدینگی در کشور بوده که ضمن تغذیه تورم ۴۰ درصدی و ایجاد بی‌ثباتی، باعث ایجاد رشد منفی سرمایه‌گذاری شده‌است.






پیامدهای تورم

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






آثار سیاسی و اجتماعی تورم

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






تورم از دیدگاه عرضه

تولیدات داخلی: با اجرای سیاستهای کنترلی در سال ۱۳۷۴ و برقراری ثبات نسبی در بازار، اقتصاد کشور با افزایش تولید ناخالصی داخلی و زیر بخش‌های آن (صنعت و معدن، کشاورزی، نفت و خدمات) مواجه گردید.

طی سالهای ۷۸-۱۳۷۶ تولید تحت تأثیر کاهش شدید درآمدهای ارزی کاهش یافت. در طی سالهای۸۲-۱۳۷۹ تولید از رشد قابل ملاحظه‌ای تحت تأثیر افزایش درآمدهای ارزی قرار گرفت (کتاب خلاصه تحولات اقتصادی کشور –بانک مرکزی جمهوری اسلامی ایران) و این امر افزایش عرضه و کاهش تورم را به دنبال داشته است.

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

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

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







وضعیت تورم در ایران

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

ایران، دومین نرخ بالای تورم را در سطح جهان دارد. بر اساس این گزارش، زیمباوه با نرخ تورم ۱۸۷٫۲ درصد، بالاترین نرخ تورم را در دنیا دارد.

به گزارش صندوق بین‌المللی پول، ژاپن با تورم منفی ۰٫۲ درصد، صاحب پایین‌ترین نرخ تورم در سطح جهان است. این گزارش حاکی است در سطح جهان، ۲۶ کشور دارای نرخ تورم دو رقمی، یک کشور دارای نرخ تورم سه رقمی، ۱۵۲ کشور دارای نرخ تورم یک رقمی و یک کشور (ژاپن) دارای نرخ تورم منفی هستند.

صندوق بین‌المللی پول در جدیدترین گزارش خود از وضعیت شاخص‌های اقتصادی منطقهٔ خاورمیانه، نرخ تورم سال جاری ایران را معادل ۲۶ درصد پیش‌بینی کرد که براساس آمار این نهاد بین‌المللی، بالاترین میزان تورم ایران در سال‌های اخیر بوده و تا پایان سال ۱۳۹۲ نیز بالاترین نرخ تورم خواهد بود.





بیکاری

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






علل بیکاری

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






انواع بیکاری

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







آثار بیکاری

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





تاریخ تفکر اقتصادی
هراکلیت(۵۳۵تا۴۷۵ قبل از میلاد مسیح)

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






سقراط(۴۶۹تا۳۹۹قبل از میلاد میسح)

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






افلاطون(۴۲۷تا۳۴۷قبل از میلاد مسیح)

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

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






ارسطو(۳۸۴تا۳۲۲قبل از میلاد مسیح)

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





درآمد

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

هر گونه افزایش در صندوق موسسه درآمد محسوب نمی‌گردد، به عنوان مثال:

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

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





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






تاریخ پول

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






در اقتصاد

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

۱)مورد قبول عموم باشد.

۲)بادوام باشد.

۳)استفاده از آن آسان بوده و قابل تقسیم به قسمتهای کوچکتر باشد.

۴) دارای ارزش ثابت باشد.

۵) تولید ان محدود باشد.






انواع پول

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






پول کالایی

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






پول فیات

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






مسکوکات

مسکوکات در واقع پول ضرب شده توسط حکومت می‌باشد که می‌تواند به صورت سکه و یا اسکناس باشد.






پول بانکی

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






مکتبهای اقتصادی
دیدگاه کلاسیک

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






دیدگاه کینز

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

2-انگیزه احتیاطی پول: افراد به حوادث پیش بینی نشده مقداری پول خود را نگهداری می‌کنند.

3-انگیزه سفته بازی یا بورس بازی: مردم یا داری‌های خود را به صورت نقد نکهداری می‌کنند یا اوراق قرضه نگهداری می‌کنند. اگر نرخ بهره پول افزایش یابد مردم کمتر تمایل دارند تا اوارق قرضه یا بورس بازی کنند و اگر نرخ بهره پول کاهش یابد مردم بیشتر تمایل دارند که پول خود را اوراق قرضه یا بورس بازی کنند.






اقتصاد اتریشی

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





دستمزد

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

مبنای محاسبه دستمزد ساعت است که متفاوت است از حقوق که پرداخت‌هایی ماهانه است. دست‌مزد رایج‌ترین شیوه پرداخت به کارگران و حقوق متداول‌ترین شیوه پرداخت به کارمندان است.
1:00 pm
کاربرد برنامه نویسی

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





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

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

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


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



خصوصیات

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

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




سنجش استفاده از زبان

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

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

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

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

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

یک زبان برنامه نویسی ممکن است با فاکتورهای غیر مرتبط به مثال‌های برنامه نویسی دسته بندی شود. برای مثال، غالب زبان‌های برنامه نویسی کلمات کلیدی زبان انگلیسی را استفاده می‌کنند، در حالیکه تعداد کمی این کار را نمی‌کنند. سایر زبان‌ها ممکن است براساس داخلی بودن یا نبودن دسته بندی شوند.
ساعت : 1:00 pm | نویسنده : admin | گرافیکسولوژی | مطلب قبلی
گرافیکسولوژی | next page | next page