داده

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

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






در رایانه

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

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

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






انواع داده‌ها از نظر ساخت‌یافتگی

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

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







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






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






پردازش رایانه‌ای داده‌ها

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

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






پردازش علائم

پردازش علائم (سیگنال‌ها) را باید یکی از شاخه‌های وسیع و پر کاربرد در پردازش داده‌ها به حساب آورد.






پردازش تصاویر

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







فشرده‌سازی داده‌ها

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

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

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

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






فشرده سازی بهینه در مقابل اتلافی

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

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

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






نظریه

سابقهٔ نظری فشرده سازی برای فشرده سازی‌های بهینه توسط نظریهٔ اطلاعات (که رابطه نزدیکی با نظریهٔ اطلاعات الگوریتمی دارد) و برای فشرده سازی‌های اتلافی توسط نظریهٔ آهنگ-پیچیدگی ( Rate–distortion theory) ارائه شده‌اند. این شاخه‌های مطالعاتی در اصل توسط کلوده شانون( Claude Shannon)، که مقالاتی بنیادی در این زمینه در اواخر دهه‌ای ۱۹۴۰ و اوایل دههٔ ۱۹۵۰ به چاپ رسانده است به وجود آمده. "رمزنگاری" و "نظریهٔ رمزگذاری" نیز رابطه بسیار زیادی با این زمینه دارند. ایدهٔ فشرده سازی رابطهٔ عمیقی با آمار استنباطی دارد.






اطلاعات

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

از منظر فلسفه، اطّلاعات مفهومی چندشکلی (polymorphic) و چندمعنایی (polysemantic) است.







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






تاریخچه

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

شروع تحقیق در مورد نظریه اطلاعات اولین بار در سال ۱۹۲۴ توسط هری نایکوئیست در مقاله‌ای به نام «عوامل خاصی که سرعت تلگراف را تحت تأثیر قرار می‌دهند» انجام شد. نایکویست وجود نرخ ماکزیمم ارسال اطلاعات را متوجه شده و فرمولی جهت محاسبه این نرخ ماکزیمم ارائه کرد. کار مهم دیگر در این زمان مقاله «انتقال اطلاعات» در سال ۱۹۲۸ میلادی توسط هارتلی بود که اولین پایه‌های ریاضی نظریه اطلاعات را بنا گذاشت.

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

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






مفهوم اطلاعات و راه‌های اندازه‌گیری آن

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

آمار و احتمالات نقشی حیاتی و عمده در ظهور و رشد نظریه اطلاعات برعهده دارد.

آنتروپی اطلاعات

قضایای شانون

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

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

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

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







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






معماری اطلاعات و کتابداری و اطلاع رسانی

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

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






تعریف معماری

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






تاریخچه

اصطلاح معماری اطلاعات برای نخستین بار در سال ۱۹۷۵ توسط Richrd soul war man مطرح گردید . وی در رشته مهندسی معماری تحصیل کرده بود اما به موضوع چگونگی گردآوری اطلاعات و سازماندهی و نمایش صورت‌های مختلف آن علاقمند شد . تعریفی که او از معماری اطلاعات ارائه داده چنین بود : « سازماندهی الگوها در قالب داده‌ها و ارائه این دادها به صورتی واضح و در عین حال پیچیده » این اصطلاح در سال ۱۹۹۶ توسط دو نفر از محققان علوم کتابداری و اطلاع رسانی به نامهای Peter Morvile و Lous Rosenfeld مدیران شرکت Argus Associate که در دانشکده کتابداری و اطلاع رسانی دانشگاه میشیگان تدریس می‌کردند ، مجددا مطرح گردید . در همین سال (۱۹۹۶) قانونی در کنگره آمریکا به تصویب رسید که به قانون " کلینگر کوهن " معروف شد . مطابق این قانون ، همه وزارتخانه‌ها و سازمان‌های فدرال آمریکا ملزم شدند معماری IT خود را تنظیم نمایند .مسئولیت تدوین ، اصلاح و اجرای معماری IT یکپارچه در هر سازمان مطابق این قانون بر عهده مدیران ارشد اطلاعاتی (CIO) آن سازمان قرار گرفت . قانون کلینگر کوهن معماری اطلاعات را چنین تعریف می‌کرد : « یک چارچوب یکپارچه برای ارتقاء یا نگهداری فناوری موجود و کسب فناوری اطلاعاتی جدید برای نیل به اهداف راهبردی سازمان و مدیریت منابع آن . »

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






مفهوم معماری اطلاعات

اصطلاح معماری اطلاعات در سالهای اخیر به عنوان واژه‌ای تازه در طراحی نظامهای اطلاعاتی و طراحی وب راه یافته اما هنوز هم متخصصین در ارائه تعریفی واحد از آن شک دارند . Martin White معماری اطلاعات را همچون اطلاع رسانی مجموعه‌ای از ابزارها و روشها می‌داند که توسط متخصصین در مقیاسی وسیع برای حل مشکلات مدیریت اطلاعات استفاده می‌شود . Iain Barker در تعریف معماری اطلاعات می‌گوید : « معماری اطلاعات اصطلاحی است جهت توصیف ساختار یک سیستم ، یعنی شیوه‌ای که در آن اطلاعات سازماندهی ، کد گذاری و منتقل می‌شوند . » D.Grant Campell در تشریح این اصطلاح می‌گوید : « معماری اطلاعات شباهت کمی با موضوعات دارای رویکرد ذهنی دارد و بیشتر شبیه به رویکردهای فلسفی مثل پدیده شناسی و ساختار گرایی است . » قانون کلینگر کوهن تصریح می‌دارد که معماری اطلاعات یک چارچوب یکپارچه برای ارتقاء یا نگهداری فناوری موجود و کسب فناوری اطلاعاتی جدید برای نیل به اهداف راهبردی سازمان و مدیریت منابع آن فراهم می‌نماید . هر تعریفی که از معماری اطلاعات ارائه کنیم ، باید بپذیریم که رویکرد معماری در برنامه ریزی و توسعه فناوری اطلاعات در یک سازمان ، نهاد یا دولت نقشی اساسی دارد . می‌توان چنین گفت که معماری اطلاعات قادر است با سازماندهی اصولی اطلاعات به کاربران اجازه شناخت ، جستجو و استفاده از اطلاعات را بدهد .

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

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






اصول راهبردی معماری اطلاعات

۱. بهینه سازی بودجه سازمانی از طریق برنامه ریزی و هماهنگی منابع مدیریت اطلاعات بین برنامه‌ها ، بخش‌ها و ادارات مختلف ۲. تسهیل تصمیم گیری مناسب از طریق تامین اطلاعات کارآمد ۳. پاسخگویی سریع به نیازهای اطلاعاتی از طریق سازماندهی پایگاه‌ها و سیستم‌های اطلاعاتی با هدف تامین حداکثر دسترسی ، تغییر و ارئه گزارش . ۴. حل مسائل سازمانی با راه حل‌های سازمانی از طریق به حداقل رساندن افزونگی و دوباره کاریهای اطلاعاتی ۵. بهینه سازی سرمایه گذاری سازمانی در IT از طریق تدوین برنامه‌ها و معماری جامع فناوری اطلاعات ۶. مدیریت صحیح و کارآمد پروژه‌های فناوری اطلاعات ۷. پاسخگویی به شرایط در حال تغییر

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







فلسفه اطلاعات

فلسفهٔ اطّلاعات (Philosophy of information) به آن دسته از پژوهش‌های فلسفی و انتقادی اطلاق می‌گردد، که به منظور تبیین و روشن‌سازی مفاهیم، معانی، سرچشمه‌ها، اصول، و مبادی بنیادین اطّلاعات انجام پذیرد.

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






تعریف اطّلاعات

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

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

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

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






دانش محاسبات و فلسفه

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






آلودگی اطلاعات

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

روشهای مهم آلوده کردن اطلاعات عبارتند از:

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







اقتصاد اطلاعات

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

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

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







تاریخچه

فردریش هایک در مقاله پیشگام خود در سال ۱۹۴۵ معتقد است: «ما باید به نظام قیمت به عنوان مکانیزم انتقال اطلاعات بنگریم» (هایک، ۱۹۴۵: ص۵۲۶). هایک در ادامه ذکر می‌کند که: چه مسأله‌ای را می‌خواهیم حل کنیم وقتی تلاش می‌کنیم که نظم اقتصادی منطقی بسازیم؟ یک پاسخ این است که اگر ما همه اطلاعات مربوط را داشتیم و می‌توانستیم از نظام معین ترجیحات شروع کنیم و نیز اگر از ابزارهای موجود آگاهی کامل داشتیم، تنها یک مسئله باقی می‎ماند و آن پاسخ به این پرسش است که بهترین راه استفاده از ابزارهای موجود، چیست.

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

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

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

هایک در سخنرانی دریافت جایزة نوبل (۱۹۷۴)، بازار را یک «نظام اطلاعاتی» دانست که برای استفاده از اطلاعات پخش شده، در مقایسه با هر مکانیزم دیگری که بشر آگاهانه طراحی کرده‌است، مکانیزم کاراتری دارد. هر چند نظریة نئوکلاسیک به محدودیت‌های اطلاعاتی توجه نکرده‌است و در واقع اطلاعات نقشی در این نظریه ندارد؛ اما هایک، مکرر، از اطلاعات صحبت کرده‌است.






پیدایش رشته اقتصاد اطلاعات

رشته «اقتصاد اطلاعات» با انتشار دو مقاله در سال ۱۹۶۱، یکی توسط ویلیام ویکری (William Vickrey) و دیگری توسط جرج استیگلر (George Stigler)، متولد شد. اولین مقاله، «اقتصاد اطلاعات» تألیف جورج استیگلر و دومین مقاله، «سفته­بازی متقابل، حراج­ها و مناقصه­های رقابتی مهروموم­شده» به قلم ویلیام ویکری است. ویلیام ویکری حالتی را در نظر می­گیرد که مقولة غیرقابل تقسیم و منحصربه‌فردی قرار است به یکی از خریداران بالقوه فروخته شود. ویکری نشان می­دهد که با ارزش­های خصوصی مستقل و مزایده­گزاران همگن، قیمت مورد انتظار معامله در روش حراج از نوع انگلیسی و هلندی یکی است. او سپس مفهوم حراج مزایده مهر و موم شده قیمت دوم را وارد می­کند و نشان می­دهد که معادل روش حراج انگلیسی است. ویکری برتری روش حراج انگلیسی برحراج هلندی را در شرایط ریسک­ پذیری، وجود مزایده­گزاران بی­تجربه و سایر مواردی که باعث دورشدن از فرض­های استاندارد می­شود، نشان می­دهد که در آن روش حراج انگلیسی، بهینة پارتو است.

جورج استیگلر در مقاله خود مدل ساده­ای برای جست­وجو ارائه کرد؛ این مدل شامل اطلاعات بود. او نظریة استاندارد اقتصادی را به کار گرفت تا به طور درون­زا مشخص کند که کارگزاران اقتصادی چه میزان اطلاعات باید کسب کنند. نقش استیگلر، مدل­سازی صریح به منظور فعالیت برای کسب اطلاعات در چهارچوب مارشالی موجود بود. استیگلر از این واقعیت شروع می­کند که هیچ خریداری از قیمت­هایی که فروشندگان مختلف در هر زمان معین اعلام می­کنند، آگاهی ندارند. در نتیجه خریداران برای پی بردن به مطلوب ترین قیمت، باید از فروشندگان مختلف نظرخواهی کنند. استیگلر این «نظرخواهی» را مدل­سازی می­کند. خریداری که به دنبال یک واحد از کالای همگن است، n پیشنهاد مستقل جمع­آوری می­کند که از توزیع مشترک f به دست آمده‌است. هزینة هر پیشنهاد، c است و از آنجا که مسئلة جست­وجوی خریدار خنثی نسبت به ریسک، صرفاً انتخاب اندازة نمونة n به­گونه­ای است که مجموع قیمت مورد انتظار پرداخت شده برای کالا به اضافة هزینة جست­وجو را حداقل سازد، اندازة بهینة جست­وجو از شرط مرتبة اول محاسبه شده‌است. از این مطالب دو نتیجة مهم به دست می­آید: اول اینکه پیش­بینی می­شود پخش قیمت اتفاق بیفتد که به معنای نقض قانون یک قیمتی است؛ در این صورت تفاوت در قیمت­های معاملات برای کالای همگن تحقق پیدا می­کند. دوم اینکه منابع بیکار پیش­بینی شده‌است. فعالیت جست­وجو نشان­دهندة سرمایه­گذاری در حصول قیمت فروش یا اجاره بالاتر است. علاوه بر آن مدل جست­وجوی استیگلر راه دیگری فراهم می­کند که منجر به شناخت فرایند شکل­گیری قیمت می­شود.






چند تن از افراد تاثیرگذار در اقتصاد اطلاعات

استیگلر(George Stigler)
آکرلف (George Akerlofe)
ویکری (William Vickrey)
میرلس(James Myles)

مفاهیم پایه
اطلاعات

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






انقلاب اطلاعات

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






ارزش اطلاعات

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






مکانیزم تعیین قیمت اطلاعات

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






تقارن و عدم تقارن اطلاعات

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

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






اطلاعات نامتقارن

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






انتخاب بد و نامناسب (کژگزینی)

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






علامت دهی

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






غربال کردن

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






مخاطرات اخلاقی (کژمنشی)

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






مثال

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







بازیابی اطلاعات

بازیابی اطلاعات (به انگلیسی: Information Retrieval) به فناوری و دانش پیچیدهٔ جستجو و استخراج اطلاعات، داده‌ها، فراداده‌ها در انواع گوناگون منابع اطلاعاتی مثل بانک اسناد، مجموعه‌ای از تصاویر، و وب گفته می‌شود.

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

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

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






مدل‌سازی اطلاعات

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

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

مدل دودویی (یا دوگانی): در مدل دودویی (یا دوگانی) هر سند (document) به صورت کیفی پر از کلمات (bag of words) در نظر گرفته می‌شود.
مدل بُرداری: در مدل بُرداری، هر سند به صورت برداری از کلمات در یک فضای برداری چند بُعدی در نظر گرفته می‌شود که ابعاد آنرا کلمات تشکیل می‌دهند. مولفه‌های این بردار سند، در واقع وزن‌هایی هستند که نشان می‌دهند هر یک از کلمات چقدر در متمایز کردن آن سند دخیل هستند.
مدل احتمالاتی: در مدل احتمالاتی، به هر سند احتمالی اختصاص داده می‌شود که مربوط بودن آن مستند را به نیاز کاربر به صورت احتمال بین صفر و یک بیان می‌کند.







تعیین میزان ربط هر سند به نیاز اطلاعاتی کاربر

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






مدل دودویی

در مدل دودویی، نیاز اطلاعاتی کاربر به صورت عبارتی منطقی با عملگرهای AND و OR و NOT بیان می‌شود و هر سندی که این عبارت در مورد آن صحیح باشد بازیابی می‌شود. مثلاً اگر نیاز اطلاعاتی به صورت Iran AND Oil بیان شود، تمامی اسنادی که هردو کلمهٔ Iran و Oil را دربردارند به کاربر نمایش داده می‌شوند. در مدل دودویی سند یا باربط است یا نیست، و هیچ معیاری برای سنجش میزان (درجهٔ) ربط وجود ندارد. مثلاً دو سند را در نظر بگیرید که یکی تماماً دربارهٔ ایران و نفت بحث می‌کند، و دیگری در مورد اقتصاد جهانی صحبت می‌کند و فقط از نام ایران و نفت به عنوان مثالی در یک جمله استفاده کرده است. سیستمی که از مدل دودویی استفاده کرده تفاوتی بین این دو سند قائل نخواهد شد. در صورتیکه در واقع سند اول بیشتر به نیاز کاربر مربوط است.






مدل بُرداری

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






مدل احتمالاتی

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

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






تفاوت بازیابی داده و بازیابی اطلاعات

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






معیارهای ارزیابی

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







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






داده کاوی چیست

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






بانک اطلاعات

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

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

برنامه‌نویسی کامپیوتر (که اغلب در انگلیسی programming یا coding گفته می‌شود) فرایند نوشتن، اشکال زدایی(debug) و نگهداری کد منبع (source code) برنامه کامپیوتر می‌باشد. این کد منبع با یک زبان برنامه نویسی نوشته شده است. این کد منبع ممکن است تغییر داده شده یک کد قبلی و یا یک کد کاملاً جدید باشد. هدف برنامه نویسی ساختن یک برنامه می‌باشد که یک رفتار خواسته شده را به نمایش بگذارد.






تاریخچه
موضوع دستگاه‌هایی که به دنباله‌ای از دستورالعمل‌های از قبل تعریف شده عمل می‌کند بر می‌گردد به Greek Mythology.

برنامه نویسی مدرن
اندازه گیری کاربرد زبان

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


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



برنامه‌نویسی دستوری

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

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





زبان برنامه‌نویسی

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

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

برنامه نویس

یک زبان برنامه نویسی یک زبان مصنوعی است که برای بیان محاسباتی که توسط یک ماشین (مخصوصا رایانه) قابل انجام است، طراحی شده‌است.زبان‌های برنامه نویسی برای ایجاد برنامه‌هایی به کار می‌روند که رفتار یک ماشین را مشخص می‌کنند، الگوریتم دقیق را بیان می‌کنند، و یا روشی برای ارتباط انسانند. بسیاری از زبان‌های برنامه نویسی تعدادی قالب از ویژگی‌های نوشته شده دستوری(syntax) و معناشناسی (semantics) دارند، چرا که رایانه‌ها دستورات دقیقاً مشخص نیاز دارند. برخی توسط سند خصوصیات (specification document) تعیین شده‌اند. (برای مثال یک استاندارد ISO)، در حالی که برخی دیگر دارای پیاده سازی غالبی می‌باشند.(مانند Perl) اولین زبان برنامه نویسی به قبل از اختراع رایانه باز می‌گردد، و برای هدایت رفتار ماشین‌هایی مانند دستگاه‌های نساجی اتوماتیک و نوازنده‌های پیانو به کار می‌رفت. هزاران زبان برنامه نویسی خلق شده‌اند، بیشتر در زمینهٔ رایانه، زمینه‌ای که هر ساله بسیاری دیگر ایجاد می‌شوند.


تقسیم‌بندی
زبان‌های برنامه نویسی را می‌توان از چهار دیدگاه متفاوت مورد بررسی قرار داده و تقسیم بندی کرد: الف)روش‌های برنامه نویسی ۱-زیر روالی ۲-ساخت یافته ۳-مدولار ۴-شئ گرا ب)نزدیکی به زبان ماشین ۱-سطح پایین ۲-سطح میانی ۳-سطح بالا ج)نوع ترجمه ۱-مفسری ۲-کامپایلری د)رابط برنامه نویسی ۱-مبتنی بر متن ۲-مبتنی بر گرافیک (ویژوال)



تعاریف

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

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





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




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


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

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

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



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

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

نوع گذاری قوی مانع رخ دادن مشکل فوق می‌شود. تلاش برای انجام عملیات روی نوع نادرست متغیر منجر به رخ دادن خطا می‌شود. زبان‌هایی که نوع گذاری قوی دارند غالباً با نام "نوع-امن" و یا امن شناخته می‌شوند. تمام تعاریف جایگزین برای "ضعیف نوع گذاری شده" به زبان‌ها اشاره می‌کند، مثل 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 را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
ساعت : 12:38 pm | نویسنده : admin | کاکاپو | مطلب قبلی
کاکاپو | next page | next page