شبکه رایانه ای
انواع شبکه‌های رایانه‌ای از نظر اندازه
شبکه شخصی (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 و کابلی جهت مصارف خانگی درون خود از وجود یک مسیریاب نیز بهره می‌برند.




نرم‌افزار

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

ظاهراً، اولین بار جان توکی در سال ۱۹۵۸ این واژه را به‌این معنا به‌کار برده‌است. احتمالاً این واژه در مقابل سخت‌افزار (به انگلیسی: Hardware) به کار برده‌اند که بسیار پیش از پیدایش رایانه (به معنای اسباب و اشیاء) به‌کار می‌رفته‌است.
دو گروه کلی نرم‌افزارها

نرم‌افزارهای رایانه را می‌توان به دو دسته بزرگ تقسیم کرد:

نرم‌افزار سیستم (به انگلیسی: System software)
نرم‌افزار کاربردی (به انگلیسی: Application software)

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




سیستم عامل

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

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


سه گروه کلی نرم‌افزارهای معماری

از دیدگاه ساختواره (architecture)، نرم‌افزارها به دسته‌های زیر تقسیم می‌شوند:

کاربر-بنیان یا client Base
کارگزار-بنیان یا Server Base
کاربر کارگزار بنیان یا Client-Server Base

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





رقابت نرم‌افزاری

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





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




تعریف صنعتی

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




تعریف رایانه

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




فهرست سخت‌افزارها

بُردِ مادر یا برد اصلی (مادربورد)
نمایشگر (مانیتور)
جعبه رایانه (کیس)
صفحه‌کلید (کیبورد)
موشواره (ماوس)
چاپگر (پرینتِر)
پویشگر (اسکنر)
واحد پردازش مرکزی (سی‌پی‌یو یا پردازنده)
فلاپی‌دیسک
دیسک سخت
مودم
دیسک‌گردان نوری (درایو نوری) (CD و DVD)
بلندگو
یو اس‌ بی
کارت صدا
کارت گرافیک
قلم نوری
هدفون (دوگوشی)
کارت تلویزیون و رادیو
دوربین (وب‌کم)
میکروفون
هدست




رایانه شخصی

رایانهٔ شخصی یا PC (کوتاه‌شدهٔ واژه Personal Computer) به آن دسته از رایانه‌ها گفته می‌شود که برای استفادهٔ شخصی و خانگی به کار می‌رود.

اوّلین رایانه شخصی تجاری در سال ۱۹۷۸ میلادی توسط شرکت اپل با نام Apple II ارائه شد. این رایانه رومیزی، زبان برنامه‌نویسی بیسیک را اجرا می‌کرد.

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

در سال ۱۹۸۲ میلادی کمودور ۶۴ به بازار عرضه شد که محبوبیت زیادی پیدا کرد.

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

یکی از اشکال رایانه‌های شخصی، رایانه‌های رومیزی هستند.



رایانامه

رایانامه یا ای‌میل (به انگلیسی: email) به پیامی رقومی (دیجیتالی) گفته می‌شود که در شبکه‌ای رایانه‌ای از یک فرستنده به یک یا چند گیرنده فرستاده می‌شود. سرویس ایمیل یا رایاپیک (به انگلیسی: e-mail service) سامانه‌ای است که این خدمات را ارائه می‌کند. نشانی پست الکترونیکی یا رایانشانی (به انگلیسی: e-mail address)، نشانی است که برای رایانامه مشخص شده‌است.

یکی از کاربردهای اینترنت فرستادن و دریافت نامه‌های الکترونیکی است؛ نامهٔ الکترونیکی پرونده‌ای است که از طریق شبکهٔ اینترنت برای مخاطبی که دارای رایانشانی است، فرستاده می‌شود.

اگر شما دارای یک پست الکترونیکی روی شبکه اینترنت باشید و برایتان یک رایانامه فرستاده شده باشد، این رایانامه روی دستگاه کارساز شبکه‌ای که به آن متصل هستید باقی می‌ماند تا شما به شبکه وصل شوید، سپس با پیام ((نامهٔ تازه)) روبرو می‌شوید که می‌توانید به کمک نرم‌افزارهای مورد استفاده خود آن را بخوانید و به آن پاسخ دهید.




تاریخچه

درباره نحوه ابداع و به‌کارگیری ایمیل اختلاف نظر وجود دارد.



برابر فارسی برای ای‌میل

واژۀ مرکب انگیلسی electronic mail به شکل گرته‌بردارانه به بسیاری از زبان‌های جهان راه یافته است. به سخن دیگر، هر یک از دو واژۀ این ترکیب جداگانه به زبان‌های مقصد برگردانده شده و سپس در آن زبان‌ها واژۀ مرکبی شکل داده‌اند؛ برای نمونه در فرانسوی به courrier électronique، در آلمانی به elektronische Post، در عربی به برید إلکترونی، در روسی به электронная почта و در فارسی به نامۀ الکترونیک و پست الکترونیک برگردانده شده است.

طولی نکشید که واژۀ مرکب انگیلسی electronic mail در خود این زبان به صورت کوته‌نوشت email درآمد و کاربرد گسترده یافت. از آن پس همین صورت کوته‌نوشت هم به بسیاری از زبان‌های دیگر راه یافت (نگاه کنید به صفحۀ مربوط به همین واژه در ویکی‌پدیای دیگر زبان‌ها). این وام‌واژه در فارسی به صورت ایمیل و ای‌میل نوشته می‌شود.

واژه‌های رایانامه و پیام‌نگار از جمله پیشنهادهای فرهنگستان برای نام‌گذاری این پدیده در فارسی هستند که البته هنوز به تصویب نهایی نرسیده‌اند. تا امروز (10 آبان 1392) وبگاه فرهنگستان برابر تصویب‌شده‌ای برای این پدیده منتشر نکرده است. با این حال در همین وبگاه، در صفحۀ ارتباط با فرهنگستان، به جای email واژۀ پیام‌نگار به کار رفته است.

در واژۀ رایانامه جزء رایا کوتاه‌شدۀ رایانه است (مانند e که کوتاه‌شدۀ electronic است). به سخن دیگر، بدین‌سان در انگلیسی و فارسی برای ساختن واژه‌های اینترنتی و رایانه‌ای یک پیشوند ساخته شده است. به این فرایند دستوری‌شدگی می‌گویند. پیشوند «رایا-» هم در فارسی مانند پیشوند -e در انگلیسی نشان‌دهندۀ رایانه‌ای و اینترنتی بودن چیزی است.

از زمرۀ نهادها و مرجع‌های رسمی که واژۀ رایانامه را پذیرفته‌اند، شورای عالی انفورماتیک است که در «واژه‌نامۀ مرجع برای ترجمۀ محیط لینوکس»، Electronic Mail را نامۀ الکترونیکی و E-mail را رایانامه ترجمه کرده است.



پروتکل‌ها

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




نرم‌افزارهای دریافت و ارسال ایمیل

برای فرستادن و دریافت ایمیل، نرم‌افزارهای گوناگونی رایج است از جمله مایکروسافت آوت لوک که تحت ویندوز است و همچنین نرم‌افزار اوولوشن یا Kmail که تحت سیستم‌عاملهای مبتنی بر یونیکس مانند گنو/لینوکس کار می‌کند و یا نرم‌افزارهای مبتنی بر وب مانند squirrelmail.



سرویس‌های ایمیل

از جمله خدمات‌دهندگانی که به صورت رایگان به افراد، یک پست الکترونیک (ایمیل) ارائه می‌دادند می‌توان به موارد زیر اشاره کرد:

جیمیل
یاهومیل
هات‌میل
آمریکن آنلاین




اینترنت

اینترنت (به انگلیسی: Internet) (مخفف interconnected networks شبکه‌های به هم پیوسته) را باید بزرگ‌ترین سامانه‌ای دانست که تاکنون به دست انسان طرّاحی، مهندسی و اجرا گردیده‌است. ریشهٔ این شبکهٔ عظیم جهانی به دههٔ ۱۹۶۰باز می‌گردد که سازمان‌های نظامی ایالات متّحدهٔ آمریکا برای انجام پروژه‌های تحقیقاتی برای ساخت شبکه‌ای مستحکم، توزیع شده و باتحمل خطا سرمایه‌گذاری نمودند. این پژوهش به همراه دوره‌ای از سرمایه‌گذاری شخصی بنیاد ملی علوم آمریکا برای ایجاد یک ستون فقرات جدید، سبب شد تا مشارکت‌های جهانی آغاز گردد و از اواسط دههٔ ۱۹۹۰، اینترنت به صورت یک شبکهٔ همگانی و جهان‌شمول در بیاید. وابسته شدن تمامی فعّالیت‌های بشر به اینترنت در مقیاسی بسیار عظیم و در زمانی چنین کوتاه، حکایت از آغاز یک دوران تاریخیِ نوین در عرصه‌های گوناگون علوم، فن‌ّآوری، و به خصوص در نحوه تفکّر انسان دارد. شواهد زیادی در دست است که از آنچه اینترنت برای بشر خواهد ساخت و خواهد کرد، تنها مقدار بسیار اندکی به واقعیت درآمده‌است.

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

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




واژه‌شناسی

در زبان انگلیسی واژهٔ Intrnet هنگامی که به شبکه جهانی مبتنی بر پروتکل IP اطلاق می‌گردد، با حرف بزرگ در اول کلمه، نوشته می‌شود.
در رسانه‌ها فرهنگ عامه، گاه با اینترنت به صورت یک مقوله عمومی و مرسوم برخورد کرده و آن را با حرف تعریف و به صورت حروف کوچک می‌نگارند(the internet)
در برخی منابع بزرگ نوشتن حرف اول را به دلیل اسم بودن آن جایز می‌دانند نه برای صفت بودن این واژه.
واژهٔ لاتین the Internet چنانچه به شبکهٔ جهانی اینترنت اشاره کند، اسم خاص است و حرف اوّلش با حروف بزرگ آغاز می‌شود(I). اگر حرف اوّل آن کوچک باشد می‌تواند به عنوان شکل کوچک شده کلمه Internetwork برداشت شود که به معنی میان شبکه است. واژه "ابر" نیز به صورت استعاری، به ویژه در ادبیات رایانش ابری و نرم‌افزار به عنوان سرویس، برای اشاره به اینترنت به کار می‌رود.




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

غالباً در گفتگوهای روزمره از دو واژهٔ "وب" و "اینترنت"، به اشتباه، بدون تمایز زیادی استفاده می‌شود، امااین دو واژه معانی متفاوتی دارند. اینترنت یک سامانه ارتباطی جهانی برای داده هاست، زیرساخت‌های نرم‌افزاری و سخت‌افزاری است که رایانه‌ها در سراسر جهان به یک‌دیگر متصل می‌سازد. در مقابل، وب یکی از خدماتی (سرویس) است که بر روی اینترنت ارائه می‌شود و برای ارتباط از شبکه اینترنت بهره می‌جوید. وب مجموعه‌ای از نوشته‌های به هم پیوسته(web page) است که به کمک ابرپیوندها و آدرس جهانی(URL) به یکدیگر پیوند خورده‌اند.
وب شامل سرویس‌های دیگر مانند رایانامه، انتقال فایل(پروتکل اف‌تی‌پی)، گروه خبری و بازی آنلاین است.
خدمات(سرویس)های یاد شده بر روی شبکه‌های مستقل و جدا از اینترنت نیز در دسترس هستند. وب به عنوان لایه‌ای در بالای اینترنت قرار گرفته و سطح بالاتری نسبت به آن قرار دارد.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 8:58 pm
نوع گذاری ایستا و متحرک

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





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

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

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

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

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

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