برنامه جامع امنیت تجارت الکترونیک

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





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






ارزیابی عملیات تجارت الکترونیک

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






طرح مستمر

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

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

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

حوزه‌های بحرانی که با مورد توجه قرار گیرند عبارتند از : حساسیت داده‌ها و اطلاعات در دسترس، حجم ترافیک دسترسی و روشهای دسترسی.امنیت تجارت SSL (Secure Socket Layer) یا SET (Secure Electronic Transaction)الکترونیک مبتنی بر تکنولوژی باید با استفاده از الگوی امنیت شامل لایه‌های مختلف امنیتی باشد.هدف نهایی امنیت مبتنی بر فناوری باید فراهم کردن صحت، یکپارچگی، پنهان کردن و غیر قابل رد بودن موثر باشد.بسیاری از شرکت‌ها ،

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






افراد

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






راهبرد

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






مدیریت

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

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






مدرک CISSP

مدرک (Certified Information Systems Security Professional) مدرکی برای متخصصان امنیت است وکسب این مدرک مراحلی دارد . این مدرک مستقل از هر نوع سخت‌افزار و نرم‌افزار خاص یک شرکت است و به عنوان یک عنصر کلیدی در ارزشیابی داوطلبان کار در موسسات بزرگ و سیستم‌های Enterprise شناخته می‌شود. افرادی که صاحب این مدرک باشند می‌توانند برای پست مدیریت شبکه‌های کوچک و بزرگ اطلاعاتی خود را معرفی کنند.

در سال ۱۹۸۹، چند سازمان فعال در زمینهٔ امنیت اطلاعات کنسرسیومی را تحت نام ۲(ISC) بنا نهادند که هدف ان ارایهٔ استانداردهای حفاظت از اطلاعات و آموزش همراه با ارایهٔ مدرک مربوط به افراد آموزش دیده بود.

در سال ۱۹۹۲ کنسرسیوم مذکور اقدام به طرح مدرکی به نام CISSP نمود که هدف آن ایجاد یک سطح مهارت حرفه‌ای و عملی در زمینهٔ امنیت اطلاعات برای افراد علاقمند به آن بود.






اعتبار

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






مراحل کسب مدرک

برای کسب مدرک CISSP، داوطلبان باید حداقل سه سال سابقه کاری مفید در یکی از زمینه‌های امنیتی اعلام شده توسط ۲(ISC) را داشته باشند . از ابتدای سال۲۰۰۳ به بعد شرط مذکور به چهار سال سابقه کاری یا سه سال سابقه کار به علاوهٔ یک مدرک دانشگاهی یا بین‌المللی در این زمینه تغییر یافت .زمینه‌های کاری امنیتی که انجمن ۲(ISC) داوطلبان را به داشتن تجربه در آن ترغیب می‌کند شامل ده مورد است کهبه آن عنوان (Common Body Of Knowlege) CBKیا همان اطلاعات پایه در زمینهٔ امنبیت اطلاق می‌شود این موارد عبارتنداز:

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

زمانی که داوطلب موفق به دریافت مدرک CISSP می‌شود باید برای حفظ این مدرک همواره خود را در وضعیت مطلوبی از لحاظ سطح دانش علمی وعملی در مقوله‌های مورد نظر نگه دارد .هر دارندهی این مدرک لازم است که هرسال برای تمدید گواهینامهٔ خود، کارهایی را برای اثبات پشتکار وعلاقهٔ خود به مقولهٔ امنیت انجام داده وموفق به کسب سالانه ۱۲۰ امتیاز (از لحاظ ارزش کارهای انجام شده از دید انجمن ) شود. به این منظور انجمن، فعالیت‌های مختلفی را برای کسب امتیاز ات لازم به دارندگان مدرک پیشنهاد می‌کند. به عنوان مثال کسب یک مدرک معتبر در زمینهٔ امنیت اطلاعات، فعالیت در زمینه‌های آموزش مفاهیم امنیتی به متخصصان دیگر، استخدام شدن درشرکت‌های معتبر، چاپ مقالات در زمینهٔ امنیت، شرکت در سمینارهای مهم وکنفرانس‌های مربوط به حوزهٔ امنیت، داشتن تحقیقات شخصی وامثال آن می‌توانند دارندگان مدرک را در کسب امتیازات لازم یاری دهند . کلیهٔ فعالیت‌های مذکور به صورت مستند و مکتوب تحویل نمایندگی‌های انجمن در سراسر دنیا شده تا مورد ارزشیابی و امتیازدهی انجمن قرار گیرد . در صورتی که دارندهٔ مدرک موفق به کسب ۱۲۰ امتیاز نشود باید جهت حفظ مدرک خود دوباره آزمون CISSP را بگذراند. CISSP شامل ۲۵۰ سئوال چهار گزینه‌ای است که کلیهٔ مفاهیم امنیتی را در بر می‌گیرد .CISSP یکی از محبوبترین مدارک بین‌المللی در سال ۲۰۰۳ شناخته شده به طوری که با یک افزایش ۱۳۴ درصدی در بین داوطلبان نسبت به سال قبل روبه رو بوده‌است .همین آمار حاکی از موفقیت ۹۸ درصدی دارندگان مدرک در حفظ مدرک خود است . به هر حال با اوضاع و احوال امروزهٔ دنیای فناوری اطلاعات وخطرات ناشی از حملات انواع ویروس‌ها و هکرها به نظر می‌رسد هر روز نیاز به وجود متخصصان امنیتی، خصوصا دارندگان مدارک معتبر بین‌المللی بیشتر محسوس است. هم اکنون دو مدرک امنیتی یعنی SECURITY+ متعلق به انجمن کامپتیا و مدرک CISSP متعلق به انجمن بین‌المللی حرفه‌ای‌های امنیت از شهرت خاصی در این زمینه برخوردارند.






وضعیت درآمد

طبق آمار مجلهٔ certification میانگین درآمد سالانهٔ دارندگان مدرک CISSP در سال ۲۰۰۴ نزدیک به ۸۶ هزار دلار بوده است این میزان درآمد در بین درآمد مدرک‌های مختلف که طبق همین آمارگیری بدست آمده نشان می‌دهد که مدرک CISSP در جایگاه اول قرار دارد. در این مقایسه مدرک security+ با ۶۰ هزار دلار و مدرک MCSE securityMCP با ۶۷ هزار دلار در سال در رده‌های دیگر این فهرست قرار دارند که همه نشان از اهمیت ودر عین حال دشوار بودن مراحل کسب و نگهداری مدرک CISSP دارد.





اطلاعات

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

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





دانش اطلاعات

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






رابطه میان کتابداری، علم کتابداری یا علم کتابخانه باعلم اطلاعات

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





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

فلسفهٔ اطّلاعات (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) و معیارهایی شبیه به آنها به عنوان معیارهای اصلی ارزیابی به کار می‌روند.






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

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






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






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

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






بانک اطلاعات

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






پردازش داده چیست

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






تعاریف

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






تعریف کلی

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






تحلیل داده

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






پردازش

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






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

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

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

برنامه‌نویسی کامپیوتر (که اغلب در انگلیسی 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 را نگه دارد، مانند چند برنامه جاوا سکریبت، در قسمتی از کد پرل خود و برای پشتیبانی از چندین زبان برنامه نویسی با تناسب متغیر در "مدرک اینجا" استفاده کند.
ساعت : 6:52 am | نویسنده : admin | کاکاپو | مطلب قبلی
کاکاپو | next page | next page