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






معرفی

یک شبکه رایانه‌ای اجازه به اشتراک گذاری منابع و اطلاعات را میان دستگاه‌های متصل شده به هم، می‌دهد. در دهه ۶۰ میلادی، آژانس پروژه‌های تحقیقاتی پیشرفته (ARPA)، بودجه‌ای را به منظور طراحی شبکه آژانس پروژه‌های تحقیقاتی پیشرفته (ARPANET) برای وزارت دفاع ایالات متحده آمریکا اختصاص داد. این اولین شبکه رایانه‌ای در جهان بود. توسعه شبکه از سال ۱۹۶۹ و براساس طرح‌های توسعه یافته دهه ۶۰ آغاز شد.






هدف

شبکه‌های رایانه‌ای را می‌توان برای اهداف مختلف استفاده کرد:

تسهیل ارتباطات: با استفاده از شبکه، افراد می‌توانند به آسانی از طریق رایانامه (E-mail)، پیام‌رسانی فوری، اتاق گفتگو (Chat room)، تلفن، تلفن تصویری و ویدئو کنفرانس، ارتباط برقرار کنند.
اشتراک گذاری سخت افزارها: در یک محیط شبکه‌ای، هر کامپیوتر در شبکه می‌تواند به منابع سخت افزاری در شبکه دسترسی پیدا کرده و از آن‌ها استفاده کند؛ مانند چاپ یک سند به وسیله چاپگری که در شبکه به اشتراک گذاشته شده‌است.
اشتراک گذاری پرونده‌ها، داده‌ها و اطلاعات: در یک محیط شبکه‌ای، هر کاربر مجاز می‌تواند به داده‌ها و اطلاعاتی که بر روی رایانه‌های دیگر موجود در شبکه، ذخیره شده‌است دسترسی پیدا کند. قابلیت دسترسی به داده‌ها و اطلاعات در دستگاه‌های ذخیره سازی اشتراکی، از ویژگی‌های مهم بسیاری از شبکه‌های است.
اشتراک گذاری نرم‌افزارها: کاربرانی که به یک شبکه متصل اند، می‌توانند برنامه‌های کاربردی موجود روی کامپیوترهای راه دور را اجرا کنند.







تعریف

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

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






دسته بندی شبکه‌های رایانه‌ای

فهرست زیر، دسته‌های شبکه‌های رایانه‌ای را نشان می‌دهد.






بر اساس نوع اتصال

شبکه‌های رایانه‌ای را می‌توان با توجه به تکنولوژی سخت افزاری و یا نرم‌افزاری که برای اتصال دستگاه‌های افراد در شبکه استفاده می‌شود، دسته بندی کرد؛ مانند فیبر نوری، اترنت، شبکه محلی بی‌سیم، HomePNA، ارتباط خط نیرو یا G.hn.

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

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

فناوری ITU-T G.hn از سیم کشی موجود در منازل (کابل هم‌محور، خطوط تلفن و خطوط برق) برای ایجاد یک شبکه محلی پر سرعت (تا۱ گیگا بیت در ثانیه) استفاده می‌کند.






بر اساس تکنولوژی سیم کشی

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







بر اساس تکنولوژی بی سیم

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

ماهواره‌ها در فضا مستقر هستند؛ به طور معمول ۲۲۰۰۰ مایل (برای ماهواره‌های geosynchronous) بالاتر از خط استوا. این سیستم‌های در حال چرخش به دور زمین، قادر به دریافت و رله صدا، داده‌ها و سیگنال‌های تلویزیونی هستند.

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







بر اساس اندازه

ممکن است شبکه‌های رایانه‌ای بر اساس اندازه یا گستردگی ناحیه‌ای که شبکه پوشش می‌دهد طبقه‌بندی شوند. برای نمونه «شبکه شخصی» (PAN)، «شبکه محلی» (LAN)، «شبکه دانشگاهی» (CAN)، «شبکه کلان‌شهری» (MAN) یا «شبکه گسترده» (WAN).






بر اساس لایه شبکه

ممکن است شبکه‌های رایانه‌ای مطابق مدلهای مرجع پایه‌ای که در صنعت به عنوان استاندارد شناخته می‌شوند مانند «مدل مرجع ۷ لایه OSI» و «مدل ۴ لایه TCP/IP»، بر اساس نوع «لایه شبکه»ای که در آن عمل می‌کنند طبقه‌بندی شوند.






بر اساس معماری کاربری

ممکن است شبکه‌های رایانه‌ای بر اساس معماری کاربری که بین اعضای شبکه وجود دارد طبقه‌بندی شود، برای نمونه معماری‌های Active Networking، «مشتری-خدمتگذار» (Client-Server) و «همتا به همتا» Peer-to-Peer (گروه کاری).






بر اساس همبندی (توپولوژی)

ممکن است شبکه‌های رایانه‌ای بر اساس نوع همبندی شبکه طبقه‌بندی شوند مانند: «شبکه باس» (Bus)، «شبکه ستاره» ((Star، «شبکه حلقه‌ای» (Ring)، «شبکه توری» (Mesh)، «شبکه ستاره-باس» (Star-Bus)، «شبکه درختی» (Tree) یا «شبکه سلسله مراتبی» (Hierarchical) و ترکیبی و غیره.

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






بر اساس قرارداد

ممکن است شبکه‌های رایانه‌ای بر اساس «قرارداد» ارتباطی طبقه‌بندی شوند. انواع شبکه‌های رایانه‌ای از نظر اندازه






شبکه شخصی (PAN)

«شبکه شخصی» (Personal Area Network) یک «شبکه رایانه‌ای» است که برای ارتباطات میان وسایل رایانه‌ای که اطراف یک فرد می‌باشند (مانند «تلفن»ها و «رایانه‌های جیبی» (PDA) که به آن «دستیار دیجیتالی شخصی» نیز می‌گویند) بکار می‌رود. این که این وسایل ممکن است متعلق به آن فرد باشند یا خیر جای بحث خود را دارد. برد یک شبکه شخصی عموماً چند متر بیشتر نیست. موارد مصرف شبکه‌های خصوصی می‌تواند جهت ارتباطات وسایل شخصی چند نفر به یکدیگر و یا برقراری اتصال این وسایل به شبکه‌ای در سطح بالاتر و شبکه «اینترنت» باشد.

ارتباطات شبکه‌های شخصی ممکن است به صورت سیمی به «گذرگاه»های رایانه مانند USB و فایروایر برقرار شود. همچنین با بهره‌گیری از فناوری‌هایی مانند IrDA، «بلوتوث» (Bluetooth) و UWB می‌توان شبکه‌های شخصی را به صورت بی‌سیم ساخت.






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

دو فناوری «اترنت» (Ethernet) روی کابل «جفت به هم تابیده بدون محافظ» (UTP) و «وای‌فای» (Wi-Fi) رایج‌ترین فناوری‌هایی هستند که امروزه استفاده می‌شوند، با این حال فناوری‌های «آرکنت» (ARCNET) و «توکن رینگ» (Token Ring) و بسیاری روشهای دیگر در گذشته مورد استفاده بوده‌اند.






شبکه کلان‌شهری (MAN)

«شبکه کلان‌شهری» (Metropolitan Area Network) یک «شبکه رایانه‌ای» بزرگ است که معمولاً در سطح یک شهر گسترده می‌شود. در این شبکه‌ها معمولاً از «زیرساخت بی‌سیم» و یا اتصالات «فیبر نوری» جهت ارتباط محل‌های مختلف استفاده می‌شود.






شبکه گسترده (WAN)

«شبکه گسترده» (Wide Area Network) یک «شبکه رایانه‌ای» است که نسبتاً ناحیه جغرافیایی وسیعی را پوشش می‌دهد (برای نمونه از یک کشور به کشوری دیگر یا از یک قاره به قاره‌ای دیگر). این شبکه‌ها معمولاً از امکانات انتقال خدمات دهندگان عمومی مانند شرکت‌های مخابرات استفاده می‌کند. به عبارت کمتر رسمی این شبکه‌ها از «مسیریاب»ها و لینک‌های ارتباطی عمومی استفاده می‌کنند.

شبکه‌های گسترده برای اتصال شبکه‌های محلی یا دیگر انواع شبکه به یکدیگر استفاده می‌شوند. بنابراین کاربران و رایانه‌های یک مکان می‌توانند با کاربران و رایانه‌هایی در مکانهای دیگر در ارتباط باشند. بسیاری از شبکه‌های گسترده برای یک سازمان ویژه پیاده‌سازی می‌شوند و خصوصی هستند. بعضی دیگر به‌وسیله «سرویس دهندگان اینترنت» (ISP) پیاده‌سازی می‌شوند تا شبکه‌های محلی سازمانها را به اینترنت متصل کنند.






شبکه متصل (Internetwork)

دو یا چند «شبکه» یا «زیرشبکه» (Subnet) که با استفاده از تجهیزاتی که در لایه ۳ یعنی «لایه شبکه» «مدل مرجع OSI» عمل می‌کنند مانند یک «مسیریاب»، به یکدیگر متصل می‌شوند تشکیل یک شبکه از شبکه‌ها یا «شبکه متصل» را می‌دهند. همچنین می‌توان شبکه‌ای که از اتصال داخلی میان شبکه‌های عمومی، خصوصی، تجاری، صنعتی یا دولتی به وجود می‌آید را «شبکه متصل» نامید.

در کاربردهای جدید شبکه‌های به هم متصل شده از قرارداد IP استفاده می‌کنند. بسته به اینکه چه کسانی یک شبکه از شبکه‌ها را مدیریت می‌کنند و اینکه چه کسانی در این شبکه عضو هستند، می‌توان سه نوع «شبکه متصل» دسته بندی نمود:

شبکه داخلی یا اینترانت (Intranet)
شبکه خارجی یا اکسترانت (Extranet)
شبکه‌اینترنت (Internet)

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






شبکه داخلی (Intranet)

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

به طور مثال شبکه ملی در ایران نوعی از شبکه‌های داخلی (اینترانت) می‌باشد.






شبکه خارجی (Extranet)

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






شبکه اینترنت (Internet)

شبکه ویژه‌ای از شبکه‌ها که حاصل اتصالات داخلی شبکه‌های دولتی، دانشگاهی، عمومی و خصوصی در سرتاسر دنیا است. این شبکه بر اساس شبکه اولیه‌ای کار می‌کند که «آرپانت» (ARPANET) نام داشت و به‌وسیله موسسه «آرپا» (ARPA) که وابسته به «وزارت دفاع ایالات متحده آمریکا» است ایجاد شد. همچنین منزلگاهی برای «وب جهان‌گستر» (WWW) است. در لاتین واژه Internet برای نامیدن آن بکار می‌رود که برای اشتباه نشدن با معنی عام واژه «شبکه متصل» حرف اول را بزرگ می‌نویسند.

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

همه شبکه‌ها از اجزای سخت‌افزاری پایه‌ای تشکیل شده‌اند تا گره‌های شبکه را به یکدیگر متصل کنند، مانند «کارت‌های شبکه»، «تکرارگر»ها، «هاب»ها، «پل»ها، «راهگزین»ها و «مسیریاب»ها. علاوه بر این، بعضی روشها برای اتصال این اجزای سخت‌افزاری لازم است که معمولاً از کابلهای الکتریکی استفاده می‌شود (از همه رایجتر «کابل رده ۵» (کابل Cat5) است)، و کمتر از آنها، ارتباطات میکروویو (مانند آی‌تریپل‌ئی ۸۰۲٫۱۱) و («کابل فیبر نوری» Optical Fiber Cable) بکار می‌روند.






کارت شبکه (network adapter)

«کارت شبکه»، «آداپتور شبکه» یا «کارت واسط شبکه» (Network Interface Card) قطعه‌ای از سخت‌افزار رایانه‌است و طراحی شده تا این امکان را به رایانه‌ها بدهد که بتوانند بر روی یک شبکه رایانه‌ای با یکدیگر ارتباط برقرار کنند. این قطعه دسترسی فیزیکی به یک رسانه شبکه را تامین می‌کند و با استفاده از «آدرسهای MAC»، سیستمی سطح پایین جهت آدرس دهی فراهم می‌کند. این شرایط به کاربران اجازه می‌دهد تا به وسیله کابل یا به صورت بی‌سیم به یکدیگر متصل شوند.






تکرارگر (repeater)

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






هاب (جعبه تقسیم)- hub

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






پل (bridge)

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







پل‌ها به سه دسته تقسیم می‌شوند:

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







راهگزین (switch)

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

از نظر فنی می‌توان گفت که راهگزین در «لایه پیوند داده» از «مدل مرجع OSI» عمل کنند. ولی بعضی انواع راهگزین قادرند تا در لایه‌های بالاتر نیز به بررسی محتویات بسته بپردازند و از اطلاعات بدست آمده برای تعیین مسیر مناسب ارسال بسته استفاده کنند. به این راه گزین‌ها به اصطلاح «راهگزین‌های چندلایه» (Multilayer Switch) می‌گویند.






مسیریاب (router)

«مسیریاب»ها تجهیزات شبکه‌ای هستند که بسته‌های داده را با استفاده از «سرایند»ها و «جدول ارسال» تعیین مسیر کرده، و ارسال می‌کنند. مسیریاب‌ها در «لایه شبکه» از «مدل مرجع OSI» عمل می‌کنند. همچنین مسیریاب‌ها اتصال بین بسترهای فیزیکی متفاوت را امکان‌پذیر می‌کنند. این کار با چک کردن سرایند یک بسته داده انجام می‌شود.

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





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






تاریخ پول

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






در اقتصاد

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

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

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

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

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

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






انواع پول

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






پول کالایی

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






پول فیات

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






مسکوکات

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






پول بانکی

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






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

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






دیدگاه کینز

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

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

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






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

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





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






بانکداری الکترونیکی

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

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







سیستم‌های پرداخت برای معاملات عمده فروشی

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

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

عدم تکذیب : یک سیستم پرداخت اینترنتی باید گروههای درگیر را مطمئن و متعهد سازد که گروهی نتواند معاملات را انکار کرده و یا بطور غیر قانونی از زیر آن شانه خالی کند.
6:17 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 در برنامه‌های تعبیه شده و سیستم‌های عامل؛ و بقیه برنامه‌ها معمولاً برای نوشتن انواع دیگر برنامه‌ها کاربرد دارند. روش‌های مختلفی برای سنجش محبوبیت زبان‌ها، هر یک متناسب یا یک ویژگی محوری متفاوت پیشنهاد شده‌است:

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

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

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

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

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