بهینه سازهای وب

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





مرورگر وب

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

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

در نوامبر ۲۰۱۰ اینترنت اکسپلورر، موزیلا فایرفاکس و گوگل کروم به ترتیب بیشترین سهم را در بازار مرورگرهای اینترنت داشته‌اند.







تاریخچه

اولین مرورگر وب در سال 1990 و توسط Tim Berners-Lee اختراع شد به نام مرورگر WorldWideWeb که نام آن بعدها به Nexus تغییر کرد. در سال 1993Mark Andreessen مخترع Netscape دست به نو آوری و ایجاد تغییراتی در مرورگرها زد، او با انتشار Mosaic (بعدها Netscape) اولین مرورگر محبوب در سراسر جهان که استفاده از تار جهان گستر را آسان تر و دسترسی مردم معمولی را با آن نیز ممکن ساخت و همچنین اولین مرورگر گرافیکی جهان بود انقلابی در روش استفاده از وب را به وجود آورد. او بعدها شرکت خود را به نام Netscape افتتاح کرد و در سال 1994 مرورگر Netscape Navigator را عرضه کرد که سریعا به محبوب ترین مرورگر جهان تبدیل شد. در سال 1995 مایکروسافت با عرضه Internet Explorer نخستین قدم را در رقابت مرورگرها برداشت و در سال 2002 با 95% تعداد کاربر تبدیل به محبوب ترین مرورگر جهان شد.







مرورگرهای اینترنت

اینترنت اکسپلورر
فایرفاکس
گوگل کروم
سافاری
اپرا
سی‌مانکی
لینکس (lynx)
آوانت
مکستون






اینترنت اکسپلورر
ویندوز اینترنت اکسپلورر (به انگلیسی: Windows Internet Explorer) مرورگر وب مایکروسافت و پراستفاده‌ترین مرورگر در میان کاربران است. این مرورگر به طور پیش فرض همراه با سیستم‌عامل ویندوز نصب می‌شود (ویندوز ۹۸ و نسخه‌های جدید تر ویندوز).







گذشته

پروژه اینترنت اکسپلورر تابستان ۱۹۹۴ بوسیله Thomas Reardon آغاز شد.





فایرفاکس

موزیلا فایرفاکس (به انگلیسی: Mozilla Firefox) (به فارسی: روباه آتشین موزیلا) (مخفف شده آن به صورت رسمی Fx، اما به‌صورت غیررسمی FF) مرورگر وب آزاد و متن‌باز برگرفته از موزیلا اپلیکیشن سویت است که توسط بنیاد موزیلا اداره می‌شود. بر اساس آمار در ماه می ۲۰۱۴، این مرورگر ۲۴٫۹٪ از کاربران اینترنت را به خود اختصاص داده است.

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

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

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







ویژگی‌ها

این برنامه ویژگی‌های بسیاری دارد. با گسترش وب و اهمیت بحث تبلیغات طراحان به فکر ایجاد صفحاتی افتادند که بدون خواست کاربر گشوده شوند. با استفاده از امکان pop-up blocker موزیلا، این صفحات امکان ایجاد مزاحمت را ندارند. این گزینه برای مرورگر قابل تنظیم است.

یکی از ویژگی‌های موزیلا فایرفاکس امکان گشودن چند صفحه در یک پنجره (tabbed browsing) و کشیدن و رها کردن (drag-and-drop) مکان تب‌ها است.

قابلیت RSS قوی این مرورگر، امکان پاک کردن آسان اطلاعات شخصی، امکان کشیدن و رها کردن متن به باکس جستجو، حمایت از SVG و CSS2 و CSS3 و JavaScript، حمایت از صفحات طراحی‌شده با فناوری نوین ای‌جکس (AJAX)، حمایت از قابلیت‌های ویژهٔ CMSهای رایج، همکاری گسترده با شرکت‌های بزرگ مانند eBay و موتورهای جستجوی یاهو و گوگل و ده‌ها قابلیت سازگارانهٔ دیگر، موزیلا را از جمع مرورگرهای غیرحرفه‌ای جدا کرده و باوجود سادگی و محیط دوست‌داشتنی، آن را به یکی از Browserهای پیشرفته بدل می‌کند. افزونه‌های مورد نیاز نصب شده و در حالت عادی غیرفعال است

اضافه شدن افزونه one-time
اضافه شدن نوار جستجوی توییتر Twitter
اولویت‌بندی جدید برای تقاضا در بازشدن زبانه‌های جدید
بهبود در اجرای مرورگر با سرعت فوق‌العاده
بهبود در عملکرد و در هنگام استفاده از عناصر آهنگ‌ها ویدیوها
پشتیبانی CORS در دامنه‌های WebGL
پشتیبانی از منوهای HTML5
پشتیبانی برای insertAdjacentHTML
بهبود و پشتیبانی برای نوشتن در زبان CSS و بسیاری زبان‌های دیگر
پشتیبانی پیشرفته WebSocket
افزایش امنیت
افزایش سرعت بارگذاری Java
افزوده شدن صفحه New Tabs

توانایی سفارشی‌سازی

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

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







مشکلات فایرفاکس

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

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







پیکربندی

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

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

برای دسترسی به پیکربندی فایرفاکس در نوار نشانی این عبارت را وارد کنید: about:config

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

شرح کامل عبارت‌های پیکربندی فایرفاکس
فایرفاکس قابل حمل
میزان استفاده از مرورگرهای اینترنت میان کاربران (به جز اینترنت اکسپلورر)
فایرفاکس سافاری اپرا نت اسکیپ
گوگل کروم بقیه

وب‌سایت PortableApps.com، فایرفاکس قابل حمل را عرضه می‌کند. این نسخه قابلیت اجراشدن روی درایوهای USB Flash و CD-ROM و همچنین درایوهای سخت خارجی و بعضی از پخش‌کننده‌های دیجیتالی موسیقی را دارد.





گوگل کروم

گوگل کروم (به انگلیسی: Google Chrome) یک مرورگر وب رایگان است که در ۲ سپتامبر ۲۰۰۸ (۱۲ شهریور ۱۳۸۷) توسط شرکت گوگل بر پایهٔ پروژهٔ کرومیوم عرضه شد. در ابتدا نسخهٔ آزمایشی آن برای کاربران نرم‌افزار سیستم‌عامل ویندوز در یک‌صد کشور جهان عرضه شد ولی گوگل اعلام کرد که نسخه‌های منطبق با سیستم‌عامل گنو/لینوکس و رایانهٔ اپل مکینتاش آن هم در آینده توزیع خواهد شد. موتور این مرورگر نرم‌افزار آزاد وب‌کیت (به انگلیسی: WebKit) است. از امکانات و قابلیت‌های آن می‌توان به Tabbed browsing، و امکاناتی مشابه Privacy در سافاری و Speed Dial در مرورگر اپرا اشاره نمود.

در سپتامبر ۲۰۰۸ گوگل بخش زیادی از کد منبع کروم شامل، موتور جاوااسکریپت وی۸ را با نام کرومیم در اختیار عموم قرار داد. این کار باعث شد که دیگران بتوانند کد را مطالعه کنند و کمک کنند تا این مرورگر برای سیستم عامل لینوکس و مک نیز قابل استفاده شود.







امکانات

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





یاندکس

یاندکس (به روسی: Яндекс) یک شرکت فناوری اطلاعات روسی است که بزرگترین موتور جستجوی روسیه و هشتمین موتور جستجوی جهان را اداره می کند. همچنین این شرکت توسعه دهنده سرویس‌ها و محصولات اینترنتی بسیاری هم بوده است. صفحه خانگی Yandex.ru محبوب‌ترین وب سایت در روسیه است.





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





داک‌داک‌گو

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

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

منابع استفاده‌شده برای تهیه نتایج جستجو در داک‌داک‌گو گسترده‌اند و از بینگ تا دانشنامهٔ پوکمون را شامل می‌شوند.





کویکی (دانشنامه سخنگو)

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

کویکی همانند ویکی‌پدیا کاربرمحور است و از اواخر ژانویه ۲۰۱۱ به طور فعال خدمات خود را عرضه خواهد کرد.







کویکی حرف می‌زند

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

یکی از آرزوهای دیرینهٔ بشر رایانه‌ای بود که هر آن چه از آن می‌پرسد برایش پاسخ گفته و با او صحبت کند. اکنون این رؤیا محقق شده و کویکی به صحنه آمده است.

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







طرز کار کویکی

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

همه این‌ها در یک چشم به هم زدن صورت می‌گیرد.

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

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

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

متن بسیاری از جستجوها توسط این برنامه، قابلیت جمع‌آوری نمودارها و ترکیب آنها با یکدیگر را نیز دارد.

بیشتر داده‌ها با سکانس‌های کوتاه فیلم یا اسلایدشو همراه هستند و واژهٔ مورد نظر را می‌توان به زبان‌های گوناگون (حتی فارسی) وارد کرد، اما نتیجهٔ نمایش داده شده در این وب‌گاه (فعلاً) تنها به زبان انگلیسی خواهد بود.

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

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





های‌بیم ریسرچ

های‌بیم ریسرچ یک جویشگر تجاری و برخط برای روزنامه‌ها، مجله‌ها، نشریه‌های دانشگاهی، اخبار روز، مجلات تجاری و دانشنامه‌ها به زبان انگلیسی است. این وبگاه به بیش از ۸۰ میلیون مقاله از ۶٫۵۰۰ ناشر که بسیاری از آن‌ها در اینترنت به صورت رایگان در دسترس نیست، دسترسی دارد.

مقر این جویشگر در شهر شیکاگو ایالت ایلی‌نوی در ایالات متحده آمریکا قرار دارد.

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





موتور جستجوی ناور

موتور جستجوی ناور (به کره‌ای: 네이버) (به انگلیسی: Naver) یک موتور جستجوی معروف در کره است که در حدود ۷۰ درصد بازار مشترک را در مقابل ۲ درصد گوگل داراست .Naver در سال ۱۹۹۹ توسط گروهی از مهندسان شرکت Sumsong ایجاد شد . و به عنوان اولین وب پورتال کره جنوبی شناخته می شود و یک پورتال بومی اختصاصی محسوب می گردد.

در سال ۲۰۰۰ این موتور جستجو سرویس جستجوی مفهومی را راه اندازی کرد که نتاج را به صورت دستبندی شده بر اساس نوع مثل blogs, websites, images, cafes در قالب یک صفحه نمایش می داد .در ژولای همان سال Naver با Hangame ادغام شد، Hangame اولین پورتال بازی بود و در سال ۲۰۰۱ به NHN تغییر نام داد، و به بالای لیست بازار شرکت های بزرگ در KASDAQ دست یافت. در روزهای ابتدایی ظهور Naver کمبود صفحات کره ای محسوس بود، برای پر کردن این نقصان ،Naver پیشگام تولید "محتوای تولید شده توسط کاربر"(User-Generated Content) از طریق ایجاد سرویس “جستجوی دانش”شد. کاربران سوالات خود را راجع به هر موضوعی مطرح می کردند و جواب خود را در میان جوابهای داده شده از طرف کاربران دیگر بدست می آوردند. امتیاز داده شده به کاربران بهترین جواب را مشخص می کرد. سرویس جستجوی دانش سه سال قبل از سرویس Yahoo! Answer آغاز به کار کرد و هم اکنون بانک اطلاعاتی آن بیش از ۸۰ میلیون جواب صفحه جواب را شامل می شود. در این سرویس از نحوه پخت ماکارانی تا نحوه عضویت در مجلات بین المللی از طریق اینترنت سوال می پرسند و کاربران دیگر به آن جواب می دهند.در ادامه سرویس های اینترنتی دیگر مثل ایمیل و جستجوی مقالات علمی و پورتال کودکان را به آن اضافه کردند. در سال ۲۰۰۵ سرویس Blog نیز به آن اضافه شد و جستجوی اطلاعات محلی و جستجوی کتاب و Desktop هم به آن اضافه شد. در سال ۲۰۰۵ Naver محصول HappyBean را عرضه کرد که اولین پورتال آنلاین اهداء بود. که به کاربران اجازه می داد تا اطلاعاتی بالغ بر ۰۰۰/۲۰ سازمان رفاهی و مدنی اجتماعی را پیدا کنند و به آنها کمک مالی اهداء کنند. در سال ۲۰۰۶ سرویس webtoon(webcomic) اضافه شد و در کل بین سالهای ۲۰۰۵ تا ۲۰۰۷ جستجوی محتوای چند رسانه ای شامل آهنگ و ویدئو، سرویس تلفن اینترنتی و موبایل ایجاد شد.

براساس آمار منتشر شده از سایت comScore، موتور جستجوی Naver در سال ۲۰۰۷ به مرز ۲ میلیون Query رسید که بیش از ۷۰٪ پرس و جو در کره را شامل می شود و آن را به پنجمین موتور پرکاربرد جهان بعد از گوگل، یاهو!، بایدو و بینگ مبدل ساخت .







جونیور ناور

جونیور ناور (به انگلیسی: Junior Naver) این پورتال مخصوص کودکان است مثل Yahooligans و دارای سرویس های مخصوصی مثل بازی همانند مزرعه حیوانات Dongmul Nongjang , Pany Pang, Puppyred، ایمیل، اواتار، لینک های آموزشی، نمونه سوالات، داستان، جوک و حل تمرین( Homework Helper) و غیره است. این پورتال همچنین به متخصصان و آموزگاران اجازه می دهد که محتوای ناسالم را با هدف ارائه یک اینترنت امن به کودکان، تصحیح کنند.





اینترنت

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

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

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







واژه‌شناسی

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







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

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







تاریخچه
مبنای قابلیت‌های شبکه، وجود رایانه‌ها و استفاده از پردازشگرهای رمزگذار و رمزگشاست. وجود شبکه‌های مخابراتی که در ابتدا در قرن نوزدهم ایجاد شده بودند بنیانی مهم برای شکل‌گیری هر نوع شبکهٔ الکترونیکی محسوب می‌شدند و این پیشرفت‌ها با ایجاد نظریه اطلاعات در دهه 1940 تکمیل شدند و پیشرفت علم الکترونیک به کندی پیش می‌رفت. افتتاح پروژه اسپوتنیک توسط اتحاد جماهیر شوروی سوسیالیستی زنگ خطر را برای ایالات متحده به صدا درآورد تا با تأسیس آرپا یا موسسه پروژه‌های تحقیقاتی پیشرفته در سال ۱۹۵۸ (میلادی) پیشروی در زمینه فناوری را بازیابد. آرپا اداره فناوری پردازش اطلاعات (IPTO) را تاسیس نمود تا پروژه SAGE راکه برای اولین بار سامانه‌های رادار سراسر کشور را با هم شبکه کرده بود پیشتر برد. هدف IPTO دست یافتن به راههایی برای پاسخ به نگرانی ارتش امریکا در باره قابلیت مقاومت شیکه‌های ارتباطیشان را پاسخ دهد، و به عنوان اولین اقدام رایانه هایشان را در پنتاگون، کوه چاین و دفتر مرکزی فرماندهی راهبردی هوایی (SAC) را به یکدیگر متصل سازد. جی.سی.آر لیکلایدر که از ترویج کنندگان شبکه جهانی بود به مدیریت IPTO رسید. لیکلایدر در سال ۱۹۵۰ (میلادی) پس از علاقه‌مند شدن به فناوری اطلاعات از آزمایشگاه روانشناسی صدا در دانشگاه هاروارد به ام آی تی رفت. در ام آی تی او در کمیته‌ای مشغول به خدمت شد که آزمایشگاه لینکلن را تاسیس کرد و بر روی پروژه SAGE کار می‌کرد. در سال ۱۹۵۷ (میلادی) او نایب رئیس شرکت بی بی ان (BBN) شد. در آنجا بود که اولین محصول PDP-۱ را خرید و نخستین نمایش عمومی اشتراک زمانی را هدایت نمود.

در IPTO جانشین لیکلایدر ایوان ساترلند، در سال ۱۹۶۵ (میلادی)، لارنس رابرتس را بر آن گماشت که پروژه‌ای را برای ایجاد یک شبکه آغاز نماید و رابرتس پایه این فناوری را کار پل باران نهاد. پل باران مطالعه جامعی را برای نیروی هوایی ایالات متحده آمریکا منتشر کرده بود که در آن پیشنهاد داده بود که برای دستیابی به استحکام و مقاومت در برابر حوادث از راه‌گزینی بسته کوچک استفاده شود. رابرتس در آزمایشگاه لینکلن ام آی تی کار کرده بود که هدف اولیه از تاسیس آن، پروژه SAGE بود. لئونارد کلینراک استاد دانشگاه کالیفرنیا تئوریهای زیربنایی شبکه‌های بسته را در سال ۱۹۶۲ (میلادی) و مسیریابی سلسله مراتبی را در سال ۱۹۶۷ (میلادی) ارائه کرده بود، مفاهیمی که زمینه ساز گسترش اینترنت به شکل امروزی آن شدند.

جانشین ساترلند، رابرت تیلور، رابرتس را قانع نمود که موفقیت‌های اولیه‌اش در زمینه راه‌گزینی بسته کوچک را گسترش دهد و بیاید و دانشمند ارشد IPTO شود. در آنجا رابرتس گزارشی با نام "شبکه‌های رایانه‌ای منابع مشترک" به تیلور داد، که در ژوئیه ۱۹۶۸ (میلادی) مورد تایید او قرار گرفت و زمینه ساز آغاز کار آرپانت در سال بعد شد. پس از کار فراوان، سرانجام در ۲۹ اکتبر ۱۹۶۹ دو گره اول آنچه که بعدها آرپانت شد به هم متصل شدند. این اتصال بین مرکز سنجش شبکه کلینراک در دانشکده مهندسی و علوم کاربردی UCLA و سامانه NLS داگلاس انگلبرت در موسسه تحقیقاتی SRI International در پارک منلو در کالیفرنیا برقرار شد. سومین مکان در آرپانت مرکز ریاضیات تعاملی Culler-Fried در دانشگاه کالیفرنیا، سانتا باربارا بود و چهارمی دپارتمان گرافیک دانشگاه یوتا بود. تا پایان سال ۱۹۷۹ (میلادی) پانزده مکان مختلف به آرپانت جوان پیوسته بودند که پیام آور رشدی سریع بود. آرپانت تنها یکی از اجداد اینترنت امروزی بود. در تلاشی جداگانه، دونالد دیویز نیز، در آزمایشگاه ملی فیزیک انگلیس مفهوم راه‌گزینی بسته کوچک را کشف کرده بود. اونخستین بار آن را در ۱۹۶۵ (میلادی) مطرح نمود. کلمات بسته و راهگزینی بسته در واقع توسط او ابداع شدند و بعدها توسط استانداردها پذیرفته و به کار گرفته شدند. دیویز همچنین یک شبکه راهگزینی بسته به نام Mark I در سال ۱۹۷۰ (میلادی) درانگلستان ساخته بود. به دنبال نمایش موفق راهگزینی بسته در آرپانت(ARPANET)؛ در سال ۱۹۷۸، اداره پست بریتانیا، Telenet، DATAPACوTRANSPAC با یکدیگر همکاری را برای بوجود آوردن نخستین سرویس شبکه راهگزینی بسته خود آغاز نمودند. در بریتانیا این شبکه به نام سرویس بین‌المللی راهگزینی بسته (به انگلیسی: International Packet Switched Service) خوانده می‌شد. مجموعه شبکه‌های X.۲۵ از اروپا و آمریکا گسترش یافت و تا سال ۱۹۸۱ کانادا، هنگ کنگ و استرالیا ر در بر گرفته بود. استانداردهای راهگزینی بسته X.۲۵ را "کمیته مشاوره بین‌المللی تلگراف و تلفن(CCITT)" - که امروزه به نام ITU-T خوانده می‌شود- حول و حوش سال ۱۹۷۶ تدوین نمود. X.۲۵ از پروتکلهای TCP/IP مستقل بود. این پروتکلها حاصل کار تجربی DARPA در آرپانت، شبکه رادیویی بسته و شبکه ماهواره‌ای بسته بودند.

آرپانت اولیه بر روی برنامه کنترل شبکه(NCP) (به انگلیسی: Network Control Program) کارمی کرد، استانداردی که در دسامبر ۱۹۷۰ توسط تیمی به نام "گروه کاری شبکه(NWG)" به مدیریت استیو کراکر (به انگلیسی: Steve Crocker) طراحی و پیاده‌سازی شد. برای پاسخگویی به رشد سریع شبکه که مرتباً مکانهای بیشتری بدان متصل می‌شد، وینتون سرف (به انگلیسی: Vinton Cerf) و باب کان (به انگلیسی: Bob Kahn) اولین توصیف پروتکلهای TCP را که امروزه به گستردگی استفاده می‌شوند در خلال سال ۱۹۷۳ ارائه دادند و در مه ۱۹۷۴ مقاله‌ای در این باب منتشر نمودند. به کاربردن واژه اینترنت برای توصیف یک شبکه TCP/IP یکتای جهانی از دسامبر ۱۹۷۴ با انتشار RFC ۶۷۵ آغاز شد. این RFC اولین توصیف کامل مشخصات TCP بود که توسط وینتون سرف، یوگن دالال و کارل سانشاین در آن زمان در دانشکاه استانفورد نوشته شد. در خلال نه سال یعدی کار تا آنجا پیش رفت که پروتکلها تصحیح شدندو بر روی بسیاری از سیستم‌های عامل پیاده‌سازی شدند. اولین شبکه برپایه بسته پروتکل اینترنت(TCP/IP) از اول ژانویه ۱۹۸۳ وقتی که همه ایستگاههای متصل به آرپا پروتکلهای قدیمی NCP را با TCP/IP جایگزین کردند، شروع به کار نمود. در سال ۱۹۸۵ بنیاد ملی علوم آمریکا(NFS) ماموریت ساخت NFSNET- یک ستون فقرات (Network Backbone) دانشگاهی با سرعت ۵۶ کیلوبیت بر ثانیه(Kbps) - با استفاده از رایانه‌های "مسیریاب فازبال" (به انگلیسی: Fuzzball router) را به مخترع این رایانه‌ها، دیوید ال. میلز (به انگلیسی: David L. Mills) سپرد. یک سال بعد NFS تبدیل به شبکه پرسرعت تر ۱٫۵ مگابیت بر ثانیه (Mbps) را نیز پشتیبانی می‌کرد. دنیس جنینگ، مسئول برنامه ابرکامپیدتردرNFS تصمیمی کلیدی در مورد استفاده از پروتکلهای TCP/IP ارائه شده توسط DARPA گرفت. گشایش شبکه به دنیای تجاری در سال ۱۹۸۸ آغاز شد. شورای شبکه بندی فدرال ایالات متحده در آن سال با اتصال NFSNET به سامانه تجاری پست MCI موافقت نمودو این اتصال در تابستان ۱۹۸۹ برقرارشد. سایر خدمات پست الکترونیکی تجاری (مانند OnTyme,Compuserve,Telemail) نیز به زودی متصل شدند. در آن سال سه ارائه دهنده سرویس اینترنت(ISP) بوجود آمدند: UUNET, PSINet, CERFNET. شبکه‌های جدای مهمی که دروازه‌هایی به سوی اینترنت (که خود بعداً جزئی از آن شدند) می‌گشودند عبارت بودند از: یوزنت, بیت‌نت بسیاری از شبکه‌های متنوع تجاری و آموزشی دیگر همچون Telenet, Tymnet, Compuserve و JANET نیز به اینترنت در حال رشد پیوستند. Telenet - که بعدها Sprintnet نامیده شد - یک شبکه رایانه‌ای ملی خصوصی بود که از ۱۹۷۰ کار خود را آغاز کرده بود و امکان دسترسی با شماره‌گیری (به انگلیسی: Dial-up Access) را به صورت رایگان در شهرهایی در سراسر امریکا فراهم ساخته بود. این شبکه سرانجام در دهه ۱۹۸۰، با محبوبیت روزافزون TCP/IP به سایرین متصل شد. فابلیت TCP/IP برای کار با هر نوع شبکه ارتباطی از پیش موجود، سبب رشد آسانتر آن می‌گشت؛ اگر چه که رشد سریع اینترنت در وهله اول ناشی از در دسترس بودن مسبریابهای استاندارد تجاری از طرف بسیاری از شرکتها، در دسترس بودن تجهیزات تجاری اترنت(به انگلیسی: Ethernet) برای ساخت شبکه‌های محلی و پیاده‌سازیهای گسترده و استانداردسازی TCP/IP در یونیکس(به انگلیسی: Unix) و بسیاری سیستم عاملهای دیگر بود.

اگرچه بسیاری از کاربردها و رهنمودهایی که اینترنت را ممکن ساخت به مدت تقریباً دو دهه وجو داشتند، امااین شبکه تا دهه ۱۹۹۰ هنوز چهره‌ای همگانی نداشت. در ششم آگوست ۱۹۹۱، سرن - سازمان اروپایی پژوهش در باره ذرات - پروژه وب جهان گستر(World Wide Web) را به اطلاع عموم رساند. وب توسط دانشمندی انگلیسی به نام تیم برنرز لی(به انگلیسی: Sir Tim Berners-Lee) در سال ۱۹۸۹ اختراع شد. یکی از مرورگرهای وب محبوب اولیه ViolaWWW بود که از روی هایپرکارت الگوبرداری شده بود و از سامانه پنجره ایکس(به انگلیسی: X Window System) استفاده می‌کرد. سرانجام این مرورگر جای خود را در محبوبیت به مرورگرموزاییک (به انگلیسی: Mosaic) داد. در سال ۱۹۹۳ مرکزملی کاربردهای ابررایانش امریکا (به انگلیسی: National Center for Supercomputing Applications) دردانشگاه ایلینوی اولین نسخه از موزاییک را منتشر کرد و تا اواخر سال ۱۹۹۴ علاقه عمومی به اینترنتی که پیش از این آموزشی و تخصصی بود، گسترش فراوانی یافته بود. در سال ۱۹۹۶ استفاده از واژه اینترنت معمول شد و مجازا برای اشاره به وب هم استفاده شد. در همین هنگام، در گذر این دهه، اینترنت بسیاری از شبکه‌های رایانه‌ای عمومی از پیش موجود را در خود جا داد (اگر چه برخی مثل FidoNet همپنان جداماندند). آنچنانکه تخمین زده شده‌است، در دهه ۹۰ در هرسال اینترنت رشدی صددرصدی نسبت به سال قبل خود داشته‌است و در سالهای ۱۹۹۶و۱۹۹۷ نیز دوره‌های کوتاهی از رشد انفجاری داشته‌است. این میزان رشد به خصوصیت عدم کنترل مرکزی اینترنت که امکان رشد اندامی شبکه را فراهم می‌سازد نسبت داده‌اند و همچنین به ماهیت بازوغیراختصاصی پروتکلهای اینترنت که امکان برقراری سازگاری و همکاری میان فروشندگان مختلف و عدم توانایی یک شرکت برای اعمال کنترل بیش از حد بر روی شبکه را سبب می‌شود.. جمعیت تخمینی کاربران اینترنت مطابق آمار سی ام ژوئیه ۲۰۰۹، ۱٫۶۷ میلیارد نفراست.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 11:49 pm
تعاریف

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

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





هدف: زبان‌های برنامه نویسی با زبان‌های طبیعی تفاوت دارند و آن اینکه زبان‌های طبیعی فقط برای فعل و انفعالات بین مردم به کار می‌روند، در حالیکه زبان‌های برنامه نویسی همچنین به انسانها اجازه می‌دهد که از طریق دستورات با ماشین‌ها ارتباط برقرار کنند. برخی زبان‌های برنامه نویسی بوسیله یک دستگاه استفاده می‌شوند تا دستگاه دیگری را کنترل کند. برای مثال برنامه‌های پست اسکریپت(post script) غالباً توسط برنامه دیگری برای کنترل یک چاپگر و یا نمایشگر ایجاد می‌شوند.
ساختارها: زبان‌های برنامه نویسی ممکن است ساختارهایی برای تعریف و تغییر داده ساختارها یا کنترل جریان اجرا داشته باشند.
توان بیانگر: نظریه محاسبات، زبان‌ها را بوسیله محاسباتی که توان بیان آنها را دارند طبقه بندی می‌کند. تمام زبان‌های "کامل تورینگ" می‌توانند مجموعه یکسانی از الگوریتم‌ها را پیاده سازی کنند.ANSI/ISO SQL و Charity مثال‌هایی هستند از زبان‌هایی که کامل تورینگ نیستند، ولی غالباً زبان برنامه نویسی نامیده می‌شوند.

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


کاربرد

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

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

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



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

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

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

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

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

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

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

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

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

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




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


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

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

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