<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>مرجع برنامه نويسان حرفه اي فارسي زبان</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.sourcenew.com/atom.xml" />
    <id>tag:www.sourcenew.com,1387-11-28://1</id>
    <updated>1388-12-28T08:07:36Z</updated>
    <subtitle>مرجع برنامه نويسان حرفه اي فارسي زبان </subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.23-en</generator>

<entry>
    <title>آموزش الگوریتم و فلوچارت قسمت دوم</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/12/post-13.html" />
    <id>tag:www.sourcenew.com,2010://1.56</id>

    <published>1388-12-28T08:06:13Z</published>
    <updated>1388-12-28T08:07:36Z</updated>

    <summary>در جلسه ی قبل تعریف و مفهومی لز الگوریتم و انواع دستورالعمل ها و ویژگی های یک الگوریتم استاندارد و خوب را مطرح کردیم و در پایان مثالی را جهت تفهیم بیشتر مطرح کردیم.حال در این جلسه ضمن حل بیشتر...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="آموزش" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[در <a href="http://www.sourcenew.com/1388/12/post-12.html">جلسه ی قبل</a> تعریف و مفهومی لز الگوریتم و انواع دستورالعمل ها و ویژگی های یک الگوریتم استاندارد و خوب را مطرح کردیم و در پایان مثالی را جهت تفهیم بیشتر مطرح کردیم.حال در این جلسه ضمن حل بیشتر مثال ها و الگوریتم ها سعی می کنیم تعدادی از مفاهیم و دستورالعمل های کاربردی در الگوریتم را در ضمن مثال ها بررسی کنیم. 
<p align="justify"><font color="#000080"><b>مثال 1:</b></font> الگوریتمی بنویسید که طولی را برحسب سانتی متر از کاربر گرفته و آن را تبدیل به متر کند.<br /><b>حل:</b> ابتدا به الگوریتم آن توجه کنید:<br />1-شروع<br />2- <span lang="en-us">a</span> را بگیر<br />3- <span lang="en-us">a = a * 100<br /></span>4- <span lang="en-us">a</span> را چاپ کن.<br />5- پایان<br /><b>توضیح:</b> تنها موردی که ممکن است نیاز به توضیح داشته باشد خط سوم است. این یک ویژگی در الگوریتم و به تبع زبان های برنامه نویسی است.زبان های برنامه نویسی این ویژگی را به متغیرها می دهند که در طول اجرای برنامه هربار مقدار جدیدی را بپذیرند و مقادیر قبلی جای خود را به مقادیر جدید بدهند. در خط 3 از این ویژگی استفاده کرده ایم. ابتدا عدد <span lang="en-us">a</span> را که توسط برنامه از کاربر گرفته شده است را ضرب در 100 کرده سپس آن را مساوی <span lang="en-us">a</span> قرار می دهیم تا جای گزین مقدار قبلی <span lang="en-us">a</span> یعنی عدد گرفته شده توسط کاربر شود. البته در این الگوریتم هیچ نیازی به قرار دادن <span lang="en-us">a * 100</span> در همان متغیر <span lang="en-us">a</span> نداشتیم و می توانستیم این مقدار را در یک متغیر دیگر مانند <span lang="en-us">b</span> قرار دهیم و سپس در خط 4 دستور می دادیم که <span lang="en-us">b</span> را چاپ کند. اما در بعضی از الگوریتم ها استفاده از این ویژگی ضروری است و بدون استفاده از این ویژگی حل مسئله امکان پذیر نیست. در ادامه چنین مثال هایی را خواهید دید.<br />اما قبل از شروع مثال های دیگر باید با یک دستورالعمل بسیار مهم و پر کاربرد در الگوریتم و فلوچارت آشنا شوید:</p>
<p align="justify">چگونگی ایجاد حلقه ی تکرار و استفاده از آن در حل مسائل:<br />در بسیاری از برنامه ها شما مجبور هستید که دستورالعملی را چندین بار به صورت محدود و یا نامحدود تکرار کنید. در این صورت برای انجام این کار الگوریتم و فلوچارت راه ساده ای را به شما پیشنهاد می کند و آن ایجاد حلقه ی تکرار است. اهمیت حلقه های تکرار در مثال های زیر بیش از پیش برای شما آشکار خواهد شد. ایجاد حلقه ی تکرار بدین صورت است به عنوان مثال شما مجموعه ای از دستورالعمل ها را از خط 100 تا 105 برنامه ی فرضی خود نوشته اید و در خط 105 نیاز دارید که در صورت برقراری یک شرط خاص (یا با دستورالعمل اگر مشخص می شود) و یا تعداد دفعات تکرار دلخواه خطوط 100 تا 105 دوباره اجرا شوند. این خطوط تا زمانی که شما شرطی برای بیرون آمدن از حلقه ی تکرار نگذارید و یا تعداد دفعات آن را محدود نکنید ادامه خواهند یافت. برای برقراری حلقه کافی است در خط 105 برنامه ی فرضی خود عبارت (برگرد به 100) را بنویسید و برنامه به خط 100 برگشته و در صورتی که دوباره به 105 برود بازهم ارجاع به خط 100 داده می شود و در صورتی که شرطی برای نقض این حلقه قرار ندهید، حلقه تا بی نهایت ادامه خواهد یافت (این علم موجب متوقف شدن برنامه می شود و اگر الگوریتمی شامل چنین حلقه ای باشد جزو الگوریتم های استاندارد و درست نیست!) به مثال های بعدی که از حلقه ی تکرار استفاده شده است دقت کنید.</p>
<p align="justify"><font color="#000080"><b>مثال 2:</b></font> الگوریتمی بنویسید که اعداد 1 تا 1000 را چاپ کند.<br /><b>توضیح:</b> دقت کنید فردی که این ذهنیت برایش پیش بیاید که به راحتی و به صورت دستی می توانیم به کامپیوتر بگوییم&nbsp; (اعداد 1،2،3،000،1000 را چاپ کن) و یا اینکه کلیه اعداد را بنویسیم و در پایان دستور نمایش آن را صادر کنیم راه حل منطقی و درستی به نظر نمی آید. و اصولا راه حل اول اصلا امکان پذیر نیست چون گفتیم که یک الگوریتم باید کاملا مشخص باشد و سه نقطه (000) اصلا برای رایانه مفهومی ندارد. ولی راه حل دوم با صرف وقت زیاد (نوشتن اعداد از 1 تا 1000) امکان پذیر است اما تنها در صورتی که به ما نگویند که الگوریتمی بنویسید که اعداد 1 تا 10000000000 را چاپ کند !!!<br />خوب همان طور که حدس زده اید تنها راه منطقی و استاندارد برای حل این مسئله و نوشتن الگوریتم آن استفاده از حلقه ی تکرار است. ابتدا به الگوریتم و سپس به توضیح آن دقت کنید:<br />1-شروع<br />2- عدد 1 را در <span lang="en-us">a</span> قرار بده (یا اینکه <span lang="en-us">a=1</span>)<br />3- <span lang="en-us">a</span> را چاپ کن.<br />4- <span lang="en-us">a+1</span> را در <span lang="en-us">a</span> قرار بده. (یا اینکه <span lang="en-us">a=a+1</span>)<br />5- اگر <span lang="en-us">a&lt;1001</span> باشد آنگاه<font color="#ff0000"><b> برگرد به خط 3</b></font> در غیراین صورت برو به 6<br />6- پایان.</p>
<p align="justify"><b>توضیح:</b> الگوریتم را باید به دقت بررسی کنیم. و حتما ابهاماتی برای شما پیش آمده است. الگوریتم در خط 1 شروع شده و در خط 6 پایان می یابد. در خط 2 با یک تیر دو نشان زده ایم. اول اینکه متغیر <span lang="en-us">a</span> را تعریف کرده ایم ثانیا عدد 1 را به آن نسبت داده ایم. پس حال اگر برنامه عدد <span lang="en-us">a</span> را چاپ کند ، 1 را نمایش خواهد داد.پس خط 3 عدد 1 را چاپ می کند. در مورد خط 4 باید توجه کنید که از ویژگی که در مثال 1 گفته شد استفاده کرده ایم یعنی یک مقدار جدید با استفاده از خود متغیر <span lang="en-us">a</span> به صورت <span lang="en-us">a+1</span> ایجاد کرده و دوباره در <span lang="en-us">a</span> قرار داده ایم. این عمل موجب جایگزین شدن مقدار جدید به جای مقدار قبلی در متغیر <span lang="en-us">a</span> می شود.ابتدا <span lang="en-us">a</span> که اکنون شامل عدد 1 است را با 1 جمع کرده (2) و سپس دوباره در <span lang="en-us">a</span> قرار می دهیم. این عمل باعث جایگزین شدن مقدار 2 به جای 1 در متغیر <span lang="en-us">a</span> می شود. پس بعد از پایان خط 4 ، متغیر <span lang="en-us">a</span> شامل عدد 2 خواهد بود. حال به سراغ&nbsp; خط اصلی یعنی خط 5 می رویم. در خط 5 یک شرط با عبارت شرطی (اگر... آنگاه...درغیراینصورت...)چک می شود. این عبارت ، یعنی (اگر <span lang="en-us">a&lt;1001</span> باشد آنگاه برگرد به 3) یک حلقه ی تکرار بین خطوط 3 تا 5 ایجاد می کند. یعنی تا زمانی که <span lang="en-us">a</span> (که در هر بار اجرای حلقه یک واحد به آن اضافه می شود) کوچکتر از 1001 باشد حلقه اجرا خواهد شد و زمانی که <span lang="en-us">a</span> برابر 1001 باشد ، 1001 چاپ نشده و برنامه شرط در غیر اینصورت را اجرا خواهد کرد. دقت کنید که نیازی به ذکر قسمت (درغیراینصورت) نداشتیم. چون در صورت درست نبودن شرط برنامه خود به خود به خط بعدی منتقل می شد و برنامه در خط 6 پایان می پذیرفت. اما در مورد اینکه چرا عدد 1001 را نوشته ایم باید یک بار برنامه را همانند رایانه اجرا کنیم. فرض کنید عدد <span lang="en-us">a</span> به 999 رسیده است و خط 3 را اجرا کرده و عدد 999 را نمایش داده است. حال در خط چهارم مقدار <span lang="en-us">a</span> به 1000 می رسد. ما خط 5 را به صورت می توانستیم بنویسیم تا عدد 1000 را نیز چاپ کند ، یکی <span lang="en-us">a&lt;1001 </span>و دیگری <span lang="en-us">a&lt;=1000 </span>به معنای <span lang="en-us">a</span> کوچکتر یا مساوی 1000 است. </p>
<p align="justify">حال سعمی می کنیم یک مثال نسبتا سخت تر از مثال 2 را بررسی کنیم. امیدوارم استقبال کنید.</p>
<p align="justify"><font color="#000080"><b>مثال 3:</b></font> الگوریتمی بنویسید که یک عدد را از کاربر گرفته و فاکتوریل آن را محاسبه و نمایش دهد.<br />بدون هیچ توضیحی حلقه ی تکرار مربوطه و الگوریتم را نوشته و سپس در مورد آن بحث می کنیم:<br />1- شروع<br />2- عدد <span lang="en-us">a</span> را بگیر.<br />3- قرار بده <span lang="en-us">n=1<br /></span>4- اگر <span lang="en-us">a-n&gt;=1</span> و <span lang="en-us">n=1</span> آنگاه قرار بده <span lang="en-us">b=(a-n)*a<br /></span>5- اگر <span lang="en-us">a-n&gt;=1</span> و <span lang="en-us">n&gt;1</span> آنگاه قرار بده <span lang="en-us">b=(a-n)*b<br /></span>6- قرار بده <span lang="en-us">n=n+1<br /></span>7-اگر <span lang="en-us">a-n&gt;=1 </span>آنگاه برگرد به خط 4<br />8- عدد <span lang="en-us">b</span> را چاپ کن.<br />9- پایان<br /><b>توضیح:</b> واضح است که برنامه در خط 1 شروع و در خط 9 پایان می یابد. همان طور که دقت می کنید خطوط 4 تا 7 برنامه تشکیل یک حلقه را می دهند و تا زمانی که شرط خط 7 نقض نشود برنامه ادامه خواهد یافت. در خط 2 برنامه عددی دلخواه را از کاربر می گیرد و در خط 3 متغیر عددی <span lang="en-us">n</span> را تعریف می کند و به آن مقدار 1 را نسبت می دهد. خط های بعدی باید به دقت بررسی شوند. در خط 4 و 5 دو شرط مشابه تعریف می شوند و تنها تفاوت آن ها در 1 بودن یا نبودن متغیر <span lang="en-us">n</span> است که در شرط 4 اگر <span lang="en-us">n=1</span> باشد (که همواره برای اولین بار این شرط بررسی می شود و سپس در برگشت های بعدی حلقه شرط 5 بررسی می شود) متغیر دیگری به نام <span lang="en-us">b</span> تعریف می کند و یک عدد کمتر از <span lang="en-us">a</span> را در <span lang="en-us">a</span> ضرب کرده و در <span lang="en-us">b</span> قرار می دهد. و در خط 7 هم حلقه کامل می شود. <br />برای بررسی بهتر الگوریتم یک عدد فرضی را در نظر می گیریم و تمام مراحل الگوریتم را مانند رایانه بر روی آن انجام می دهیم.به عنوان مثال کاربر عدد 5 را وارد می کند و برنامه هم طبق دستورالعمل ما در خط 2 این عدد را به متغیر <span lang="en-us">a</span> نسبت می دهد. در خط 3 متغیر <span lang="en-us">n</span> تعریف شده و مقدار 1 را می گیرد. مسلما در این مرحله شرط خط 4 درست است چرا که <span lang="en-us">a-n</span> (که چون <span lang="en-us">n=1</span> و <span lang="en-us">a=5</span> است) برابر 4 بوده و بزگتر از 1 است پس حاصل <span lang="en-us">a-n</span> که برابر 4 است در <span lang="en-us">a</span> یعنی 5 ضرب می شود و در متغیر <span lang="en-us">b</span> قرار داده می شود تا مقدار اولیه ی متغیر <span lang="en-us">a</span> که در مراحل بعدی مورد نیاز است دچار تغییر نشود. در این مرحله چون <span lang="en-us">n=1</span> است واضح است که خط 5 اجرا نمی شود و در خط 6 یک عدد به مقدار <span lang="en-us">n</span> اضافه می شود و تبدیل به 2 می شود و چون <span lang="en-us">a-n</span> که در اینجا <span lang="en-us">2-5=3</span> است .و بزرگتر از 1 پس خط 7 نیز دزست بوده و برنامه به خط 4 بر می گردد (البته می توانید به خط 5 ارجاع بدهید چون مطمئن هستیم عددی که بعد از 1 در <span lang="en-us">n</span> قرار می گیرد چون طبیعی است بزگتر از 1 خواهد بود) حال <span lang="en-us">a-n</span> برابر 3 و <span lang="en-us">n&gt;1</span> است پس خط 5 اجرا می شود یعنی مقدار <span lang="en-us">a-n</span> که حالا 3 است در عدد قبلی <span lang="en-us">b</span> که 5*4=20 است ضرب می شود و در <span lang="en-us">b</span> قرار می گیرد. پس <span lang="en-us">b</span> اکنون شامل عدد 60 است. و سپس <span lang="en-us">n=3</span> می شود و حلقه به همین منوال اط خط 4 تکرار خواهد شد تا جایی که <span lang="en-us">n=5</span> شود. در این صورت <span lang="en-us">a-n</span> برابر صفر خواهد شد (چون عدد گرفته شده 5 بود) و شرط های 4 و 5 و تبع 7 نقض می شوند و برنامه از حلقه خارج می شود و خط 8 اجرا شده و عدد نهایی که در <span lang="en-us">b</span> قرار گرفته است نمایش داده می شود و برنامه توسط خط 9 به پایان می رسد و خروجی تحویل کاربر داده می شود.</p>
<p align="justify">خوب امیدوارم که از این مثال نسبتا پیچیده استفاده کرده باشید و لذت برده باشید. دقت کنید که این الگوریتم ها تنها مثال های ساده ای برای آشنایی شما و یادگیری بهتر هستند و سعی کرده ام تا حد امکان توضیح ها مبسوط و کافی باشند. و به یادگیری شما کمک کنند. برای بررسی پیشرفته ی الگوریتم و همچنین نوشتن الگورتیم فرمول های پیچیده ی ریاضی (انتگرال و...) از کتاب های دانشگاهی محاسبات عددی استفاده کنید. در این جلسه فرصت برای بررسی فلوچارت وجود نداشت. در جلسه ی بعد(جلسه ی سوم) سعی می کنم فلوچارت را توضیح داده و مثال های متعددی را با آن بررسی کنیم و تعدادی از مسائل این جلسه و جلسه ی قبل را با استفاده از فلوچارت پیاده سازی کنیم. دقت کنید که امکان بررسی فلوچارت بدون یادگیری عمیق الگوریتم و تسلط بر آن امکان پذیر نیست. پس سعی کنید جلسات اول و دوم را به دقت بررسی کرده و با حل مثال های متعدد در آن مسلط شوید.</p>]]>
        
    </content>
</entry>

<entry>
    <title>آموزش الگوریتم و فلوچارت قسمت اول</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/12/post-12.html" />
    <id>tag:www.sourcenew.com,2010://1.55</id>

    <published>1388-12-28T08:03:08Z</published>
    <updated>1388-12-28T08:05:09Z</updated>

    <summary>این مبحث اساس و پایه ی برنامه نویسی است. الگوریتم و فلوچارت تنها چیزهایی هستند که به طور کامل میان تمامی زبان های برنامه نویسی مشترک هستند. البته قعلا از بررسی فلوچارت خودداری می کنیم چون لازمه ی فلوچارت دانستن...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="آموزش" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<font face="Tahoma">این مبحث اساس و پایه ی برنامه نویسی است. الگوریتم و فلوچارت تنها چیزهایی هستند که به طور کامل میان تمامی زبان های برنامه نویسی مشترک هستند. البته قعلا از بررسی فلوچارت خودداری می کنیم چون لازمه ی فلوچارت دانستن الگوریتم است.</font> 
<p><font face="Tahoma">شما برای تمامی کارهای زندگی خود یک روال خاص را طی می کنید تا آن کار انجام شود. برای مثال وقتی که کاری مثل غذا خوردن را انجام می دهید مراحل غذاخوردن به این صورت است : با استفاده از قاشق غذای خود را برمی دارید غذا را در داخل دهان قرار می دهید قاشق را در جای اول خود قرار می دهید و خوب غذا را آسیاب می کنید (می جویید!). پس شما برای رفع مشکل گرسنگی که راه حل اون غذا خوردن هست حتما باید این مراحل را قدم به قدم انجام دهید تا (مشکل) گرسنگی شما برطرف شود. این یک روال و یا الگوریتم شما و هر انسانی برای غذاخوردن است. یعنی شما در تمامی کارهای خود یک روال و برنامه را طی می کنید هرچند که شاید در بعضی موارد جزئی با هم تفاوت داشته باشند اما موارد اصلی را حتما استفاده می کنید.</font></p>
<p><font face="Tahoma">در برنامه نویسی رایانه هم دقیقا این موارد حاکم است. شما برای حل یک مسئله و یا (مشکل) باید مرحله به مرحله مثل یک کودک به کامپیوتر یاد بدهید که آن مشکل را چگونه حل کند. در واقع هربرنامه ای که می نویسید باید یک مسئله را حل کند و برنامه ی شما مراحل قدم به قدم را به کامپیوتر نشان می دهد تا آن مسئله را حل کند. به این مراحل قدم به قدم که برای حل (مسئله) به کار گرفته می شوند ، الگوریتم می گویند. برای مثال وقتی که می خواهید برنامه ای بنویسید که فاکتوریل عدد 7 را محاسبه کند اولا باید بدانید که این یک (مسئله) است و برای هر مسئله ای باید راه حلی به نام الگوریتم به کامپیوتر معرفی نمود. کامپیوتر خود به خود نمی تواند فاکتوریل یک عدد را حساب کند مگر این که فرمول محاسبه ی فاکتوریل یک عدد را با استفاده از یک برنامه به او بدهید. </font></p>
<p><font face="Tahoma">بنابراین با توجه به مطالب گفته شده یک تعریف جامع و کلی از الگوریتم ذکر می کنیم : </font></p>
<p><b><font color="#000080" face="Tahoma">الگوریتم مجموعه دستورالعمل های مشخصی است که مراحل انجام یک کار و یا مسئله را با زبانی دقیق و با جزییات کافی که چگونگی ترتیب کامل عملیات و کارها را ذکر می کند.</font></b></p>
<p><font face="Tahoma"><b>نکته : </b>کلمه ی الگوریتم از دانشمند بزرگ و پرآوازه یعنی الخوارزمی گرفته شده است.</font></p>
<p><font face="Tahoma">هنگامی که یک الگوریتم را می نویسید دقت کنید که موارد زیر را حتما رعایت کنید : </font></p>
<p><font face="Tahoma">1 - آغاز و پایان الگوریتم به طور دقیق مشخص باشد.</font></p>
<p><font face="Tahoma">2- مراحل دارای جزییات کافی باشند.</font></p>
<p><font face="Tahoma">3- مراحل با زبانی دقیق نوشته شوند. مثلا عبارت "حدود ظهر است" برای کامپیوتر نامفهوم است باید دقیق ذکر شود که مثلا "ساعت 11:52 است".</font></p>
<p><font face="Tahoma">4- مراحل به ترتیب و درست نوشته شوند.</font></p>
<p><font face="Tahoma">الگوریتمی که دارای ویژگی های فوق باشد الگوریتم درستی است و برای کامپیوتر به طور کامل قابل ترجمه و تفهیم است.</font></p>
<p><font face="Tahoma">لازم است بدانید که هر الگوریتم دارای سه بخش اصلی است : آغاز - دستورالعمل ها - پایان&nbsp; که ترتیب این سه جزء مهم است.</font></p>
<p><b><font face="Tahoma"><font color="#000080">انواع دستورالعمل ها :</font> </font></b></p>
<p><font face="Tahoma"><b>1- دستورالعمل های محاسباتی و انتسابی : </b>در این نوع دستورالعمل ها می توانید مقداری را به یک متغیر نسبت دهید و یا عملیات محاسباتی را انجام دهید.</font></p>
<p><font face="Tahoma">مثلا دستور (<span lang="en-us">first = hello</span>) مقدار <span lang="en-us">hello </span>را به متغیر <span lang="en-us">first</span> نسبت می دهد. و یا دستور (<span lang="en-us">sec = 2*5</span>)<span lang="en-us">&nbsp;</span>ابتدا عدد 2 را در 5 ضرب می کند و سپس آن را در متغیر <span lang="en-us">sec</span> قرار می دهد.</font></p>
<p><font face="Tahoma"><b>2- عبارات توضیحی :</b> برای اضافه کردن توضیح به برنامه و یا الگوریتم استفاده می شود. که برای جداکردن آن از دستورالعمل ها در داخل پرانتز قرار می گیرد.</font></p>
<p><font face="Tahoma"><b>3- دستورالعمل های شرطی : </b>بوسیله ی این دستورالعمل ها می توان شرطی را بررسی کرد در صورتی که آن شرط درست باشد عبارت بعد از آن اجرا می شود. برای مثال دستور "اگر <span lang="en-us">2&gt;3</span> باشد آنگاه چاپ کن درست است " تنها در صورتی عبارت "درست است" را چاپ می کند (در برنامه نویسی معمولا منظور از چاپ کردن نمایش در صفحه ی نمایش است) که 3 از 2 بزرگتر باشد و چون این عبارت همیشه درست است در نتیجه همواره در هنگام اجرای برنامه عبارت "درست است" چاپ می شود.</font></p>
<p><font face="Tahoma"><b>4- دستورالعمل های خروجی : </b>به صورت "چاپ کن مقدار موردنظر" مورد استفاده قرار می گیرد.</font></p>
<hr>

<p><font face="Tahoma">حال با استفاده از مطالب ذکر شده یک مسئله طرح می کنیم و الگوریتم و یا شبه کد آن را می نویسیم : </font></p>
<p><font color="#ff0000" face="Tahoma"><b>مثال : </b></font><b><font face="Tahoma">الگوریتمی بنویسید که دوعدد را بگیرد و آن ها را با هم جمع کند و سپس حاصل جمع آن ها را در خروجی نمایش دهد.</font></b></p>
<p><font face="Tahoma">الگوریتم موردنظر به صورت زیر خواهد بود : </font></p>
<p><font face="Tahoma">1- شروع</font></p>
<p><font face="Tahoma">2- دو عدد <span lang="en-us">a,b</span> را بگیر</font></p>
<p><font face="Tahoma">3- <span lang="en-us">S = a + b</span></font></p>
<p><font face="Tahoma">4- <span lang="en-us">S</span> را چاپ کن</font></p>
<p><font face="Tahoma">5- پایان</font></p>
<p>&nbsp;</p>
<p><font color="#000080" face="Tahoma"><b>توضیح : </b></font><font face="Tahoma">همان طور که در الگوریتم بالا می بینید مرحله به مرحله و قدم به قدم راه حل مسئله نوشته شده است. در خط 1 برنامه شروع شده و در خط 5 پایان یافته است. (دو مرحله ی اصلی اول و سوم) از خطوط 2 تا 4 دستورالعمل ها و کدها نوشته شده اند (دومین مرحله ی اصلی) . در خط 2 الگوریتم 2 عدد دلخواه <span lang="en-us">a</span> و <span lang="en-us">b</span> را می گیرد و در آن ها قرار می دهد. سپس در مرحله ی 3 مجموع دو عدد <span lang="en-us">a</span> و <span lang="en-us">b</span> را به <span lang="en-us">S</span> نسبت می دهد یعنی در <span lang="en-us">S</span> قرار می دهد و در پایان مرحله ی 4 <span lang="en-us">S</span> را که شامل مجموع دو عدد <span lang="en-us">a</span> و <span lang="en-us">b </span>است چاپ می کند و مسئله به همین راحتی حل می شود.</font></p>
<hr>

<p><b><font color="#000080" face="Tahoma">اما راستی چرا می گوییم که الگوریتم در بین همه ی زبان های برنامه نویسی مشترک است ؟ </font></b></p>
<p><font face="Tahoma">به این دلیل که کافی است با دستورات زبان برنامه نویسی موردنظر خود آشنا باشید و فقط عبارات فارسی موجود در الگوریتم بالا را به زبان برنامه نویسی موردنظر ترجمه کنید، کامپیوتر برنامه ی موردنظر شما را اجرا خواهد کرد و مجموع دو عدد را برای شما چاپ خواهد کرد.</font></p>
<p><font face="Tahoma">امیدوارم در این بخش از آموزش با الگوریتم آشنا شده باشید. در بخش بعدی مراحل پیشرفته تر و مثال های پیچیده تری را مطرح خواهیم کرد.</font></p>]]>
        
    </content>
</entry>

<entry>
    <title>درخواست همیاری و کمک از برنامه نویسان حرفه ای و نیمه حرفه ای</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/12/post-11.html" />
    <id>tag:www.sourcenew.com,2010://1.54</id>

    <published>1388-12-28T07:32:16Z</published>
    <updated>1388-12-28T07:44:24Z</updated>

    <summary>با توجه به مشغول بودن برنامه نویس شرکت بر روی نسخه ی آزمایشی تالار گفتمان سایت سورس نیو ، از شما کاربران گرامی درخواست می شود کسی که توانایی ارائه مطالب مرتبط با برنامه نویسی یا پروژه های رایگان می...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="اخبار سايت" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<p>با توجه به مشغول بودن <a href="http://www.sourcenew.com">برنامه نویس</a> شرکت بر روی <a href="http://www.sourcenew.com">نسخه ی آزمایشی</a> <a href="http://www.sourcenew.com">تالار گفتمان </a>سایت سورس نیو ، از شما کاربران گرامی درخواست می شود کسی که توانایی ارائه مطالب مرتبط با برنامه نویسی یا پروژه های رایگان می باشد دعوت می شود تا در مدیریت موقت سورس نیو کمک به عمل آید.</p>
<p>برای اطلاعات بیشتر با میل <a href="http://www.sourcenew.com">برنامه نویس</a> شرکت مکاتبه نمائید.</p>
<p>با تشکر مدیریت سایت</p>
<p>Email:</p>
<p><a href="mailto:dalir.bajlany2000@live.com">dalir.bajlany2000@live.com</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>درخواست پروژه</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/10/post-10.html" />
    <id>tag:www.sourcenew.com,2009://1.53</id>

    <published>1388-10-08T09:55:35Z</published>
    <updated>1388-10-08T10:21:54Z</updated>

    <summary><![CDATA[&nbsp; اگر کسی احتیاج به برنامه نویسی و پروژه دارد می تواند مستقیما با شماره موبایل برنامه نویس شرکت تماس حاصل نماید و درخواست خود را عنوان کند تا در اسرع وقت به درخواست شما رسیدگی شود. شماره موبایل:09138813597 آقای...]]></summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="اخبار سايت" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="درخواستپروژه" label="درخواست پروژه" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<span style="DISPLAY: inline" class="mt-enclosure mt-enclosure-image"><br />&nbsp;</span>
<span style="DISPLAY: inline" class="mt-enclosure mt-enclosure-image">اگر کسی احتیاج به برنامه نویسی و پروژه دارد می تواند مستقیما با شماره موبایل برنامه نویس شرکت تماس حاصل نماید و درخواست خود را عنوان کند تا در اسرع وقت به درخواست شما رسیدگی شود.
<p>شماره موبایل:09138813597 آقای باجلانی</p>
<p>با تشکر مدیریت سایت<br /></span></p>]]>
        
    </content>
</entry>

<entry>
    <title>با سلام</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/10/post-9.html" />
    <id>tag:www.sourcenew.com,2009://1.52</id>

    <published>1388-10-08T09:31:37Z</published>
    <updated>1388-10-08T09:40:43Z</updated>

    <summary>با عرض پوزش نسبت به دیر کرد شش ماهه آپلود مطالب به اطلاع می رسانیم از ماه آینده سورس نیو بر پایه ی تکنولوژی ای اس پی و با امکانات :تالار گفتمان ، بخش آموزش ، برنامه های سورس باز...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="اخبار سايت" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<span style="DISPLAY: inline" class="mt-enclosure mt-enclosure-image">با عرض پوزش نسبت به دیر کرد شش ماهه آپلود مطالب به اطلاع می رسانیم از ماه آینده سورس نیو بر پایه ی تکنولوژی ای اس پی و با امکانات :تالار گفتمان ، بخش آموزش ، برنامه های سورس باز و امکانات بی نظیر دیگر در اختیار شما عزیزان قرار میگیرد. صبور باشید.با تشکر مدیریت سایت<br /><img class="mt-image-none" alt="news_photo.jpg" align="center" src="http://www.sourcenew.com/images/news_photo.jpg" width="428" height="488" /></span>]]>
        
    </content>
</entry>

<entry>
    <title> وب سرويس چيست؟ </title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/post-8.html" />
    <id>tag:www.sourcenew.com,2009://1.48</id>

    <published>1388-01-28T07:56:49Z</published>
    <updated>1388-01-28T07:58:39Z</updated>

    <summary> وب سرويس چيست؟ کسانی که با صنعت IT آشنايی دارند تتما ً نام وب سرويس را شنيده اند. برای مثال، بيش از ۶۶ درصد کسانی که در نظر سنجی مجله InfoWorld شرکت کرده بودند بر اين توافق داشتند که...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="آموزش" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="وبسرويسچيست؟" label="وب سرويس چيست؟" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<table id="Table3" align="center" border="0" cellpadding="0" cellspacing="0" width="100%" height="80%"><tbody><tr><td bordercolor="#ffffff" align="center" valign="top"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top"><h1 class="Title" align="center"><a href="http://www.sourcenew.com/"><span id="BaseMasterPage1__ctl0__ctl2_TitleLBL" dir="rtl" style="color: DarkRed; font-family: Tahoma; font-size: small;">وب سرويس چيست؟ </span></a></h1></td>
								</tr>
								<tr>
									<td dir="rtl" bordercolor="#ffffff" align="center" valign="top"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top" height="15"><br /></td>
								</tr>
								<tr>
									<td style="height: 11px;" bordercolor="#ffffff" align="center" valign="top" height="11"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top">
										<div dir="rtl" align="justify">
											
											<span id="BaseMasterPage1__ctl0__ctl2_body" class="style4" style="font-family: Tahoma; font-size: small;"><p align="left"><a href="http://www.nofa.ir/SubjectsInForum-ForumID161.aspx"><br /></a></p>
<p>کسانی که با صنعت IT آشنايی دارند تتما ً نام وب سرويس را شنيده اند.
برای مثال، بيش از ۶۶ درصد کسانی که در نظر سنجی مجله InfoWorld شرکت کرده
بودند بر اين توافق داشتند که وب سرويس ها مدل تجاری بعدی اينترنت خواهند
بود. به علاوه گروه گارتنر پيش بينی کرده است که وب سرويس ها کارآيی پروژه
های IT را تا ۳۰ در صد بالا می برد. اما وب سرويس چيست و چگونه شکل تجارت
را در اينترنت تغيير خواهد داد؟<br /><br />برای ساده کردن پردازش های تجاری،
برنامه های غيرمتمرکز (Enterprise) بايد با يکديگر ارتباط داشته باشند و
از داده های اشتراکی يکديگر استفاده کنند. قبلا ً اين کار بوسيله ابداع
استانداردهای خصوصی و فرمت داده ها به شکل مورد نياز هر برنامه انجام می
شد. اما دنيای وب و XML تکنولوژی آزاد برای انتقال ديتا انتقال اطلاعات
بين سيستم ها را افزايش داد. وب سرويس ها نرم افزارهايی هستند که از XML
برای انتقال اطلاعات بين نرم افزارهای ديگر از طريق پروتکل های معمول
اينترنتی استفاده می کنند. به شکل ساده يک وب سرويس از طريق وب اعمالی را
انجام می دهد (توابع يا سابروتين ها) و نتايج را به برنامه ديگری می
فرستد. اين يعنی برنامه ای که در يک کامپيوتر در تال اجراست اطلاعاتی را
به کامپيوترديگری می فرستد و از آن درخواست جواب می کند. برنامه ای که در
آن کامپيوتر دوم است کارهای خواسته شده را انجام می دهد و نتيجه را بر روی
ساختارهای اينترنتی به برنامه اول برمی گرداند.<br /><br />وب سرويس ها می
توانند از پروتکل های زيادی در اينترنت استفاده کنند اما بيشتر از HTTP که
مهم ترين آنهاست استفاده می شود. وب سرويس هر نوع کاری می تواند انجام
دهد. برای مثال در يک برنامه می تواند آخرين عنوان های اخبار را از وب
سرويس Associated Press بگيرد يا يک برنامه مالی می تواند آخرين اخبار و
اطلاعات بورس را از طريق وب سرويس بگيرد. کاری که وب سرويس انجام می دهد
می تواند به سادگی ضرب دو عدد يا به پيچيدگی انجام کليه امور مشترکين يک
شرکت باشد.<br /><br />وب سرويس دارای خواصی است که آن را از ديگر تکنولوژی ها
و مدل های کامپيوتری جدا می کند. Paul Flessner، نايب رييس مايکروسافت در
dot NET Enterprise Server چندين مشخصه برای وب سرويس در يکی از نوشته
هايش ذکر کرده است. اول اينکه وب سرويس ها قابل برنامه ريزی هستند. يک وب
سرويس کاری که می کند را در خود مخفی نگه می دارد. وقتی برنامه ای به آن
اطلاعات داد وب سرويس آن را پردازش می کند و در جواب آن اطلاعاتی را به
برنامه اصلی بر می گرداند. دوم، وب سرويس ها بر پايه XML بنا نهاده شده
اند. XML و XML های مبتنی بر SOAP يا Simple Object Access Protocol
تکنولوژی هايی هستند که به وب سرويس ها اين امکان را می دهد که با ديگر
برنامه ها ارتباط داشته باشد تتی اگر آن برنامه ها در زبانهای مختلف نوشته
شده و بر روی سيستم عامل های مختلفی در تال اجرا باشند.<br /><br />همچين وب
سرويس ها خود-توصيف هستند. به اين معنی که کاری را که انجام می دهند و
نتوه استفاده از خودشان را توضيت می دهند. اين توضيتات به طور کلی در WSDL
يا Web Services Description Language نوشته می شود. WSDL يک استاندارد بر
مبنای XML است. به علاوه وب سرويس ها قابل شناسايی هستند به اين معنی که
برنامه نويس می تواند به دنبال وب سرويس مورد علاقه در دايرکتوری هايی مثل
UDDI يا Universal Description , Discovery and Integration جستجو کند.
UDDI يکی ديگر از استاندارد های وب سرويس است.<br /><br />نکات تکنولوژی وب سرويس<br />همانطور
که در ابتدا توضيت داده شد يکی از دلايل اينکه وب سرويس از ديگر تکنولوژی
های موجود مجزا شده است استفاده از XML و بعضی استاندارد های تکنيکی ديگر
مانند SOAP، WSDL و UDDI است. اين تکنولوژی ها زمينه ارتباط بين برنامه ها
را ايجاد می کنند به شکلی که مستقل از زبان برنامه نويسی، سيستم عامل و
سخت افزار است. SOAP يک مکانيزم ارتباطی را بين نرم افزار و وب سرويس
ايجاد می کند. WSDL يک روش يکتا برای توصيف وب سرويس ايجاد می کند و UDDI
يک دايرکتوری قابل جستجو برای وب سرويس می سازد. وقتی اينها با هم در يک
جا جمع می شوند اين تکنولوژی ها به برنامه نويس اجازه می دهد که برنامه
های خود را به عنوان سرويس آماده کرده و بر روی اينترنت قرار دهد.<br /><br />XML يا eXtensible Markup Language<br />XML
يک تکنولوژی است که به شکل گسترده از آن پشتيبانی می شود، همچنين اين
تکنولوژی Open است به اين معنی که متعلق به شرکت خاصی نيست. اولين بار در
کنسرسيوم WWW يا W3C در سال ۱۹۹۶ برای ساده کردن انتقال ديتا ايجاد شده
است. با گسترده شدن استفاده از وب در دهه ۹۰ کم کم متدوديت های HTML مشخص
شد. ضعف HTML در توسعه پذيری (قابليت اضافه و کم کردن خواص) و ضعف آن در
توصيف ديتاهايی که درون خود نگهداری می کند برنامه نويسان را از آن نااميد
کرد. همچنين مبهم بودن تعاريف آن باعث شد از توسعه يافتن باز بماند. در
پاسخ به اين اشکالات W3C يک سری امکانات را در جهت توسعه HTML به آن افزود
که امکان تغيير ساختار متنهای HTML مهم ترين آن است. اين امکان را CSS يا
Cascade Style Sheet می نامند.<br /><br />اين توسعه تنها يک راه موقتی بود.
بايد يک روش استاندارد شده، توسعه پذير و دارای ساختار قوی ايجاد می شد.
در نتيجه W3C استاندارد XML را ساخت. XML دارای قدرت و توسعه پذيری SGML
يا Standard Generalized Markup Language و سادگی که در ارتباط در وب به
آن نياز دارد است.<br /><br />استقلال اطلاعات يا جدا بودن متتوا از ظاهر يک
مشخصه برای XML به تساب می آيد. متنهای XML فقط يک ديتا را توصيف می کنند
و برنامه ای که XML برای آن قابل درک است بدون توجه به زبان و سيستم عامل
قادر است به اطلاعات درون فايل XML هر گونه شکلی که مايل است بدهد. متنهای
XML تاوی ديتا هستند بدون شکل خاص، بنابراين برنامه ای که از آن می خواهد
استفاده کند بايد بداند که چگونه می خواهد آن اطلاعات را نمايش دهد.
بنابراين نتوه نمايش يک فايل XML در يک PC با PDA و تلفن همراه می تواند
متفاوت باشد.<br /><br />وقتی يک برنامه با متن XML مواجه می شود بايد مطمئن
باشد که آن متن تاوی ديتای مورد نظر خود است. اين اطمينان توسط برنامه
هايی با نام XML Parser تاصل می شود. تجزيه کننده ها دستورات متن XML را
بررسی می کنند. همچنين آنها به برنامه کمک می کنند تا متن های XML را
تفسير کند. به صورت اختياری هر متن XML می تواند به متن ديگری اشاره کند
که تاوی ساختار فايل XML اصلی باشد. به آن متن XML دوم DTD يا Document
Type Definition گفته می شود.<br /><br />وقتی فايل XML به DTD اشاره می کند
برنامه تجزيه کننده فايل اصلی را با DTD بررسی می کند که آيا به همان
ساختاری که در DTD توصيف شده شکل گرفته است يا خير. اگر يک تجزيه کننده
XML بتواند يک متن را به درستی پردازش کند متن XML نيز به شکل صتيتی فرمت
شده است.<br /><br />وقتی که اکثر نرم افزارها امکانات وبی خود را افزايش
دادند اين طور به نظر می رسد که XML به عنوان يک تکنولوژی جهانی برای
فرستادن اطلاعات بين برنامه ها انتخاب شود. تمامی برنامه هايی که از XML
استفاده می کنند قادر خواهند بود که XML ِ همديگر را بفهمند. اين سطت
بالای تطابق بين برنامه ها باعث می شود که XML يک تکنولوژی مناسب برای وب
سرويس باشد. چون بدون اينکه اتتياج به سيستم عامل و سخت افزار يکسان باشد
می تواند اطلاعات را جابجا کند.<br /><br />SOAP يا Simple Object Access Protocol<br />SOAP
يکی از عمومی ترين استاندارد هايی است که در وب سرويس ها استفاده می شود.
طبق شواهد اولين بار توسط DeveloperMentor، شرکت UserLand و مايکروسافت در
سال ۱۹۹۸ ساخته شده و نسخه اول آن در سال ۱۹۹۹ ارايه شده است. آخرين نسخه
SOAP، نسخه 1.2 بود که در دسامبر سال ۲۰۰۱ در W3C ارايه شد. نسخه 1.2 نشان
دهنده کار زياد بر روی آن و نمايانگر اشتياق زياد صنعت IT برای استفاده از
SOAP و وب سرويس است.<br /><br />هدف اصلی SOAP ايجاد روشی جهت فرستادن ديتا
بين سيستم هايی است که بر روی شبکه پخش شده اند. وقتی يک برنامه شروع به
ارتباط با وب سرويس می کند، پيغام های SOAP وسيله ای برای ارتباط و انتقال
ديتا بين آن دو هستند. يک پيغام SOAP به وب سرويس فرستاده می شود و يک
تابع يا سابروتين را در آن به اجرا در می آورد به اين معنی که اين پيغام
از وب سرويس تقاضای انجام کاری را دارد. وب سرويس نيز از متتوای پيغام
SOAP استفاده کرده و عمليات خود را آغاز می کند. در انتها نيز نتايج را با
يک پيغام SOAP ديگر به برنامه اصلی می فرستد.<br /><br />به عنوان يک پروتکل
مبتنی بر XML، پروتکل SOAP تشکيل شده از يک سری الگوهای XMLی است. اين
الگوها شکل پيغام های XML را که بر روی شبکه منتقل می شود را مشخص می کند.
مانند نوع ديتاها و اطلاعاتی که برای طرف مقابل تفسير کردن متن را آسان
کند. در اصل SOAP برای انتقال ديتا بر روی اينترنت و از طريق پروتکل HTTP
طراتی شده است ولی از آن در ديگر مدلها مانند LAN نيز می توان استفاده
کرد. وقتی که وب سرويس ها از HTTP استفاده می کنند به راتتی می توانند از
Firewall عبور کنند.<br /><br />يک پيغام SOAP از سه بخش مهم تشکيل شده است:
پوشش يا Envelope ،Header، بدنه يا Body. قسمت پوشش برای بسته بندی کردن
کل پيغام به کار می رود. اين بخش متتوای پيغام را توصيف و گيرنده آن را
مشخص می کند. بخش بعدی پيغام های SOAP، Header آن است که يک بخش اختياری
می باشد و مطالبی مانند امنيت و مسيريابی را توضيت می دهد. بدنه پيغام
SOAP بخشی است که ديتاهای مورد نظر در آن جای می گيرند. ديتاها بر مبنای
XML هستند و از يک مدل خاص که الگوها (Schemas) آن را توضيت می دهند تبعيت
می کنند. اين الگو ها به گيرنده کمک می کنند تا متن را به درستی تفسير
کند. پيغام های SOAP توسط سرورهای SOAP گرفته و تفسير می شود تا در نتيجه
آن، وب سرويس ها فعال شوند و کار خود را انجام دهند.<br /><br />برای اينکه از
SOAP در وب سرويس استفاده نکنيم از تعداد زيادی پروتکل بايد استفاده شود.
برای مثال XML-RPC تکنولوژی قديمی تری بود که همين امکانات را ايجاد می
کرد. به هر تال، خيلی از سازندگان بزرگ نرم افزار SOAP را بر تکنولوژی های
ديگر ترجيت دادند. دلايل زيادی برای انتخاب SOAP وجود دارد که خيلی از
آنها درباره پروتکل آن است که فراتر از اين متن می باشد. سه برتری مهم
SOAP نسبت به تکنولوژی های ديگر عبارتند از قابليت توسعه، سادگی و قابليت
عملکرد داخلي.<br /><br />پيغام های SOAP معمولا ً کدهای زيادی ندارند و برای
فرستادن و گرفتن آن به نرم افزارهای پيچيده نياز نيست. SOAP اين امکان را
به برنامه نويس می دهد تا بنا به نياز خود آن را تغيير دهد. در آخر بدليل
اينکه SOAP از XML استفاده می کند می تواند بوسيله HTTP اطلاعات را انتقال
بدهد بدون اينکه زبان برنامه نويسی، سيستم عامل و سخت افزار برای آن مهم
باشد.<br /><br />WSDL يا Web Services Description Language<br />استاندارد
ديگری که نقش اساسی در وب سرويس بازی می کند WSDL است. همانطور که قبلا ً
اشاره کرديم يکی از خواص وب سرويس ها توصيف خود آنهاست به اين معنی که وب
سرويس دارای اطلاعاتی است که نتوه استفاده از آن را توضيت می دهد. اين
توضيتات در WSDL نوشته می شود، متنی به XML که به برنامه ها می گويد اين
وب سرويس چه اطلاعاتی لازم دارد و چه اطلاعاتی را بر می گرداند.<br /><br />وقتی
که سازندگان نرم افزار برای اولين بار SOAP و ديگر تکنولوژی های وب سرويس
را ساختند دريافتند که برنامه ها قبل از اينکه شروع به استفاده از يک وب
سرويس بکنند بايد اطلاعاتی درباره آن را داشته باشند. اما هر کدام از آن
سازندگان برای خودشان روشی برای ايجاد اين توضيتات ابداع کردند و باعث شد
که وب سرويس ها با هم هماهنگ نباشد. وقتی IBM و مايکروسافت تصميم گرفتند
تا استاندارد های خود را يکسان کنند WSDL بوجود آمد. در ماه مارس سال ۲۰۰۱
مايکروسافت، IBM و Ariba نسخه 1.1 را به W3C ارائه کردند. گروهی از W3C بر
روی اين استاندارد کار کردند و آن را پذيرفتند. هم اکنون اين تکنولوژی در
دست ساخت است و هنوز کامل نشده. ولی هم اکنون اکثر سازندگان وب سرويس از
آن استفاده می کنند.<br /><br />هر وب سرويسی که بر روی اينترنت قرار می گيرد
دارای يک فايل WSDL است که مشخصات، مکان و نتوه استفاده از وب سرويس را
توضيت می دهد. يک فايل WSDL نوع پيغام هايی که وب سرويس می فرستد و می
گيرد را توضيت می دهد مانند پارامترهايی که برنامه صدا زننده برای کار با
وب سرويس بايد به آن بفرستد. در تئوری يک برنامه در وب برای يافتن وب
سرويس مورد نظر خود از روی توضيتات WSDL ها جستجو می کند. در WSDL اطلاعات
مربوط به چگونگی ارتباط با وب سرويس بر روی HTTP يا هر پروتکل ديگر نيز
وجود دارد.<br /><br />اين مهم است که بدانيم WSDL برای برنامه ها طراتی شده
است نه برای خواندن آن توسط انسان. شکل فايلهای WSDL پيچيده به نظر می آيد
ولی کامپيوترها می توانند آن را بخوانند و تجزيه و تتليل بکند. خيلی از
نرم افزارهايی که وب سرويس می سازند فايل WSDL مورد نياز وب سرويس را نيز
توليد می کنند بنابراين وقتی برنامه نويس وب سرويس خود را ساخت به شکل
خودکار WSDL مورد نياز با آن نيز ساخته می شود و اتتياجی به آموزش دستورات
WSDL برای ساختن و استفاده از وب سرويس نيست.<br /><br />UDDI يا Universal Description , Discovery and Integration<br />سومين
استاندارد اصلی وب سرويس ها، يعنی UDDI، به شرکتها و برنامه نويسان اجازه
می دهد تا وب سرويس های خود را بر روی اينترنت معرفی کنند. اين استاندارد
در اصل بوسيله مايکروسافت، IBM و Ariba و پنجاه شرکت بزرگ ديگر ساخته شده
است. با استفاده از UDDI شرکتها می توانند اطلاعات خود را در اختيار شرکت
های ديگر قرار بدهند و مدل B2B ايجاد کنند. همان طور که از نام آن مشخص
است شرکت ها می توانند وب سرويس خود را معرفی کنند، با وب سرويس ديگران
آشنا شوند و از آن در سيستم های خود استفاده کنند. اين استاندارد جديدی
است و در سال ۲۰۰۰ ساخته شده است و کنسرسيومی از شرکتهای صنعتی در تال کار
بر روی آن هستند. نسخه دوم UDDI در ماه ژوئن سال ۲۰۰۱ ارائه شد و نسخه سوم
آن در دست ساخت است.<br /><br />UDDI يک متن مبتنی بر XML را تعريف می کند که
در آن شرکت ها توضيتاتی درباره چگونگی کار وب سرويس شرکتشان و امکانات خود
می دهند. برای تعريف اين اطلاعات از شکل خاصی که در UDDI توضيت داده شده
استفاده می شود. شرکت ها می توانند اين اطلاعات را در UDDI شرکت خود
نگهداری کنند و تنها به شرکت های مورد نظرشان اجازه دستيابی به آنها را
بدهند يا آنها را در مکان عمومی و در اينترنت قرار دهند.<br /><br />بزرگترين
و مهمترين پايگاه UDDI پايگاه UDDI Business Registry يا UBR نام دارد و
توسط کميته UDDI طراتی و اجرا شده است. اطلاعات اين پايگاه در چهار نقطه
نگهداری می شود: مايکروسافت، IBM، SAP و HP. اطلاعاتی که در يکی از چهار
پايگاه تغيير کند در سه تای ديگر نيز اعمال می شود.<br /><br />اطلاعات درون
اين پايگاه ها شبيه دفترچه تلفن است. White Pages که در آنها اطلاعات تماس
شرکت ها و توضيتات متنی آنهاست، Yellow Pages تاوی اطلاعات طبقه بندی شده
شرکتها و اطلاعات درباره توانايی های الکترونيکی آنها می باشد، Green
Pages، تاوی اطلاعات تکنيکی درباره سرويس های آنها و نتوه پردازش اطلاعات
شرکت آنها می باشد.<br /><br />اطلاعات تجاری و سرويس های شرکت ها کاملا ً
طبقه بندی شده است و اجازه می دهد که به راتتی در آنها جستجو کرد. سپس
متخصصان IT می توانند از اين اطلاعات استفاده کرده و شرکت ها را برای
خدمات بهتر به هم متصل کنند. با اين شرت UDDI امکان پياده سازی مدل B2B را
ايجاد می کند و شرکتها می توانند از سرويس های يکديگر استفاده کنند.<br /><br />شرکت
هايی که به UDDI علاقه نشان داده اند قدرتمند هستند و خيلی از آنها از وب
سرويس و استانداردهای آن در متصولات خود استفاده می کنند. NTT
Communications of Tokyo يکی از شرکت هايی است که در تال اضافه کردن
توضيتاتی به ساختار UDDI است. در هر تال تاضر شرکت ها هنوز کمی درباره
وارد کردن خود در پايگاه های عمومی متتاط هستند. اين چيز عجيبی نيست.
شرکتها ابتدا اين امکانات را فقط برای شرکای خود ايجاد می کنند. شرکتهای
بزرگ نيز برای مديريت بر سرويس های خود و اشتراک آنها بين قسمت های مختلف
از اين استاندارد استفاده می کنند. وقتی اين استاندارد به تد بلوغ خود
برسد و کاربران با آن اتساس راتتی بکنند استفاده از آن نيز در مکان های
عمومی فراگير خواهد بود.<br /><br />اين تغيير رويه برای شرکت های بزرگی که
B2B را به روش های قديمی اجرا کرده بودند مشکل است. بعضی نيز اشکال امنيتی
بر اين روش می گيرند و مايل نيستند اطلاعاتشان را بدهند. اما با گذشت زمان
و کامل شدن اين تکنولوژی و درک لزوم استفاده از آن شرکت ها چاره ای جز
استفاده از آن ندارند.</p></span></div></td></tr></tbody></table> ]]>
        
    </content>
</entry>

<entry>
    <title>بدست آوردن مشخصات سیستم در VB.NET</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/-vbnet.html" />
    <id>tag:www.sourcenew.com,2009://1.47</id>

    <published>1388-01-28T07:53:47Z</published>
    <updated>1388-01-28T07:56:15Z</updated>

    <summary> بدست آوردن مشخصات سیستم در VB.NET در این مقاله به بررسی روشهایی پرداخته میشود که به کمک آن می‌توان چند مشخصه از مشخصات سیستم را بدست آورد و از آنها در برنامه‌های کاربردی خود استفاده کرد. این ویژگیها با...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="آموزش" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="بدستآوردنمشخصاتسیستمدرvbnet" label="بدست آوردن مشخصات سیستم در VB.NET" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<table id="Table3" align="center" border="0" cellpadding="0" cellspacing="0" width="100%" height="80%"><tbody><tr><td bordercolor="#ffffff" align="center" valign="top"><h1 class="Title" align="center">
											<span id="BaseMasterPage1__ctl0__ctl2_TitleLBL" dir="rtl" style="color: DarkRed; font-family: Tahoma; font-size: small;">بدست آوردن <a href="http://www.sourcenew.com/">مشخصات سیستم</a> در <a href="http://www.sourcenew.com/">VB.NET</a></span></h1>
									</td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top"><br /></td>
								</tr>
								<tr>
									<td dir="rtl" bordercolor="#ffffff" align="center" valign="top"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top" height="15"><br /></td>
								</tr>
								<tr>
									<td style="height: 11px;" bordercolor="#ffffff" align="center" valign="top" height="11"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top">
										<div dir="rtl" align="justify">
											
											<span id="BaseMasterPage1__ctl0__ctl2_body" class="style4" style="font-family: Tahoma; font-size: small;">در
این مقاله به بررسی روشهایی پرداخته میشود که به کمک آن می‌توان چند مشخصه
از مشخصات سیستم را بدست آورد و از آنها در برنامه‌های کاربردی خود
استفاده کرد. این ویژگیها با استفاده از فضانام System.Environment بدست
می آیند. کلاس Environment شامل اطلاعاتی در مورد محیط کار و پلات‌فرم
حاضر روی سیستم و همچنین وسایلی در این زمینه می باشد. این کلاس نمی‌تواند
به ارث برده شود. <br />
<br />نام ماشین (MachineName):
<br />به کار بردن خصوصیت MachineName از این کلاس نام NetBIOS کامپیوتر
مربوطه را برمی‌گرداند. با بکار بردن کد زیر در رویداد کلیک یک Button
می‌توان نام ماشین را در یک جعبه متن نمایش داد: <br />
<br />
<br />TextBox1.Text = System.Environment.MachineName.ToString 
<br />
<br />
<br />ورژن سیستم عامل (OSVersion):
<br />با استفاده از خصوصیت OSVersion می‌توانید ورژن سیستم عامل کامپیوتر
کاربر را شناسایی کنید. برای مثال با بکار بردن کد زیر روی ویندوز ایکس
پی، عدد 5.1.2600 به عنوان نتیجه برگردانده میشود. <br />
<br />
<br />TextBox1.Text = System.Environment.OSVersion.ToString 
<br />
<br />از موارد استفاده این خصوصیت می‌توان به کنترل نسخه ویندوز قبل از
اجرای برنامه اشاره کرد. به عنوان مثال اگر برنامه شما برای اجرا روی
ویندوز ایکس پی نوشته شده است با کنترل مقدار خروجی این خصوصیت از اجرای
آن روی نسخه‌های پایین‌تر ویندوز جلوگیری شود. <br />
<br />
<br />دایرکتوری سیستم (SystemDirectory):
<br />خصوصیت SystemDirectory، نام دایرکتوری سیستم کاربر را برمی‌گرداند.
من با اجرای این کد در کامپیوترم نتیجهء F:\WinNT\System32 را گرفتم.
(ویندوز ایکس پی من روی درایو F نصب شده است). <br />
<br />
<br />TextBox1.Text = System.Environment.SystemDirectory.ToString 
<br />
<br />
<br />نام دامنه (UserDomainName):
<br />این خصوصیت نام دامنه شبکهء کامپیوتر میزبان را اعلام میکند. مقدار
این خصوصیت به طور معمول همان نام کامپیوتر میزبان است. برنامه شما باید
تحت ویندوز ان تی 3.1 و یا بالاتر از به اجرا درآید؛ درغیراینصورت یک
استثناء برپا خواهد شد (PlatformNotSupportedException). <br />
<br />
<br />TextBox1.Text = System.Environment.UserDomainName.ToString 
<br />
<br />
<br />نام کاربر (UserName):
<br />مقدار خروجی این خصوصیت نام کاربری شخصی است که به سیستم وارد شده
است. این خصوصیت می‌تواند جهت شناسایی کاربر حاضر در سیستم به کار گرفته
شود و از آن برای کنترل دسترسی به برنامه و اهداف امنیتی بهره برد. از
دیگر کاربرد‌های این خصوصیت، سفارشی کردن برنامه برای هر کاربر است. <br />
<br />
<br />TextBox1.Text = System.Environment.UserName.ToString 
<br />
<br />
<br />ورژن CLR ‏(Version):
<br />این خصوصیت نگارش زبان معمول زمان اجرا (Common Language Runtime) را برمی‌گرداند. 
<br />
<br />
<br />TextBox1.Text = System.Environment.Version.ToString 
<br />
<br />
<br />TickCount:
<br />این ویژگی یکی از ویژگیهای جالب ویندوز است که کاربردهای فراوانی
دارد. این خصوصیت یک عدد 32 بیتی را برمی‌گرداند که نشان دهندهء زمانی است
(بر حسب میلی ثانیه) که از روشن شدن سیستم میگذرد. این مقدار از تایمر
سیستم گرفته میشود و در یک متغیر عددی 32-بیتی علامتدار ذخیره میشود. با
توجه به اینکه این مقدار 32 بیت طول دارد، بنابراین اگر سیستم شما 24.9
روز روشن بماند، این مقدار صفر شده و ازنو شروع به شمردن میکند. دقت کنید
این خصوصیت نمی تواند کمتر از 500 میلی ثانیه باشد. با بکار بردن کد زیر
میتوان این مقدار را در یک جعبه متن نمایش داد: <br />
<br />
<br />TextBox1.Text = System.Environment.TickCount.ToString 
<br />
<br />از جمله کاربردهای خصوصیت TickCount میتوان به محدود کردن زمان
استفاده از کامپیوتر توسط کاربر اشاره کرد که میتواند کاربردهای فراوانی
داشته باشد. <br />
<br />نکته: توجه داشته باشید که TickCount با Tick تفاوت دارد. Tick عددی
است با وقفه های به مدت 100 نانو ثانیه که شامل مدت زمانی است که از ساعت
12:00am مورخ 1/1/0001 میگذرد. این خصوصیت را میتوانید با استفاده از
System.DateTime.Now.Ticks بدست بیاورید. </span></div></td></tr></tbody></table> ]]>
        
    </content>
</entry>

<entry>
    <title> راهكارهايي براي‌ افزايش سرعت در بانك‌هاي اطلاعاتي SQL Server </title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/-sql-server.html" />
    <id>tag:www.sourcenew.com,2009://1.46</id>

    <published>1388-01-28T07:51:52Z</published>
    <updated>1388-01-28T15:03:36Z</updated>

    <summary> راهكارهايي براي‌ افزايش سرعت در بانك‌هاي اطلاعاتي SQL Server اشاره : شايد بعضي از شما تاكنون دست‌اندركار يكي دو پروژه مبتني بر بانك‌هاي اطلاعاتي بوده‌ايد و يا اكنون با چنين پروژه‌هايي سروكار داريد. اگر تجربه كار در محيط‌هاي متوسط...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="آموزش" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="راهكارهاييبراي‌افزايشسرعتدربانك‌هاياطلاعاتيsqlserver" label="راهكارهايي براي‌ افزايش سرعت در بانك‌هاي اطلاعاتي SQL Server" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<table id="Table3" width="100%" align="center" border="0" cellpadding="0" cellspacing="0" height="80%"><tbody><tr><td bordercolor="#ffffff" valign="top" align="center"><h1 class="Title" align="center">
											<span id="BaseMasterPage1__ctl0__ctl2_TitleLBL" dir="rtl" style="color: DarkRed; font-family: Tahoma; font-size: small;">راهكارهايي براي‌ افزايش سرعت در <a href="http://www.sourcenew.com/">بانك‌هاي اطلاعاتي</a> <a href="http://www.sourcenew.com/">SQL Server</a> </span></h1>
									</td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" valign="top" align="center"><br /></td>
								</tr>
								<tr>
									<td dir="rtl" bordercolor="#ffffff" valign="top" align="center"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" valign="top" align="center" height="15"><br /></td>
								</tr>
								<tr>
									<td style="height: 11px;" bordercolor="#ffffff" valign="top" align="center" height="11"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" valign="top" align="center">
										<div dir="rtl" align="justify">
											
											<span id="BaseMasterPage1__ctl0__ctl2_body" class="style4" style="font-family: Tahoma; font-size: small;"><p align="right"></p><table width="100%" align="center" border="0" cellpadding="3"><tbody><tr><td colspan="2" valign="top" align="middle"><div id="ArticleSpec" align="right"><p class="text2" dir="rtl" align="right"><font face="Arial, Helvetica, sans-serif"><strong><font size="2">اشاره : </font></strong></font><br /><span class="text"><span id="Description">شايد
بعضي از شما تاكنون دست‌اندركار يكي دو پروژه مبتني بر بانك‌هاي اطلاعاتي
بوده‌ايد و يا اكنون با چنين پروژه‌هايي سروكار داريد. اگر تجربه كار در
محيط‌هاي متوسط (مثلاً با يكصد كاربر) يا بزرگ‌ را نيز داشته باشيد، قطعاً
با مسائل و مشكلات مربوط به كاهش سرعت ناشي از افزايش تعداد كاربران يا
حجم پردازشي آن‌ها مواجه شده‌ايد. اين مقاله با استناد به منابع
مايكروسافتي، راهكارهايي را براي بهبود سرعت و كارايي سيستم در بانك‌هاي
اطلاعاتي با تعداد كاربر و حجم پردازش زياد مورد بررسي قرار مي‌دهد. شايان
ذكر است كه در تمامي نمونه‌هاي مورد اشاره، بانك‌هاي اطلاعاتي مبتني بر
محصول مايكروسافت يعني <a href="http://www.sourcenew.com/">SQL Server2000</a> مدنظر قرار گرفته است. طبق
بررسي‌هايي كه كارشناسان مايكروسافت انجام داده‌اند، كارايي يك سيستم بانك
اطلاعاتي به پنج عامل مختلف بستگي دارد كه به ترتيب اهميت عبارتند از:
برنامه نوشته شده، پايگاه داده موردنظر، سخت‌افزار سرور يا كلاينت،
تنظيمات و نسخه مورد استفاده SQL Server و سيستم‌عامل ويندوز. همان‌طور كه
حتماً مي‌بينيد، ساختار پايگاه داده، براي كارايي سيستم، در رتبه دوم
اهميت قرار‌دارد. بنابراين ايجاب مي‌كند كه در زمان تحليل و طراحي سيستم،
به‌صورت ويژه‌ به بانك اطلاعاتي در‌حال ساخت توجه شود و رابطه بين اين
بانك و برنامه‌هاي كاربردي و همچنين رابطه بين اجزاي مختلف درون بانك، به
بهترين شكل ممكن طراحي و پياده‌سازي شود. </span></span></p><br /></div></td></tr><tr><td colspan="2" height="13"><div dir="rtl"><div align="justify"><span id="Text1"><p align="justify"><font size="2" face="Tahoma"><font size="3" face="Arial"><strong>توسعه&nbsp; <br /></strong></font>به‌طور
كلي براي افزايش سرعت يك بانك اطلاعاتي مي‌توان به دو روش اقدام كرد. در
واقع پنج عامل مورد اشاره در بالا‌، به دو دسته طولي و عرضي تقسيم‌بندي
مي‌شوند. در توسعه طولي كه در اصطلاح انگليسي به Scalp up&nbsp;نيز شناخته
مي‌شود، مدير سيستم با صرف هزينه‌، به ارتقاي سخت‌افزار (مثل پردازنده‌ها
يا هاردديسك‌ها) يا به‌طوركلي ايجاد شبكه‌اي سريع‌تر اقدام مي‌نمايد يا
مثلاً سيستم‌عامل خود را به نسخه‌اي جديدتر و پايدارتر ارتقا مي‌دهد. اما
در روش عرضي (Scale out) تقريباً با حفظ همان سخت‌افزار و ساختار شبكه، به
بهينه‌سازي روابط موجود ميان عناصر دخيل در سرعت مثل برنامه‌هاي كاربردي،
بانك اطلاعاتي و سرور اقدام مي‌كند. </font></p><p align="justify"><font size="2" face="Tahoma"><strong><font size="3" face="Arial">توسعه طولي (Scale up)</font></strong>&nbsp; <br />هدف
اين مقاله پرداختن به توسعه عرضي براي بهره‌برداري بهينه از امكانات موجود
است. اما قبل از آن، جادارد به‌صورت خلا‌صه و فهرست‌وار به توسعه طولي و
راه‌حل‌هاي آن نيز پرداخته شود تا زمينه براي بررسي‌هاي بيشتر در آينده
فراهم گردد. <br /><br /><font size="3" face="Arial"><strong>راه‌حل يكم:</strong></font>
افزايش حافظه مورد استفاده SQL Server&nbsp;از يك به سه گيگابايت. اين كار را
بايد با دستكاري در فايلBoot.ini سرور 2000 يا 2003 كه SQL Server&nbsp;در آنجا
قرار دارد، انجام دهيد. براي اطلاع از چگونگي انجام‌دادن اين كار، به سايت
پشتيباني مايكروسافت رجوع كنيد نشاني(</font><a href="http://support.microsoft.com/"><font size="2" color="#0000ff" face="Tahoma"><u>http://support.microsoft.com</u></font></a><font size="2" face="Tahoma">) و در آنجا عبارت AWE SQLServer&nbsp;را جستجو كنيد تا مقالاتي كه در اين زمينه وجود دارد، در دسترس شما قرار گيرد. <br /><br /><font size="3" face="Arial"><strong>راه‌حل دوم:</strong></font> ارتقاي سيستم‌عامل ويندوز 2000 به 2003 كه در فرايند caching، سيستم‌عاملي پايدارتر و هوشمندتر قلمداد مي‌شود. <br /><br /><strong><font size="3" face="Arial">راه‌حل سوم:</font></strong>
استفاده از پردازنده‌هاي Xeon&nbsp;به جاي پنتيوم 4 در سرور. اين پردازنده‌ها
به دليل ويژگيhyper threading، مي‌توانند سرعت پردازش اطلاعات در سمت سرور
را به دو برابر افزايش دهند. <br /><br /><font size="3" face="Arial"><strong>راه‌حل چهارم:</strong></font>
هاردديسك‌هاي اسكازي با 15‌هزار دور در دقيقه و سرعت سه مگابيت در ثانيه و
يا Sata&nbsp;با 10‌هزار دور در دقيقه و دو مگابيت در ثانيه نسبت به
هاردديسك‌هاي IDE&nbsp;با 7500 دور در دقيقه و يك مگابيت در ثانيه از عملكرد
بهتري برخوردارند.پس درصورت امكان، از اين ادوات ذخيره‌سازي در سرور بانك
اطلا‌عاتي استفاده كنيد.<br /><br /><font size="3" face="Arial"><strong>&nbsp;راه‌حل پنجم:</strong></font>
جداسازي محل ذخيره فايل‌هاي داده‌اي بانك اطلاعاتي (mdf)&nbsp;و فايل‌هاي لاگ
(ldf)&nbsp;برروي دو هاردديسك مختلف يا دو ديسك مختلف از يك RAID.&nbsp;معمولاً براي
نگهداري mdf&nbsp;استفاده از RAID1 و براي ldf&nbsp; استفاده از RAID5 توصيه مي‌شود.
<br /><br />با جداسازي اين فايل‌ها از يكديگر، عمل ايجاد لاگ، وقفه‌اي در
خواندن و نوشتن اطلاعات بر روي هاردديسكي كه حاوي فايل‌هاي داده‌اي
mdf&nbsp;است، ايجاد نمي‌كند. <br /><br /><strong><font size="3" face="Arial">راه‌حل ششم:</font></strong>
راه‌حل آخر و در واقع مشكل‌ترين راه، تقسيم بانك اطلاعاتي (در صورت لزوم)
به دو بانك جدا از هم و بر روي دو سرور مختلف است. به عنوان مثال، فرض
كنيد كه عمليات روزانه سيستم شما به دو دسته تقسيم مي‌شود: دسته يكم
عملياتي است كه طي آن بايد از آخرين اطلاعات موجود بر روي سيستم استفاده
شود و هرگونه تغيير نيز بايد فوراً&nbsp; در همان لحظه بر روي بانك سيستم‌ها
(جداول مربوط به آن‌ها كه به <br />online transactional Processing) OLTP) مشهورند،) اعمال شود.<br /><br />دسته
دوم نيز شامل عملياتي است كه طي آن مي‌توان از اطلاعات چند ساعت يا چند
روز پيش نيز استفاده كرد و لزومي به داشتن آخرين اطلاعات به صورت لحظه‌اي
نيست. به عنوان نمونه فرض كنيد تعدادي از گزارش‌هاي سيستم مربوط به تحليل
آماري فرايندهاي مختلف ماه پيش است. بنابراين بايد تمهيداتي انديشيده شود
تا تهيه اين گزارش‌ها -كه البته ارزش آني ندارند، اما به دليل بازه زماني
و نوع تحليل آن‌ها، منابع زيادي از سيستم براي خواندن اطلاعات انبوه و
تجزيه و تحليل صرف مي‌شود، بايد بر روي سرور دومي در شبكه كه به<br />سيستم‌هاي online Analytical Processing) OLAP) مشهورند قرار گيرند تا در كار كساني كه مشغول&nbsp; كار با OLTP&nbsp; هستند، خللي ايجاد نشود. <br /><br />بنابراين
سرور دومي را در شبكه در نظر بگيريد و كپي بانك اطلاعاتي موجود در سرور
اول را به سرور دوم انتقال دهيد. سپس با استفاده از روش Replication&nbsp;سيستم
را طوري تنظيم كنيد تا در مواقع خلوت‌بودن ترافيك سيستم (مثلاً نيمه شب)
اطلاعات Upgrade&nbsp;شده آن روز را از سرور اول به سرور دوم كپي كند. كليه
برنامه‌هايي كه با OLAP&nbsp; كار مي‌كنند را به بانك مشابه، اما با آدرس سرور
دوم ارجاع دهيد.<br />&nbsp;<br />براي كسب اطلاعات بيشتر در زمينه نحوه انجام‌دادن
Replication، عبارت مذكور را در سايت ماهنامه شبكه جستجو كنيد. تا به
مقالا‌تي در اين زمينه دست پيدا كنيد.</font></p><p><font size="2" face="Tahoma"><font size="3" face="Arial"><strong>توسعه عرضي (Scale out)</strong></font>&nbsp; <br /></font></p><p></p><table style="width: 269px; height: 96px;" align="left" border="1" bordercolor="#000000" cellpadding="1" cellspacing="0"><tbody><tr><td bgcolor="#000000"><p align="center"><font size="2" color="#ffffff" face="Arial"><strong>نام خانوادگي</strong></font></p></td><td bgcolor="#000000"><p align="center"><font size="2" color="#ffffff" face="Arial"><strong>نام</strong></font></p></td><td bgcolor="#000000"><p align="center"><font size="2" color="#ffffff" face="Arial"><strong>شماره تامين اجتماعي بيمه شده</strong></font></p></td><td bgcolor="#000000"><p align="center"><font size="2" color="#ffffff" face="Arial"><strong>شماره سريال بيمه شده</strong></font></p></td></tr><tr><td><p align="center"><font size="2" face="Arial"><strong>ب</strong></font></p></td><td><p align="center"><font size="2" face="Arial"><strong>الف</strong></font></p></td><td><p align="center"><font size="2" face="Arial"><strong>ايندكس خوشه‌اي يا خاصيت منحصر به فرد</strong></font></p></td><td><p align="center"><font size="2" face="Arial"><strong>كليد اوليه ايندكس غيرخوشه‌اي</strong></font></p></td></tr></tbody></table><p align="justify"><font size="2" face="Tahoma">راه‌هاي
موجود در توسعه عرضي در واقع سريع‌ترين راه‌حل‌هاي افزايش سرعت در
بانك‌هاي اطلاعاتي را تشكيل مي‌دهند. برخي از اين راه‌ها فقط با يك بار
استفاده، اثر دايمي خود را روي سيستم به جا مي‌گذارند. اما برخي ديگر بايد
به عنوان يك الگوي دوره‌اي در مراحل زماني مناسب ازسوي مدير سيستم اجرا
شود. اين راه‌ها در واقع جزئي از دستورالعمل‌هاي نگهداري و پشتيباني سيستم
محسوب مي‌شوند. در ادامه&nbsp; به بررسي آن‌ها مي‌پردازيم:<br /><br />1 - از ساخت
جداولي كه فاقد كليد اوليه (Primary key)&nbsp;باشند، خودداري كنيد. كليد اوليه
علاوه بر جلوگيري از&nbsp; ورود اشتباه اطلاعات از سوي كاربر، به دليل داشتن
خاصيت منحصر به‌فرد بودن (Unique)&nbsp;به سريع‌تر پيدا‌شدن ركورد موردنظر از
همان جدول كمك شاياني مي‌كند. تا آنجا كه براي سيستم امكان دارد براي كليد
اوليه از فيلدهاي عددي استفاده كنيد. <br /><br />استفاده از فيلدهاي رشته‌اي
(string)&nbsp;مثلchar ياvarchar به‌عنوان كليد اوليه، كمي كندتر از فيلدهاي
عددي است. از انتخاب فيلدهاي رشته‌اي با طول زياد و يا فيلدهايي مثل Memo
،Text&nbsp;و Picture&nbsp;به عنوان كليد اوليه نيز اجتناب كنيد. <br /><br />2 - تمام
كليدهاي خارجي (Foreign key)&nbsp;قابل تعريف در بانك را تعريف كنيد. وجود
كليدهاي خارجي نيز علاوه بر جلوگيري از اشتباه كاربر در واردكردن يا حذف
اطلاعات، موجب مي‌شود هنگام لينك شدن (join)&nbsp;جداول مادر و فرزند از طريق
كليدهاي خارجي، سيستم سرعت بيشتري را در انجام دستورات Select&nbsp;شما از خود
نشان دهند. <br /><br />3 - همان‌طور كه مي‌دانيد ايندكس‌ها در دو نوع
خوشه‌اي (cluster)&nbsp;و غيرخوشه‌اي (Non cluster) قابل ساخت هستند. ايندكس‌ها
باعث افزايش سرعت خواندن اطلاعات به‌وسيله دستور Select&nbsp;مي‌شوند. <br />ما
تعريف بي‌رويه آن‌ها در سيستم نيز باعث كاهش سرعت اجراي دستورات فرايندي
مثل Insert ،Update&nbsp;و Delete&nbsp; مي‌شود. بنابراين سعي كنيد ايندكس‌هاي ضروري
را در سيستم تعريف كنيد. اما در اين راه دست و دلبازي بي‌مورد از خود نشان
ندهيد. به عنوان مثال، فرض كنيد در يك شعبه اداره تأمين اجتماعي، جدولي
ويژه تعريف بيمه‌شدگان به شكل زير وجود دارد.&nbsp;&nbsp; <br /><br /></font></p><p></p><table style="width: 191px; height: 104px;" align="left" border="1" bordercolor="#000000" cellpadding="1" cellspacing="0"><tbody><tr><td bgcolor="#000000"><p align="center"><font size="2" color="#ffffff" face="Arial"><strong>مبلغ</strong></font></p></td><td bgcolor="#000000"><p align="center"><font size="2" color="#ffffff" face="Arial"><strong>تاريخ</strong></font></p></td><td bgcolor="#000000"><p align="center"><font size="2" color="#ffffff" face="Arial"><strong>شماره سريال</strong></font></p></td></tr><tr><td><p align="center"><font face="Arial"><strong>1</strong></font></p></td><td><p align="center"><font size="2" face="Arial"><strong>جزء دوم كليد اوليه</strong></font></p></td><td><p align="center"><font size="2" face="Arial"><strong>جزء اول كليد اوليه</strong></font></p></td></tr><tr><td><p align="center"><font size="2" face="Arial"><strong>1</strong></font></p></td><td><p align="center"><font size="2" face="Arial"><strong></strong></font>&nbsp;</p></td><td><p align="center"><font size="2" face="Arial"><strong>كليد خارجي از جدول قبل</strong></font></p></td></tr><tr><td><p align="center"><font size="2" face="Arial"><strong>1</strong></font></p></td><td><p align="center"><font size="2" face="Arial"><strong>جزئي از ايندكس خوشه اي</strong></font></p></td><td><p align="center"><font size="2" face="Arial"><strong>جزئي از ايندكس خوشه اي</strong></font></p></td></tr></tbody></table><p align="justify"><font size="2" face="Tahoma">جدولي نيز براي نگهداري وجه حق بيمه از بيمه‌شدگان نيز تعريف شده است. <br /><br />همان‌طور
كه مشاهده مي‌كنيد، ايندكس نوع خوشه‌اي به فيلدي داده شده كه نسبت به بقيه
فيلدها در يك جدول كاربرد بيشتري دارد. چرا كه اين نوع ايندكس نسبت به نوع
غيرخوشه‌اي سرعت بيشتري دارد. در ضمن در هر جدول از بانك اطلاعاتي شما فقط
قادر به تعريف يك ايندكس خوشه‌اي هستيد كه انتخاب فيلد آن اهميت زيادي
دارد. بنابراين لزومي ندارد فيلدي كه كليد اوليه است، حتماً به عنوان
ايندكس خوشه‌اي انتخاب شود. <br /><br />نكته مهم ديگر اين است كه لا‌زم است
تمام كليدهاي اوليه جداول ايندكس داراي باشند (خوشه‌اي يا غيرخوشه‌اي)
نكته ديگر در زمان ساخت ايندكس‌ها فاكتور پرشدن (Fill Factor)&nbsp;آن‌ها است.
اين فاكتور در واقع بيانگر ميزان فضاي مياني است كه بايد براي ركوردهايي
كه در آينده درج يا حذف مي‌شوند، خالي نگه داشته شود. بنابراين اگر احساس
مي‌كنيد جدول شما به‌طور مداوم مورد عمليات حذف و درج (Insert،‌Delete)
قرار مي‌گيرد، اين فاكتور را پايين (مثلاً 30 درصد) انتخاب كنيد. اما اگر
صرفاً عمليات درج بر روي يك جدول انجام مي‌گيرد و ميزان حذف اطلاعات از آن
بسيار كم است، مي‌توانيد اين ميزان را به ارقام بالاتر مثلاً 90 درصد
افزايش دهيد. زيرا اين نوع جداول نيازي به داشتن فضاي خالي مياني براي
ركوردهايي كه در آينده جانشين ركوردهاي حذف شده مي‌شوند، ندارد. <br /><br />اين
مسئله براي ايندكس‌هايي كه برروي ديدها (Indexed Views)&nbsp;ساخته مي‌شوند نيز
صادق است. به‌طوركلي گذاشتن ايندكس برروي ديدها به افزايش سرعت آن‌ها كمك
مي‌كند. در اين حالت، كليه مطالب مذكور از جمله سياست استفاده از
ايندكس‌هاي خوشه‌اي و غيرخوشه‌اي و همچنينFill Factor&nbsp;در جداول، در مورد
ديدها نيز عيناً بايد رعايت گردد. <br /><br />4 - در هنگام نوشتن دستورات
Select يا در هنگام ساختن ديدها، از استفاده بي‌مورد از پارامترهاي پردازش
مثلDistinct و LIKE order by و لينك‌هاي خارجي (Outer join)&nbsp;اجتناب كنيد.
در صورت استفاده از اين پارامترها، مطمئن باشيد كه گذاشتن آن‌ها كاملاً
ضروري است و چاره ديگري نداريد. <br /><br />5 - از واگذاري پردازش‌هاي رياضي يا آماري سنگين و مداوم به سرور بانك اطلاعاتي بپرهيزيد. مثلا‌ً به دستور زير نگاهي بيندازيد. <br /><table dir="ltr" width="95%" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>SELECT( a*( b+c&nbsp;))&nbsp;+( d* E+F))&nbsp; %G/H From ... WHERE ...</td></tr></tbody></table></font></p><p align="justify"><font size="2" face="Tahoma"><br />به‌جاي
اين‌كار، مي‌توانيد ابتدا با استفاده از يك Select&nbsp;معمولي مثل Select a ,b
,c ,d ,E ,F ,G ,h&nbsp; فيلدهاي موردنظر را در حافظه كلاينت لود كنيد و سپس
عمليات رياضي مذكور را در همان جا انجام دهيد. با اين كار پردازشي كه سرور
بايد مثلاً براي 50 كلاينت در عرض چند دقيقه انجام دهد، بين آن 50 كلاينت
تقسيم مي‌شود و در واقع هر كلاينت فقط سهم پردازشي مربوط به خود را انجام
مي‌دهد. <br /><br />6 - گاهي عمل اجتماع بين دو Select&nbsp; توسط دستور Union&nbsp;به
شدت بر عملكرد و سرعت سيستم اثر منفي مي‌گذارد. بنابراين در صورت امكان به
جاي استفاده از روش مذكور، از روش‌هاي ديگري كه هدفتان را برآورده نمايد،
استفاده كنيد. <br /><br />7 - سعي نماييد فيلدهايي كه از نظر مقدار و ارزش
با يكديگر مقايسه مي‌شوند، از يك جنس (type)&nbsp;باشند. در غير اين‌صورت
سيستم‌مجبور مي‌شود به طور ضمني، عمل تبديل داده را انجام دهد كه كمي
برايش وقت‌گير است. به مثال زير توجه كنيد و فرض بگيريد فيلد customer
ID&nbsp;در جدول customers&nbsp;از جنس nchar تعريف شده است.&nbsp;<br /><br /><table dir="ltr" width="95%" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>Declare@custID char&nbsp;(5)<br />Set @ CustID =' FDLKO'<br />Select * From Customers where customerID=@custID</td></tr></tbody></table></font></p><p align="justify"><font size="2" face="Tahoma"><br />8
- تاحد ممكن از به كار بردن توابع (چه پيش ساخته توسط SQL Server&nbsp;و چه
ساخته شده توسط كاربر) در قسمت WHERE يا order by&nbsp;اجتناب كنيد. مثال زير
نمونه‌اي از اين مورد است: <br /><br /><table dir="ltr" width="95%" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td>Select * Form orders Where DateAdd (Day, 15, orderdata) = '2005/23/07'</td></tr></tbody></table></font></p><p align="justify"><font size="2" face="Tahoma"><br />9
- در زمان نوشتن تريگر (trigger)&nbsp;بر روي جداول يك بانك اطلاعاتي، از نوشتن
تعداد زيادي دستورالعمل در آن‌ها خودداري كنيد. به عبارت ديگر تريگرها را
تا حد امكان كوتاه كنيد و دستورالعمل‌ پياد‌ه‌سازي آن‌ها را كم نماييد. <br />10
- در زمان ساخت كرسر (cursor)&nbsp;درون توابع، روال‌ها و تريگرها از
پارامترهاي Forward only&nbsp;يا read only و همچنين local&nbsp;استفاده كنيد تا SQL
Server&nbsp;با دانستن اين نكته كه شما قصد تغيير داده‌ها در كرسر موردنظر را
نداريد، تغيير يافتني بودن آن‌ها را درنظر نگيرد و آن را براي شما سريع‌تر
بسازد. <br /><br />11 - در صورتي كه تكه‌اي از برنامه شما به ساخت يك جدول
موقت (temporary table)&nbsp;نياز دارد، اين كار بايد با ظرافت خاصي صورت
بگيرد. اصولا SQL Server&nbsp;براي اجتناب برنامه‌نويسان از ساخت جداول موقت،
از يك نوع داده(Data type)&nbsp;خاص به نام Table پشتيباني مي‌كند كه مزيت
استفاده از آن اين است كه به‌جاي هاردديسك، در حافظه رم قرارگرفته است و
در نتيجه نسبت به جداول موقت سرعت بيشتري دارد. <br /><br />اما به ياد داشته
باشيد كه استفاده بي‌رويه از اين نوع داده، حافظه زيادي را صرف مي‌كند كه
مي‌تواند باعث كاهش كارايي سيستم شود. بنابراين اگر احساس مي‌كنيد تعداد
جداول موقت، ركوردهاي آن‌ها و زمان استفاده از آن‌ها كم است، از اين نوع
داده استفاده كنيد. در غير اين‌صورت، راه‌حل جدول موقت را انتخاب كنيد.<br />&nbsp;<br />12-&nbsp;
قفل‌گذاري بر روي ركوردهايي كه در حال خواندن، درج شدن، حذف شدن يا تغيير
كردن هستند، هميشه از مباحث مهم بانك‌هاي اطلاعاتي بوده‌است. همان‌طور‌كه
مي‌دانيد يك فرايند (Transaction)&nbsp;شامل يك يا چند دستورالعمل SQL&nbsp;است كه
يا بايد همگي به صورت موفقيت‌آميز اجرا شوند (committed)&nbsp;يا در صورت ايجاد
خطا در زمان اجراشدن يكي، اجراي بقيه نيز منتفي شود (Rollbacked).<br />&nbsp; <br /><table style="width: 100px;" align="left" border="0" cellpadding="1" cellspacing="3"><tbody><tr><td bgcolor="#eaeaea"><a href="http://www.shabakeh-mag.com/Data/Gallery/s60_bank_1.jpg"><img src="http://www.shabakeh-mag.com/Data/Gallery/s60_bank_1_s.jpg" /></a></td></tr><tr><td bgcolor="#eaeaea"><p align="right"><font size="2" face="Arial"><strong>ايندكس
گذاري برروي ديده ها(Indexed Views) يكي از بهترين راههاي فوري جهت افزايش
سرعت جستجو بر روي ديدهااست. در حالت عادي گزينه Manage Indexes بر روي
ديدها قابل انتخاب نيست مگر آنكه اولا كليه جداول يا ديدهاي موجود در آن،
خود داراي ايندكس باشد و دوم اينكه كليه ديدهاي موجود در&nbsp;آن و هم خود ديد
مورد نظر با دستور زير ساخته&nbsp;شده&nbsp;باشند.<br />Create View....Whit Schema Binding AS.......</strong></font>&nbsp;</p></td></tr></tbody></table>فرايند
به دو صورت قابل پياده‌سازي است. اين كار يا با استفاده از دستورات Begin
trans&nbsp;و Committrans&nbsp;انجام مي‌شود كه به آن حالت صريح (Explicit)&nbsp;مي‌گويند
يا به صورت ضمني (Implicit)&nbsp;صورت مي‌گيرد كه در آن اثري از دو دستور مذكور
ديده نمي‌شود و هر دستور SQL&nbsp;يك فرايند مجزا به حساب مي‌آيد. در هر دو روش
ركوردهايي كه تحت‌تأثير دامنه فرايند قرار مي‌گيرند، توسط سيستم قفل
مي‌گردند و براي ديگر كاربران نيز غيرقابل استفاده مي‌شوند و در نتيجه
باعث كاهش سرعت كار آن‌ها به دليل ايجاد انتظار براي آزاد شدن ركوردها
مي‌شود.<br />&nbsp;<br />بنابراين براي رسيدن به حداكثر كارايي سيستم، بايد از
ايجاد قفل‌هاي بي‌مورد بر روي ركوردهاي جداول بانك اطلاعاتي جلوگيري كرد.
اين كار با استفاده از دستور SET Transaction Isolation Level Read
Uncommitted&nbsp;براي فرايندهاي صريح (قبل از شروع فرايند، يعني قبل از دستور
(begin Trans&nbsp; و يا استفاده از دستور WITH NOLOCK&nbsp; براي فرايندهاي ضمني
(پس از قسمت From&nbsp;هر دستور SQL) قابل انجام است. در مورد مسئله فرايندها و
انواع قفل‌گذاري مطالب خواندني زيادي در سايت مايكروسافت وجود دارد كه
درصورت تمايل مي‌توانيد به آن‌ها نيز مراجعه كنيد. <br /><br />13 - روال‌هاي
ذخيره شده (stored Procedures)&nbsp;پس از هر اجرا، به ازاي هر دستورالعملي كه
اجرا مي‌كنند،&nbsp; جهت اطلاع برنامه فراخوان (كلاينت) از موفقيت‌آميز بودن
اجراي آن دستور SQL، پيغامي را به سمت آن برنامه مي‌فرستند. اين مسئله
باعث افزايش ترافيك شبكه در اثر فرستادن مداوم پيغام ازSP&nbsp;به سمت كاربر
مي‌شود. با تايپ دستور زير در ابتداي يكSP، مي‌توانيد آن را از انجام اين
كار منع كنيد: <br />SET NOCOUNT ON <br /><br /><strong><font size="3" face="Arial">نتيجه‌گيري‌<br /></font></strong>مطالب
فوق تنها قسمتي از راهكارهاي قابل انجام براي رسيدن به‌سرعت و بازدهي
مناسب در بانك‌هاي اطلا‌عاتي مبتني بر SQL Server&nbsp;است. در ضمن‌ بايد اين
نكته را هم درنظر داشت كه اصولا‌ً در سيستم‌هاي بزرگ اطلا‌عاتي تحت شبكه،
توپولوژي و نوع اجزاي موجود در شبكه از اهميت بسيار زيادي در تعيين سطح
كارايي يك بانك اطلا‌عاتي برخورداراست. گاهي حتي در حالي‌كه بهترين طراحي
و پيكربندي SQL Server&nbsp;براي يك بانك اطلا‌عاتي انجام شده، يك اشتباه كوچك
در سطح شبكه مي‌تواند تمام زحمات را بر ‌باد دهد يا مثلا‌ً يك سهل‌انگاري
در نوشتن روال‌هاي ذخيره شده يا تريگرها مي‌تواند سيستم را به‌يك لوپ
(Loop)&nbsp;پردازشي بي‌نهايت ببرد و باعث افت شديد سرعت اجراي برنامه‌ها شود.
بنابراين در اين‌گونه سيستم‌ها، استفاده بجا و مناسب از منابع سيستم و
شبكه و دقت در طراحي و پياده‌سازي جداول، ديدها، روال‌هاي ذخيره‌شده و
تريگرها بسيار مهم&nbsp; و حياتي است.</font></p></span></div></div></td></tr></tbody></table></span></div></td></tr></tbody></table> ]]>
        
    </content>
</entry>

<entry>
    <title> تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي </title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/post-7.html" />
    <id>tag:www.sourcenew.com,2009://1.45</id>

    <published>1388-01-28T07:45:52Z</published>
    <updated>1388-01-28T07:49:26Z</updated>

    <summary><![CDATA[ تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي اين انقلاب در اقتصاد امروز و نظم جامعه، به همان ميزان&nbsp; انقلاب صنعتي در قرن 19 تأثير دارداين تحولات قادر است الگوي فكري و فرم زندگي هر فرد را تغيير دهد.انقلاب كامپيوتر...]]></summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="آموزش" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="تكنيكهاوزبانهايبرنامهنويسيهوشمصنوعي" label="تكنيك ها وزبانهاي برنامه نويسي هوش مصنوعي" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<table id="Table3" align="center" border="0" cellpadding="0" cellspacing="0" width="100%" height="80%"><tbody><tr><td bordercolor="#ffffff" align="center" valign="top"><h1 class="Title" align="center">
											<span id="BaseMasterPage1__ctl0__ctl2_TitleLBL" dir="rtl" style="color: DarkRed; font-family: Tahoma; font-size: small;">تكنيك ها و<a href="http://www.sourcenew.com/">زبانهاي برنامه نويسي</a> <a href="http://www.sourcenew.com/">هوش مصنوعي</a></span></h1>
									</td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top"><br /></td>
								</tr>
								<tr>
									<td dir="rtl" bordercolor="#ffffff" align="center" valign="top"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top" height="15"><br /></td>
								</tr>
								<tr>
									<td style="height: 11px;" bordercolor="#ffffff" align="center" valign="top" height="11"><br /></td>
								</tr>
								<tr>
									<td bordercolor="#ffffff" align="center" valign="top">
										<div dir="rtl" align="justify">
											
											<span id="BaseMasterPage1__ctl0__ctl2_body" class="style4" style="font-family: Tahoma; font-size: small;"><p dir="rtl" style="line-height: 120%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA">اين
انقلاب در اقتصاد امروز و نظم جامعه، به همان ميزان&nbsp; انقلاب صنعتي در قرن
19 تأثير دارداين تحولات قادر است الگوي فكري و فرم زندگي هر فرد را تغيير
دهد.</span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA">انقلاب كامپيوتر توان ذهني ما را گسترش مي دهد.</span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA">عملكرد اولية برنامه نويسي هوش مصنوعي</span></font><span style="font-family: Tahoma;" lang="AR-SA"> </span><font face="Tahoma"><span dir="ltr">(AI)</span></font><span style="font-family: Tahoma;"> </span><font size="2" face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA">ايجاد
ساختار كنترلي مورد لزوم براي محاسبه سمبوليك است خصوصيات اين ساختارها به
مقدار زيادي موجب تشخيص خصوصياتي مي شود كه يك زبان كاربردي مي بايستي
فراهم كند.</span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2">در اين مقدمه به يك سري خصوصيات مورد نظر براي زبان برنامه نويسي سمبوليك مي پردازيم و زبانهاي برنامه نويسي </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">LISP </font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2">و </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">PROLOG</font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2"> را معرفي خواهيم كرد.</font></span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين دو زبان علاوه بر اين كه از مهمترين زبانهاي مورد استفاده در هوش مصنوعي هستند، خصوصيات </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">semantic</font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">syntactic</font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2"> آنها نيز باعث شده كه آنها شيوه ها و راه حل هاي قوي براي حل مسئله ارئه كنند.</font></span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2">تأثير قابل توجه اين زبانها بر روي توسعه </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">AI</font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2"> از جمله توانائي آنها به عنوان «ابزارهاي فكر كردن» مي باشد كه از جمله نقاط قوت آنها در زبانهاي برنامه نويسي مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2">همان طور كه هوش مصنوعي مراحل رشد خود را طي مي كند زبانهاي </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">LISP </font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2">و </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">PROLOG</font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بيشتر مطرح مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين زبانها كار خود را در محدودة توسعه و </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">prototype</font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2"> سازي سيستم هاي </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">AI</font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2"> در صنعت و دانشگاهها دنبال مي كنند.</font></span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2">اطلاعات در مورد اين زبانها به عنوان بخشي از مهارت هر برنامه نويس </font></span><span dir="ltr" style="line-height: 120%;"><font size="2">AI</font></span><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي باشد ما به بررسي اين دو زبان در هوش مصنوعي مي پردازيم.</font></span></font></p><p dir="rtl" style="line-height: 120%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 120%; font-family: Nazanin;" lang="AR-SA">آنــــچه را كـــه نمي دانيم موجب دردسر و گرفتاري ما نخواهد شد، بلكه دردسرها از دانسته ها سرچشمه مي گيرند.</span></font></p><h4 dir="rtl" style="line-height: 120%; text-align: right;" align="left"><font size="2" face="Tahoma"><span dir="ltr">W.ROGERS</span></font></h4><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><a href="http://www.sourcenew.com/">زبان</a> ، <a href="http://www.sourcenew.com/">شناخت و خلاصه پردازي</a> </span></b></font></p><p class="MsoBodyText" dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">توانايي
شكل گيري خلاصه برداري از تجربيات از توانمند ترين و اساسي ترين توانائي
هاي ذهن انسان است خلاصه پردازي به ما اين اجازه را مي دهد كه به فهم
جزئيات از يك محدوده ي كلي اطلاعات مربوط به يك خصوصيت كلي سازمان و رفتار
برسيم . اين خلاصه ها به ما اجازه شناخت و درك كامل موارد دريافت شده در
حوزه خاص را مي دهند . اگر ما وارد يك خانه شويم كه به خوبي ساخته شده
باشد ، راههاي خود را به اطراف پيدا خواهيم كرد . ساختار خصوصيات اطاق
نشيمن ، اطاق خواب ،‌آشپزخانه و حمام عموماً از ويژگيهاي يك مدل خانة
استاندارد مي باشد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">خلاصه
پردازي به ما حس شناخت خانه هاي متفاوت را مي دهد . يك تصوير ممكن است
بياني قوي تر از هزاران كلمه داشته باشد ، اما يك خلاصه مشخصاً بيان كنندة
خصوصيات مهم يك كليت از نوع تصوير است . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">وقتي
كه ما به تئوري براي توصيف كلاس هاي يك پديده مي پردازيم ، خصوصيات و
ويژگيهاي كمي و كيفي مربوط به كلاس از كل جزئيات خلاصه مي شود . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">كه اعضاء به خصوص خود را مشخص مي كند . اين كاهش جزئيات به وسيله قدرت توصيف و پيش بيني يك نظريه ارزشمند جبران مي شود . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">خلاصه
سازي يكي از ابزارهاي اساسي شناخت و ارزيابي كليت هاي جهان اطراف ما و
همچنين ساختار ذهني ما است . در حقيقت اين پروسه به طور مداوم براساس دانش
و اطلاعات صورت مي گيرد . دانش و اطلاعا نيز در لايه ها و بخش هايي از
خلاصه پردازي ساخته مي شود كه از مكانيسم هايي كه ساختار را فشرده ساخته و
از حس اوليه به سمت يك سري تئوري هاي علمي سوق داده مي شود و در نهايت
بيشتر اين ايده ها دربارة ايده هاي ديگر و نشأت گرفته از آنها مي باشد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">خلاصه پردازي طبقه بندي شده (سلسله مراتبي ) :</span></b></font></p><p class="MsoBodyText" dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">ساختار
و سازمان آزمايش و تجربه در ارتباط با توصيفات كلاس هاي خلاصه سازي يكي از
ابزارهاي شناخت رفتار و ساختار سيستم هاي مركب است كه شامل برنامه هاي
كامپيوتر مي شوند . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">همانند رفتار يك حيوان كه ممكن است بدون توجه به فيزيولوژي سيستم عصبي نهفته در پشت آن مورد مطالعه قرار گيرد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يك الگوريتم داراي خصوصيات مربوط به خود مي باشد كه كاملاً آن را از برنامه اي كه آن را به كار مي برد جدا مي سازد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">به عنوان مثال دو نوع كاربر متفاوت جستجوي باينري را در نظر بگيريد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">يكي از آنها يعني </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Fortran</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> از محاسبات و طبقه بندي استفاده مي كند و ديگري يعني </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Ctt</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> از </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Pointer</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> استفاده مي كند كه بتواند در جستجوي درون شاخه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">binary</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كاربرد داشته باشد . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اگر
دقيق تر نگاه كنيم اين برنامه ها مثل هم مي باشند چون اگر جز اين باشد
كاربردهاي آنها نيز تفاوت خواهد شد . جداسازي الگوريتم از كه مورد استفاده
در كاربرد آن يكي از نمونه هاي خلاصه سازي سلسله مراتبي مي باشد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">Allen&nbsp;&nbsp; New ell</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بين سطح دانش و سطح نشانه ها براي توصيف يك سيستم هوشمند تفاوت قائل شده است.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">سطح
نشانه ها همراه سازماندهي به خصوصي مورد توجه قرار گرفته كه براي بيان
اطلاعات حل مسئله مورد استفاده قرار مي گيرد. بحث مربوط به توجه به منطق
به عنوان يك زبان يك نمونه از مواردي است كه به سطح نشانه پرداخته است.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">علاوه بر سطح نشانه سطح دانش است كه توجه آن به مقدار و محتوي اطلاعات يك برنامه و شيوه استفاده از آن اطلاعات مي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اين نوع تمايز در ساختار و معماري سيستم هايي كه بر اساس دانش و اطلاعات و سبك توسعه اي كه آن را پشتيباني مي كتد منعكس مي گردد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به دليل اينكه كاربرها برنامه ها را در قالب دانش و توانايي خودشان مي شناسند بنابراين حائز اهميت است كه برنامه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> داراي يك سطح خصوصيات اطلاعاتي باشند. </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">جداسازي اصل دانش و اطلاعات از ساختار كنترل اين نظريه را آشكار مي سازد و توسعه رفتار سطح دانش را ساده مي سازد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">همانند اين نيز سطح نشانه اي يك زبان توصيفي را تشريح مي كند كه شبيه قوانين و روشهاي توليد يا منطق براساس دانش و اطلاعات مي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">جداسازي
آن از سطح و دانش و اطلاعات نه برنامه نويس اين اجازه را مي دهد كه به سمت
خلاصه پردازي ت،ثير پذيري و راحتي برنامه نويسي سوق پيدا كندكه در ارتباط
با رفتار و عملكرد بالاي برنامه نمي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">كاربرد بيان سطح نشانه اي شامل يك سطح دوره پائين تر از ساختار برنامه مي شود و بيانگر يك سري ملاحظات طراحي اضافي مي شود.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اهميت نظريه چند مرحله اي نسبت به طراحي سيستم نمي تواند بيش از اين مورد توجه قراار گيرد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يعني
اينكه به برنامه نويس اجازه مي دهد كه با پيچيدگي نهفته شده در سطوح پائين
تر خود را درگير نكند و توجه و تاكيدش بر روي منابع مناسب با سطح فعلي
خلاصه پردازي كند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">همچنين
موجب مي شود كه اصول تئوري هوش مصنوعي عاري از كاربردهاي خاص يا زبان
برنامه نويسي باشد . اين همچنين به ما قدرت توصيف يك كاربرد را مي دهد و
تاثير گذاري خود را بر روي ماشين ديگر اثبات مي كند بدون اينكه بر رفتارش
در سطوح بالاتر تاثير بگذارد . </span></font></p><p dir="rtl"><font size="2" face="Tahoma"><span dir="rtl" style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><br style="page-break-before: always;" clear="all" />&nbsp;</span></font></p><p class="MsoBodyText" dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">سطح
اطلاعات توصيف كننده توانائي هاي يك سيستم هوشمند است. محتوي دانش و
اطلاعات مستقل از شكل پذيري مورد استفاده براي بيان آن است به همان اندازه
كه زبان بيان كاملا مؤثر مي باشد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">توجه به سطح دانش شامل سؤالاتي از اين قبيل است:</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">از
اين سيستم چه چيزي ساخته خواهد شد؟ چه اشيا و چه ارتباطي در آن محدوده
مؤثر و مفيد است ؟ چگونه يك اطلاعات جديد به سيستم اضافه مي گردد؟</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">آيا
واقعيات در طي زمان تغيير مي كنند؟ چگونه و چطور سيستم نيازمند است كه
دلائل اطلاعات خود را ثابت كند؟ آيا محدوده ارتباطي داراي يك طبقه بندي
درست و شناخته شده است؟</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">آيا اين محدوده شامل يك سري اطلاعات نادرست و غير ممكن است؟</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">تجزيه و تحليل دقيق در اين سطح يك گام مبهم در طراحي كلي ساختار يك برنامه مي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">در
سطح نشانه تصميمات درباره ساختارها صورت مي گيرد كه براي بيان و ايجاد
دانش مورد استفادده قرار مي گيرند. انتخاب يك زبان براي بيان يك مورد
مربوط به سطح نشانه مي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">منطق يكي از چندين نوع اشكال است كه اصولا در حال حاضر براي بيان دانش و اطلاعات در دسترس مي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">زبان
بيان نه تنها مي بايستي توانايي بيان اطلاعات مورد لزوم براي كاربر را
داشته باشد بلكه مي بايستي خلاصه و قابل توصيف و داراي كاربرد مؤثر باشد و
مي بايستي به برنامه نويس براي دستيابي و سازماندهي اصل و اساس اطلاعات
كمك كند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">وقتي
كه بين سطح اطلاعات و سطح نشانه يك برنامه تمايز به وجود آمد ما مي توانيم
بين سطح نشانه و الگوريتم و ساختمان داده ها مورد استفاده براي كاربرد آن
نيز تمايز قايل شويم. به عنوان مثال بدون تاثيرگذاري رفتار و عملكرد يك
تحليل گر برنامه كه اساس منطقي داشته باشد مي بايستي تاثير ناپذير از
انتخاب بين يك سري جزئيات و يك مجموعه و دسته بايزي باشد تا بتواند يك
جدول مربوط به نشانه ها را به كار برد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين تصميمات كاربردي هستند و مي بايستي در سطح نشانه قابل رؤيت باشند . بسياري از الگوريتم و ساختمان داده ها در كاربرد بيان زبان&nbsp; </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> به كار مي روند كه از روشهاي معمول علم كامپيوتر مي باشند مثل شاخه ها و جداول بايزي.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">ديگر موارد در رابطه با </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بسيار تخصصي هستند و به گونه يك كه مستعار بيان مي شوند كه از طريق متن و بخش هاي مربوط به </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">&nbsp; بيان مي شوند . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">در
سطح پائين تر مربوط به الگوريتم و ساختمان داده ها ( سطح زبان ) واقع شده
است در اين جا ست كه زبان كاربردي براي برنامه مشخص مي شود . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">با
اين حال سبك برنامه نويسي مطلوب احتياج به اين دارد كه ما يك خلاصه داده
اي بسازيم كه بين خصوصيات ويژه يك زبان برنامه نويسي و لايه هاي بالاي آن
قرار گيرد . نيازهاي منحصر به فرد برنامه نويسي سطح نشانه اي تأثير به روي
طراحي و استفاده از زبانهاي برنامه نويسي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
ايجاد مي كند . علاوه بر اين طراحي زبان مي بايستي در برگيرنده و مطابق با
ساختار آن كه بر گرفته از سطوح پائين تر ساختمان كامپيوتر كه شامل زبان
اسمبلي و سيستم عامل و دستور العملهاي ماشين و سطوح سخت افزار ي باشد . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">و محدوديت هاي فيزيكي كامپيوتر مي بايستي بر روي منابعي همچون حافظه و سرعت پردازشگر تأ كيد كند . روش هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG&nbsp; , LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
در جهت مستعاذل كردن نيازهاي سطح نشانه&nbsp; و نيازهاي نهفته در ساختار هر دو
منبع مورد استفاده مي باشند و هم چنين يك هدف هوشمند و ذهني با اهميت مي
باشند . در دنباله ما از ساختارهاي سطح اطلاعات در محيطهاي برنامه نويسي
بر روي يك زبان كاربردي صحبت خواهيم كرد و سپس به مصزفي زبانهاي عمده </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يعني </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG , LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي پردازيم . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">خصوصيات مطلوب يك زبان </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span></b></font></p><p class="MsoBodyText" dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يكي از خصوصيات و ويژگيهاي مهم خلاصه سازي سلسله مراتبي در ساختار برنامه غير حساس بودن سطوح بالاتر نهفته در كاربرد زبان مي باشد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين مشاهده در عمل سنجيده مي شود كه همراه با سيستم هاي موفق دانش مدار مي باشد كه در زبانهاي برنامه نويسي مختلفي مثل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Pascal ,&nbsp; C , Ctt , Java , PROLOG , LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">&nbsp; و حتي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Fortran</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> به كار مي رود . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">برنامه هاي مختلفي اصولاً در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG&nbsp;&nbsp; , LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و سپس در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">C</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
به كار گرفته مي شوند تا بتواند تاثيرپذيري و انتقال پذيري بهتر ايجاد
كنند. در هر دوي اين موارد رفتار و عملكرد در سطح نشانه به طور قطع بي اثر
مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">با
اين حال محدوديتهاي خلاصه سازي در يك برنامه جامع بيان مي شود كه كامل نمي
باشد . ساختار سطح بالاتر باعث ايجاد ساختارهاي قوي بر روي لايه هاي زيرين
مي شود و نياز به اين دارد كه برنامه نويسي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بر روي سطح نشانه اي قرار گيرد كه در سطح زبان تكرار مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">به عنوان مثال ساختارهاي اطلاعاتي مورد لزوم براي ادغام سمبوليك خود را مقيد به اشكال تكراري مثل فلش ها و ليست ها نمي كنند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اهداف و پيش بيني هاي منطقي ابزارهاي كاربردي طبيعي تر و انعطاف پذيرتر&nbsp; خواهند بود.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">علاوه بر اين به دليل مشكلات موجود در بسياري از مسائل مربوط به </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اغلب توسعه را قبل از اينكه يك شناخت كامل از نهايت فرم برنامه داشته باشيم شروع مي كنيم.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">توسعه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> لزوما در طبيعت به صورت كشف و تجزيه و آزمايش است.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اين
نياز هم چنين وابسته به يك زبان و ابزارهايي است كه بايد فراهم ساخت . يك
زبان نه تنها مي بايستي متناسب با كاربرد ساختارهاي سطح بالا باشد بلكه مي
بايستي يك ابزار مناسب براي انتقال كل چرخه نرم افزار از آناليز و تجزيه و
تحليل تا حصول برنامه باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">در پنــج زير گـــروه بعدي ما به صورت جزئي و كامل در مورد نيازهايي كه ساختارهاي سطح نشانه اي برنامه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI </font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">&nbsp;كه بر روي كاربرد زبان دارند بحث مي كنيم.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اين موارد عبارتند از :</span></font></p><h2 dir="rtl" align="right"><span style="line-height: 150%;"><font size="2" face="Tahoma">1.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span><font size="2" face="Tahoma"><span dir="rtl" style="font-family: Nazanin;" lang="AR-SA">پشتيباني از محاسبه سمبوليك </span></font></h2><p dir="rtl" style="text-indent: -0.05pt; line-height: 150%; margin-right: 0.25in; text-align: justify;" align="right"><span style="line-height: 150%;"><font size="2" face="Tahoma">2.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span><font size="2" face="Tahoma"><span dir="rtl" style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">انعطاف پذيري كنترل </span></font></p><p dir="rtl" style="text-indent: -0.05pt; line-height: 150%; margin-right: 0.25in; text-align: justify;"><span style="line-height: 150%;"><font size="2" face="Tahoma">3.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span><font size="2" face="Tahoma"><span dir="rtl" style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">پشتيباني از متدولوژي و روش هاي برنامه نويسي جستجويي </span></font></p><p dir="rtl" style="text-indent: -0.05pt; line-height: 150%; margin-right: 0.25in; text-align: justify;"><span style="line-height: 150%;"><font size="2" face="Tahoma">4.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span><font size="2" face="Tahoma"><span dir="rtl" style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">پويايي </span></font></p><p dir="rtl" style="text-indent: -0.05pt; line-height: 150%; margin-right: 0.25in; text-align: justify;"><span style="line-height: 150%;"><font size="2" face="Tahoma">5.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span><font size="2" face="Tahoma"><span dir="rtl" style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">مستنند سازي خوب و&nbsp; واضح </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">`</font></span><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">پشتيباني از محاسبات سمبوليك </font></span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">گرچه
روش هاي زيادي براي سازماندهي اطلاعات در يك سطح نشانه وجود دارد . ولي
تمامي آنها نهايتاً به عنوان عملكردهايي بر روي نشانه ها به كار مي روند .
</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين روش در تئوري نشانه هاي آقاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Simon , Newell</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
آمده است . تئوري هاي سيستم فيزيكي نشانه نياز اصلي براي زبان برنامه
نويسي است كه كاربردهاي يك سري از عمليات سمبوليك را آسان مي كند . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">حتي
شبكه هاي عصبي و ديگر شكل هاي ضروري محاسبه مي بايستي شامل اطلاعات
سمبوليك در وروديها و خروجي هايشان باشند . انواع كاربردها و اطلاعات
دادهاي عددي تاكيد شان بر روي زبانهاي برنامه نويسي معمول است كه براي
كاربردهاي جستجوي الگوريتمي يا بيان زبان </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مناسب نمي باشند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">علاوه بر اين يك زبان </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي بايستي ساختار ايجاد نشانه هاي اوليه را ساده سازد و بر روي آنها كار كند. اين يكي از مهمترين نيازهاي يك زبان برنامه نويسي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">محاسبات و پيش بيني يكي از قوي ترين و عمومي ترين ابزارهاي ايجاد ساختار كيفي يك محدوده از مسئله مي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">خصوصيات
بارز يك محدوده ممكن است به گونه يك سري واقعيات منطقي بيان شود. از طريق
استفاده از متغيرها امكان ايجاد واقعيات كلي درابره ارتباط بين اهداف در
يك محدوده به وجود مي آيد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يك زبان برنامه نويسي كلي است كه بر اساس پيش بيني محاسباتي است.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به عنوان يك كاربرد رسمي منطق </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بعضي اوقات مستقيما به عنوان يك زبان در سطح نشانه مورد استفاده قرار مي گيرد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">با
اين حال قدرت واقعي آن به عنوان يك زبان براي كاربرد دقيق تر و كامل
همانند چهارچوب ها و شبكه ها در يك روش سيستماتيك و فشرده مي باشد بسياري
از ساختارهاي سطح نشانه اي به سادگي با استفاده از ساختارهاي سطح بالاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ساخته مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ممكن است براي كاربرد در جستجوي الگوريتم ها يك سيستم محافظ و يك شبكه سمانتيكي مورد استفاده قرار گيرد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يك
ابزار مهم ديگر براي ساخت ساختارهاي نشانه ليست مي باشد يك ليست شامل يك
سري عناصر مي شود كه در آن هر عنصر ممكن است حتي يك ليست و يك نشانه باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">چند نمونه از ليست ها با استفاده از ساختار برنامه نويسي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> عبارتند از : </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">(اين يك ليست است) </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">(اين هست) (يك ليست) (از ليست ها) </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">(زمانها (بعلاوه 13)(بعلاوه 23) ) </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">((123)(456)(789))</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">توجه
داشته باشيم كه اينها نمونه هايي مي باشند كه شامل ليستهاي درون ليست هاي
ديگر مي شود اين موجب مي شود كه ارتباطات ساختاري ايجاد گردد. قدرت ليست
ها عمدتا در نتيجه توانايي بيان هر نوع ساختار نشانه اي بدون در نظر گرفتن
پيچيدگي يا عملكردهايي كه مي بايد از آن پشتيباني كند مي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اين
شامل شاخه ها گراف هاي اوليه يك سري مشخصه هاي منطقي جهت ها اصول اطلاعاتي
كليدي مي شود. به طور خلاصه هر نوع ساختار ممكن است بر اساس يك تركيب
مناسب متشكل از ليست ها و عملكردهاي واقع شده بر روي آنها حاصل شوند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">ليست ها يك سري بلوك هاي مهم مي باشند كه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG , LASP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
كه موجب مي شود كه كاربر را با عناصر اطلاعاتي و عملياتي براي دستيابي و
تاكيد بر آنها در درون يك سري ساختارهاي پيچيده مهيا سازد. در حاليكه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مستقيما به محاسبات پيش بيني شده وابسته است و شامل يك سري ليست به عنوان ابزارهاي بيان مي شود.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ليست را به عنوان اصول انواع داده ها و برنامه ها مورد استفاده قرار مي دهد. تمامي ساختارهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
از ليست ها ساخته مي شوند و زبان فراهم كردن يك سري ابزارهاي قوي براي
تركيب اينها (ساختارها) را به عهده دارد و توصيف كننده عمليات جديد براي
ايجاد توسعه و تغيير آنها است. يك شكل كردن ساختار </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP&nbsp; </font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">&nbsp;و
توانائي توسعه آن توصيف هر نوع زباني را براي ساختار آن ساده مي سازد .
بوسيله پرداختن به نظريه جمع آوري اطلاعات فشرده برنامه نويس </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
مي تواند ساختارهاي نشانه را توصيف كند و عمليات مورد نياز هر نوع شكل
گيري سطح بالا شامل كنترل كننده هاي جستجو حل كننده هاي تئوريهاي منطقي و
ديگر اظهارات سطح بالا مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"></span></b></font>&nbsp;</p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">انعطاف پذير بودن كنترل: </span></b></font></p><p class="MsoBodyText" dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يكي
از مشخصه هاي اساسي رفتار هوشمند قابليت انعطاف پذيري آن مي باشد . در
حقيقت مشكل بتوان تصور كرد كه هوشمندي مي تواند از طريق توسعه گام به گام
مراحل ثابت كه بوسيله برنامه هاي معمول كامپيوتري نشان داده مي شود حاصل
شود. خوشبختانه اين تنها راه سازماندهي محاسبات نمي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">يكي از مهمترين و در عين حال قديمي ترين نمونه هاي مربوط به ساخت يك برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> سيستم توليد مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">در
سيستم توليدي برنامه شامل يك سري قوانين مي شود. در منطق اطلاعات اين
قوانين به گونه اي تنظيم مي شود كه بوسيله الگوي اطلاعات در يك نوع مسئله
داده شده قابل تشخيص باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">قوانين
توليد مي تواند به هر گونه كه پاسخگوي آ" موقعيت خاص باشد برنامه ريزي
شود. بدين طريق يك سيستم تولسد مي تواند ايجاد كننده انعطاف پذيري و
ارتباط لازم براي رفتار هوشمند باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">بنــــابراين </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
از يك تعداد متفاوتي ساختارهاي كنترلي استفاده مي كند كه بسياري از انها
مرتبط با سيستم هاي توليد مي باشند و همه آنها تابع الگو مي باشند . كنترل
الگويي موجب مي شود كه اطلاعات با توجه به نياز به خصوصيات يك نوع مسئله
خاص به كار گرفته شود. الگوي الگوريتم هاي انطباقي مثل به صورت واحد در
آوردن باعث مي شود كه بتواند تشخيص دهد كه چه موقع خصوصيات يك مسئله منطبق
با يك برنامه اطلاعاتي است كه بر اين اساس اطلاعات لازم براي كاربرد در
مسئله را انتخاب مي كند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">بنابراين حائز اهميت مي باشد كه يك زبان </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بتواند آن را مستقيما ايجاد كند و يا توسعه الگوي كنترل را ساده سازد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يكي كردن و جستجوي الگوريتم ها در درون خود زمان ساخته مي شوند و قلب و اساس </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> را تشكيل مي دهند . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">با استفاده از اين يكي كردن الگوريتم ها به سادگي مي توان هر نوع الگوي ساختاري كنترلي را ايجاد كرد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
مستقيماً الگوي انطبقي ايجاد نمي كند اما محاسبات سمبوليك آن موجب گسترش
ساده مربوط به زبان ساده ساختار الگوي منطق شونده و توصيف كننده اوليه
ساختار مي شود.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يكي
از مزاياي اين نظريه اين است كه الگوي تطبيق و كنترل ساختارهاي همراه با
آن ممكن است به سادگي براي تطبيق با نيازهاي يك مسئله بخصوص خود را منطبق
سازد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اغلــــب
نظـــريات فعلي در ارتباط با هوش مصنوعي همانند شبكه هاي عصبي عوامل تنظيم
كننده و ديگر فرم هاي محاسبات ضروري ممكن است اجتناب از عمليات بر روي
ساختارهاي سمبوليك باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">ولي
آنها نياز به يك كنترل انعطاف پذير را نفي نمي كنند. شبكه هاي عصبي مي
بايستي توانايي حركتي شكل گيري خودشان را داشته باشند . عوامل متكي به
پيام هستند كه از بين ماحوبهاي مختلف مي گذرد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">الگوريتم هاي ژنتيكي نياز به ايجاد واحد هاي شمارش به عنوان جمعيت كانديد شده حل مسئله دارند. توانايي زبان هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
براي ايجاد مشخصه تركيب ساده طبقه بندي اتوماتيك حافظه امكان اطلاع رساني
ساده ايجاد متغيرها و روش هاي پويا و شكل هاي قوي ايجاد برنامه مثل يك
برنامه شيء گرا موجب خواهد شد كه آنها را به سمت استفاده گسترده در كاربرد
اين ابزارهاي جديدتر </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> سوق دهد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"></span></b></font>&nbsp;</p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">پشتيباني از روش هاي برنامه نويسي جستجويي. </span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">مسائلي كه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
به آن مرتبط مي باشد هميشه پاسخگوي يك چنين نظريه هاي مهندسي نرم افزار
استاندارد كه شامل طراحي كامل و پردازش موفقيت آميز و توسعه برنامه از
خصوصيات و ويژگيهاي دقيق است نمي تواند باشد. به دليل طبيعت و ذات و نوع
بخصوص </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">&nbsp; به ندرت اين احتمال به وجود مي آيد كه بتوان ويژگيهاي درست و كاملي از شكل نهايي يك برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> قبل از ساخت حداقل يك </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">proto type</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بدست آورد. اغلب موارد شناخت مسئله برنامه مربوط مي شود به حل موارد درگير مسئله از طريق توسعه برنامه . دلايل آن عبارت است از :</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">1 </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">-</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بيشتر مسائل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اصولا مشخصه هاي ضعيفي دارند.</font></span></b></font></p><p class="MsoBodyText" dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">به
دليل اينكه پيچيدگي زيادي براي پشتيباني از سطح اطلاعات لازم مي باشد به
ندرت احتمال مشاهده يك مسئله و تشخيص كامل بودن نظريه دقيق كه بايد در
جايگاه خودش باشد وجود دارد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">بهترين
ساختارهاي سطح نشانه اي كه در يك مسئله مورد استفاده قرار گيرند به ندرت
در مشخصه هاي سطح دانش قرار مي گيرند. اين نوع پيچيدگي و نامفهومي خود را
به روش هاي معمول مربوط به نرم افزارهاي مهندسي مرتبط نمي دانند چون كه در
اين نوع برنامه ها لازمه اش اين است كه مشخصه هاي مربوط به توسعه به خصوص
مسئله قبل از اينكه مرحله كدبندي آغاز شود شكل مي گيرد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يك
عملكرد منطقي خود ذاتا براي مشخصه ها و خصوصيات معمولش بسيار مشكل تر از
عملكرد نوعي طبقه بندي ليست يا ايجاد يك فايل سيستم است . حقيقتا اين به
چه معني است؟</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">به
عنوان مثال براي طراحي يك مدار يا بهبود يك بيماري اين به چه معني است؟
چگونه يك انسان ماهر و متخصص اين عمليات ها را شكل مي دهد؟ سطح رضايت بخش
ايجاد يك محدوده مسئله داده شده چه چيزي است؟ چه نوع دانش و اطلاعاتي لازم
مي باشد؟ چه مشكلاتي ممكن است به دلايل نبود و يا غير واقعي بودن اطلاعات
پيش بيايد؟ به دليل جوابهاي&nbsp;&nbsp; به اين قبيل سؤالات و ديگر سؤالات كه در يك
دوره كلي مطرح مي شود و بسيار تخصصي مي باشند و هر وقت اين طور باشد
ساختار آن نيز عميق تر و پيچيده تر مي شود به همين نسبت حل آن نيز به دقت
بيشتري نياز دارد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">2 </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">-</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> نظرياتي كه براي حل مسائل به آن پراخته مي شود در محدوده بخصوصي قرار مي گيرند.</font></span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">گر چه چهار چوب هاي كلي براي حل مسائل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> وجود دارد به عنوان مثال سيستم توليد جستجو در زبان دامنه و محدوده هر مسئله نيازمند روش هاي خاص خود مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">بنابراين
راه حل موفقيت آميز مسئله به ندرت به طور كامل براي محدوديتهاي جديد
عموميت و كاربرد دارد هر كاربرد تا حدودي يك نوع مسئله جديد مي باشد . </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">3- ساختارها و اشكال بيان </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به طور پيوسته بايد توسعه و تجديد شود </font></span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">توسعه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يك پروسه تحقيقي مداوم است . توسعه سيستم هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
كاربردي در بسياري از روشها بسط و توسعة اين پروسه ها مي باشند . گرچه
تجربه عمدتاً به كاربرد زبان كمك مي كند ولي عموماً هيچ جايگزيني براي
كاربرد يك ايده و اينكه چگونه عمل مي كند وجود ندارد . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به همين دليل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI </font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">&nbsp;&nbsp;اصولاً
به صورت جستجوي است . برنامه اغلب به صورت ماشيني است كه از طريق آن ما مي
توانيم دامن مسئله را كشف كنيم و روش هاي حل مسئله را كشف كنيم در حقيقت
ابزاري است كه با آن به شناخت مسئله نائل مي شويم . </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">چالش در برنامه نويسي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ، پشتيباني برنامه ريزي كشفي است . در بين خصوصياتي كه يك زبان برنامه نويسي بايد ايجاد كند موارد ذيل وجود دارد : </font></span></font></p><h2 dir="rtl" align="right"><span style="line-height: 150%;"><font size="2" face="Tahoma">1-</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span><font size="2" face="Tahoma"><span dir="ltr">Modularity</span></font></h2><h2 dir="rtl" align="right"><span style="line-height: 150%;"><font size="2" face="Tahoma">2-</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span><font size="2" face="Tahoma"><span dir="rtl" style="font-family: Nazanin;" lang="AR-SA">قابليت گسترش </span></font></h2><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">3- ساختارهاي سطح بالاي مفيد </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">4- پشتيباني از </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Prototype</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> سازي اوليه </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">&nbsp;5- قابل خواندن بودن برنامه </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">6- مترجم ها </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">7- پشتيباني نرم افزاري براي برنامه نويسي جستجويي </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">ما اين عناوين را در پاراگراف هاي زير مورد بحث و بررسي قرار خواهيم داد : </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">1-قابليت </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Modularity</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كدها</font></span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">حائز
اهميت است كه يك زبان براي برنامه نويسي كشفي از يك سري تعاريف متوالي
مربوط به كدها پيروي كند اين بيانگر اين است كه مسائل مي بايستي شامل قسمت
هاي كوچك و مطلوب باشد نه بدنه هاي پيچيده كه بندي شده ارتباط متقابل بين
محتوي برنامه بايد محدود باشد و به خوبي نيز توصيف شده باشند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين شامل پرهيز از تأثيرات جانبي و متغيرهاي جهاني </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">(global)</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و اطمينان از رفتار هر </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Module</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> واحد در شناخت برنامه باشد كه بتواند به خوبي قابل تشخيص باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">برنامه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> به صورت مجموعة انتخابي از عملكردهاي واحد مي باشند در يك برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كه به صورت مطلوب نوشته شده باشد هر عملكرد كوچك مي باشد كه يك كاركرد خوب و واحد را شكل مي دهند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">بنـــابراين اغلب&nbsp; جايگزيني و اصلاح علت هاي هر كمبودي، ساده مي باشد. روش هاي اندازه گيري متغير </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
و پارامترهاي مربوط به آن اغلب براي كاهش تأثيرات عملكردي به كار گرفته مي
شوند. متغيرهاي جهاني،‌گر چه به وسيله زبان پشتيباني مي شوند ولي استفاده
در كدهاي متناسب </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> نهي شده اند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">علاوه بر اين </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> دسته بندي شي گرا را از طريق سيستم شيء </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> به صورت </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">CLOS</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> پشتيباني مي شود.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> واحد اصلي برنامه روش و قانون است، قوانين </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> همانند عملكردهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كوچك و ويژه هستند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به دليل اينكه محدوده و قياس متغيرها در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اغلب محدود به يك شيوه و قانون شده اند، و زبان اجازه تغييرات جهاني را نمي دهد. توصيف كردن اصولاً ساده مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> شامل مشخصه هاي سهل و آساني مي باشند كه هنگامي كه با يك ساختار برنامه مشخص تركيب شوند، موجب آسان شدن پرداخت آن مي گردند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"></span></font>&nbsp;</p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">2-قابليت گسترش</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اصولاً
برنامه نويسي جستجويي در قالب يك پروسه داراي ساختار سطح بالاي برنامه اي
است كه به گونه كد توسعه يافته است. يك روش مهم براي انجام اين پروسه در
قالب سيستماتيك و با ساختار مناسب،‌توسعة يك زبان نهفته در ‌آن است.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اغلب امكان توصيف شكل نهايي يك برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
وجود ندارد،‌اما امكان تشخيص ساختارهاي سطح بالا و مفيد براي كشف و بررسي
دامنه مسئله وجود دارد. اين ساختارها مي توا ند شامل الگوهاي مناسب ،
كنترل كننده هاي جستجو وعملكردهاي توصيف يك زبان توصيفي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اصـــولاً
ايـــن نظـــريه كه مي گويد اگر شما ساختار نهايي يك برنامه را تشخيص
ندهيد مي بايستي سعي كنيد كه ساختار زبان را توصيف كنيد كه به شما كمك
خواهد كرد كه آن ساختار را توسعه دهيد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">براي
پشتيباني از اين روش، يك زبان برنامه نويسي بايد به صورت سهل و آسان قابل
گسترش باشد و به طور ساده آنها را توسعه دهد. به وسيله توسعه و گسترش كه
همان توانايي توصيف ساختارهاي زباني جديد است كه داراي حداكثر آزادي و
انعطاف باشند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و همچنين توسعة شيء گرا آنها همانند </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">CLOS</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> همگي موجب مي شوند كه توصيف سادة اهداف، پيش بيني ها و عملكردهاي جديد ، صورت پذيرد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">هنگامي كه توصيف صورت پذيرفت، اين ساختارهايي كه كاربر ايجاد كرده داراي رفتاري شبيه به ساختارهاي اساسي زبان مي باشند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين
زبانها به&nbsp; وسيله توسعة توانايي هاي اصولي از ابتدا تا حل آن برنامه ريزي
مي شوند. دراين صورت،‌گفته مي شود كه برنامه هاي معمول، ساختاربندي مي
شوند ولي برنامه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> رشد و توسعه مي يابند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اين
مورد با تشخيص سريع مقايسه مي شود كه در اين مورد زبانهاي معمولي مابين
خصوصيات ساختاري و برنامه هاي توسعه يافته، كاربردي واقع مي شوند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">در يك برنامه </font></span><span dir="ltr" style="line-height: 150%; position: relative; top: 3pt;"><font size="2"><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_s1027" style="width: 21.75pt; height: 15.75pt;" type="#_x0000_t75" fillcolor="window"><v:imagedata src="file:///C:%5CDOCUME%7E1%5CBEHROO%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.wmz" o:title=""></v:imagedata></v:shape></font></span><span dir="ltr" style="line-height: 150%;"></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">&nbsp;ما
ممكن است عملكردهاي جديدي را تعريف كنيم اما ساختار آنها بسيار محدودتر از
ســـاختارهاي از قبل ساخته شده است. اين موجب محدوديت انعطاف پذيري و
استفاده از اين توسعه و گسترش ها مي شود.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> همچنين موجب ساده شدن نوشتن توصيف متغيرهاي ويژه يك زبان خاص مي شوند. در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> برنامه ها و اطلاعات به گونه ساختاري ليست مي شوند. اين باعــث ســادگي نوشتن برنامه اي مي شود كه از كد </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> به عنوان داده </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">(Data)</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> استفاده مي كنند كه در اين صورت باعث ساده تر شدن توسعه، تصويفي مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">بسياري از زبانهايي كه از نظر سابقه و همچنين اقتصادي در نوع زبانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> حائز اهميت مي باشند، مثل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PLANNER</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">ROSIE</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">KEE</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">OPS</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بر اساس توانائي هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ساخته مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اين توانائي ها را در قالب تعدادي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">"meta - predicates"</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كه قابل پيش بيني براي تركيب با ديگر مشخصه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> باشند. ايجاد مي كند كه در اين صورت باعث ساده شدن نوشتاري آن مي گردد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">همراه با </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> تعدادي زبانهاي سطح بالا </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بر اساس </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ساخته شده اند كه از اين روش استفاده مي كنند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"></span></font>&nbsp;</p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">3-وجود ساختارهاي مفيد سطح بالا</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">برنا
مه نويسي جستجويي به كمك يك ساختار قوي سطح بالا در زبان به وجود مي
آيد،‌اين ساختارهاي قوي و كلــــي به&nbsp; برنامه نويس اجازه توسعه سريع
ساختارهاي ويژه براي بيان اطلاعات توصيفي و كنترل برنامه را مي دهند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
اينها شامل اصول اساسي نوع اطلاعاتت مي شود كه موجب ايجاد ساختارهاي
پيچيده اطلاعاتي و عملكردهاي قوي براي توصيف عمليات بر روي آ‌نها مي شود.
به دليل اينكه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> قابل گسترش مي باشد و براي چندين دهه است كه مورد استفاده قرار مي گيرد. مهمترين و قوي ترين عملكردهاي توصيفي</font></span><span dir="ltr" style="line-height: 150%;"><font size="2"> LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> همان خصوصيات استاندارد زباني آنها مي باشد. ويژگيهاي معمول </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> شامل جيدها عملكرد براي ايجاد ساختارهاي اطلاعاتي، ساخت تداخلگرها و قابليت </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Edit</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كردن ساختارهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
به عنوان يك زبان مقايسه اي كوچك مطرح است كه بخشي از آن به دليل نو بودن
و بخش ديـــــگر به دليل عدم سادگي و كامل بودن آن است با اين حال </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> به كاربرها اجازة ايجاد پيشگوئي هاي به خصوص را مي دهد و مفيدترين اينها راه خود را براي استاندارد شدن باز كرده اند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"></span></font>&nbsp;</p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">4-پشتيباني براي ساخت </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Prototype</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اوليه </font></span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">يكي از روش هاي برنامه نويسي جستجويي و مهم، </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Prototype</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
سازي اوليه مي باشد. در اينجا برنامه نويس يك راه حل سريع براي مسئله پيدا
مي كند و از آن براي جستجو فضاي مسئله استفاده مي كند. وقتي كه مسئله مورد
بررسي قرار گرفت و روش حل آن مشخص شد، </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Prototype</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
كنار گذاشته مي شود و يك برنامه نهايي كه تأكيد آن بر روي صحت و مؤثر بودن
مي باشد، ساخته مي شود. گر چه مشكل است كه چيزهايي را كه زياد مورد
استفاده قرار مي گيرند تا براي ساخت يك برنامه كامپيوتري به كار روند،
كنار گذاشت، ولي انجام چنين كاري باعث صرفه جوئي در زمان و بهبود كيفيت
نهائي كار مي شود. ساخـــتارهاي ايجاد شده به وسيله زبانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> عمدتاً باعث افزايش سرعت توسعة </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Prototype</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">ها مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">5-قابليت خواندن برنامه و مستندسازي آن</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به دليل اينكه اغلب برنامه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
به طور گسترده اي از طريق خودشان توصيف مي شوند ولي اين نكته حائز اهميت
است كه كد بتواند قابل خواندن و قابل مستندسازي باشد. در عين حاليكه هيچ
نوع جايگزيني براي محتوي زبانهاي معمول در كد وجود ندارد، ولي با اين حال
زبـــان هـــاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> همـــراه بـا </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Module</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">هاي با ساختار سطح بالا باعث ساده شدن اين عمل مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">6-مفسرها </span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">بيشتر زبانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
قبلاً ترجمه شده هستند نه اينكه در طول برنامه بخواهند ترجمه شوند. اين
بدان معني است كه برنامه نويس لازم نيست به مدت طولاني هر زمان كه كد
تغيير كرد برنامه را تعريف مجدد كند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">با توجه به مسائل عملكردي در ترجمه كد، زبانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مدرن به </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Module</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
هاي ويژه اجازه تعريف مجدد براي يك موقعيت متوسط را مي دهند كه از اين
طريق برنامه هاي سطح بالاتر بهتر تعريف مي شوند. علاوه بر اين بسياري از
كاربردها به برنا مه ها اجازه تكميل شدن نهايي برنامه ها را مي دهند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">7-محيطهاي توسعه</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">زبانهاي جديد </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
در برگيرنده محيطهاي برنامه ريزي مي شوند كه ابزارهاي ايجاد كلي و يا
بخشـــي از برنامه را فراهم مي كنند.بسياري از كاربردهاي زباني شامل
ويرايش هوشمند مي شــوند كه اشتباهات را به عنوان يك كد نوشتاري در نظر مي
گيرد. به دليل پيچيدگي برنامه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و مشكل بودن پيش بيني عملكرد هر سيستم توليد، اهميت اين پشتيباني هاي سهل نمي تواند قابل تصور باشد.</font></span></font></p><h1 dir="rtl" style="text-align: left;" align="right"><font size="2" face="Tahoma"><span dir="ltr" style="line-height: 125%;">Dynamic Binding and constraint propagation</span></font></h1><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">زبانهاي معمول نياز به اين دارند كه بيشتر برنامه هاي مرتبط با آن در يك مدت زمان خاص تشخيص داده شوند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">شامل
اتصال دادن متغيرها به محيط حافظه و انتقال روش هاي به نام هايشان مي
باشد. با اين حال بسياري از روش هاي برنامه نويسي پيشرفته مثل، برنامه
نويسي هاي شيء گرا نياز به اين اتصال ها براي تشخيص ديناميكي دارند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">برنامه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Prolog</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> پشتيبان قيدگذاري ديناميكي هستند. از يك نقطه نظر </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يكي از مهمترين منافع قيدگذاري ديناميكي پشتيباني از برنامه نويسي ساختاري است. اغلب مسائل مربوط به يك برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> نيـــاز به ايــــن دارد كه ارزش هاي مشخصه هاي خاص ناشناخته باقي مي ماند تا زماني كه اطلاعات لازم جمع آوري شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اين
اطلاعات ممكن است به گونه يك سري از ساختارها بر اساس ارزش ها باشد كه يك
متــغير از آن انتظار دارد. هم چنانكه ساختارها جمع شوند يك سري از
احتمالات كاهش مي يابد و در نهايت به يك راه حل منتهي مي شود كه تمامي
ساختارها را تحت پوشش مطلوب قرار مي دهد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يك
نمونه ساده از اين نظريه ممكن است در يك سيستم تشخيص پزشكي ديده شود كه
اطلاعات دربارة نوع بيماري مريض جمع آوري مي شود تا زماني كه اطلاعات
مربوطه محدود به نوع خاصي از بيمار شوند زبان برنامه نويسي مقايسه اي اين
روش از نوع متغير قيدگذاري اوليه يا توانايي حصول يك متغير نامركب مي باشد
در حاليكه آن را در كد برنامه جمع مي كند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
به متغيرها اجازة ترجمه وافزايش غيرمركب را مي&nbsp; دهند، در حاليكه توصـــيف
ارتبـــاطات و وابستگي هاي بين اين متغيرها و ديگر واحدهاي برنامه را
انجام مي دهد. اين موجب كاربرد آسان و طبيعي نوع قيد مي شود.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"></span></font>&nbsp;</p><h2 dir="rtl" align="right"><b><span style="line-height: 150%;"><font size="2" face="Tahoma">6.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span></b><font size="2" face="Tahoma"><span dir="rtl"><b><span style="font-family: Nazanin;" lang="AR-SA">تعاريف مشخص و واضح</span></b></span></font></h2><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">لازم است كه زبانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> همراه با زبانهاي ديگر برنامه نويسي براي توسعه گسترده كامل و در عين حال منطقي سيستم، به كار گرفته شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">متأسفانه زبانهاي برنامه نويسي معمول مثل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Fortran</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
و پاسكال داراي تعاريف مشكل و پيچيده اي هستند اين موارد مي تواند ناشي از
واقعيت خود زبان باشد كه اصولاً داراي خصوصيات ساختاري سطح بالايي در
كامپيوتر دارند و در خودشان سيستم هاي فيزيكي و پيچيده اي دارند. به دليل
اينكه زبانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> داراي اساس و پايه رياضي هستند مثل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ،‌آنها مي بايستي معاني ساده تري باشند كه داراي قدرت و ظرافت نهفته در رياضي باشند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">اين
موجب مي شود كه اين زبانها عمدتاً براي تحقيقات در محدودة به كارگيري دانش
ابزارهاي زبان، ايجاد برن امه درست،‌و اتوماتيك كردن تأثير گذاري كد، مفيد
واقع شوند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">همـــچنين بـــايد توجه داشت كه گر چه عملكرد بسياري از برنامه هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كاملاً پيچيده مي باشد ولي كدي كه داراي اين عملكرد است بايد ساده و مشخص باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">بلوك هاي بزرگ مركب و پيچيده با كد مشخص داراي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مناسب نمي باشند يك زبان خوب توصيف شده،‌يك ابزار مهم براي دريافت اين اهداف مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"></span></font>&nbsp;</p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">خلاصه اي دربارة </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به وسيله برآورده كردن نيازهاي گفته شده، </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
هر دو داراي زبانهاي برنامه نويسي غني و كاملي هستند وقتي كه اين زبانها
را فرا مي گيريم، دانشجو در ذهن و فكر دربارة روشهايي كه آنها به وسيله
ويژگيهاي خاص هر زبان پشتيباني مي كنند، نيازها را نگه داري مي كنند.</font></span></font></p><h1 dir="rtl" style="text-align: justify;"><font size="2" face="Tahoma"><span dir="ltr" style="line-height: 125%;">PROLOG</span></font></h1><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يكي از بهترين نمونه و مثال يك زبان برنامه نويسي منطقي است. يك برنامه منطقي داراي يك سري ويژگيهاي قانون و منطق است . </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> از محاسبة اوليه استفاده مي كند. در حقيقت خود اين نام از برنامه نويسي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PRO</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LOGIC</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
مي آيد يك مفسر برنامه را بر اساس يك منطق مي نويسد. ايده استفاده توصيفي
محاسبه اوليه براي بيان خصوصيات حل مسئله يكي از محوريت هاي مشاركت</font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
مي باشد كه براي علم كامپيوتر به طور كلي و به طور اخص براي زبان برنامه
نويسي هوشمند مورد استفاده قرار مي گيرند. نفع اسفتاده از محاسبه اوليه
براي برنامه نويسي شامل يك ساختار ظريف و ساده و قابل معني مي شود.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به دليل همين خصوصيات است كه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
به عنوان يك محرك اصلي و مفيد براي تحقيقاتي مثل موارد برنامه نويسي
آزمايشي به عنوان يك كد، متغير كردن برنامه و طراحي ويـــژگيهـاي زبان سطح
بالا، مطرح است. </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
و ديگر زبانهاي منطقي يك سبك برنامه نويسي مشخصي را دنبال مي كنند كه در
آنها برنامه ها به صورت دستورات پشت سرهم و متوالي براي ايجاد يك
الگوريتم، نوشته مي شوند. اين نوع برنامه اصولاً به كامپيوتر مي گويد كه
«چه چيزي درست است» و «چه چيزي بايد صورت گيرد» و اين به برنامه نويس
اجازه مي دهد كه بر روي حل مسئله به صورت يك سري خصوصيات از يك محدوده
تأكيد كند تا اينكه بخواهد به جزئيات نوشتاري سطح پائين ساختارهاي
الگوريتمي براي بعد بپردازد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اولين برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
در مارسي فرانسه در اوايل 1970 به عنوان بخشي از زبان معمول يك پروژه
نوشته شد. تئوري نهفته در پشت اين زبان در كارهاي كوالسكي،‌هيز و ديگران
آورده شده است. عمدة&nbsp; توسعة </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> بين سالهاي 1975 تا 1979 در بخش هوش مصنوعي دانشگاه ادينبورگ صورت گرفت.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">در آنجا يك گروه مسئوليت كاربرد اولين </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> را به عهده داشتند كه آقاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">David H.D</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مسئول آن بود. اين گروه اولين&nbsp; </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> را ساخت كه مي توانست محاسبات كلي را انجام دهد. اين محصول بر اساس سيستم </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">DEC-10</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ساخته شده بود و مي توانست در مدهاي توصيفي و مقايسه اي كارآئي داشته باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">مزيت اين زبان به وسيله پروژه هايي كه براي ارزيابي و گسترش قدرت بيان برنامه هاي منطقي نوشته شده اند،‌ اثبات شده است.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">بحث
دربارة يك چنين كاربردهايي مي تواند در سمينار و گردهمائي هاي مربوط به
زبان برنامه نويسي هوش مصنوعي در سطح بين المللي مطرح شود.</span></font></p><h1 dir="rtl" style="text-align: justify;"><font size="2" face="Tahoma"><span dir="ltr" style="line-height: 125%;">LISP</span></font></h1><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اولين بار به وسيله </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">JACK MCCARTHY</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> در اواخر دهه 1950 مطرح شد اين زبان به عنوان يك مدل پيوسته محاسباتي بر اساس تئوري عملكرد مجدد،‌معرفي شد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">در
مقالات اولية مك كارتي (1960) اهداف خود را مشخص مي كند: ايجاد يك زبان
سمبوليك تا يك زبان محاسباتي. ايجاد زباني كه بتوان از آ‌ن به عنوان يك
مدل محاسباتي بر اساس تئوري عملكرد مجدد استفاده كرد و از آن بتوان براي
تعريف دقيق يك ساختار و تعريف زباني استفاده كرد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">گر چه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
يكي از قديمي ترين زبانهاي محاسباتي است كه هنوز فعال است، ولي دقت كافي
در برنامه نويسي و طراحي توسعه باعث شده كه اين يك زبان برنامه نويسي فعال
باقي بما ند. </font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">در حقيقت اين مدل برنامه نويسي طوري مؤثر بوده است، كه تعدادي از ديگر زبانها بر اساس عملكرد برنامه نويسي آن واقع شده اند مثل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">FP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ، </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">ML</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">SCHEME</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> .</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين ليست اساس برنامه ها و ساختارهاي اطلاعاتي در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> است، </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> خلاصه شده نام پروسه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LIS</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> است. اين برنامه يك سري ليست هاي عملكردي درون ساختاري دارد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> به برنامه نويس قدرت كامل براي اتصال به ساختارهاي اطلاعاتي را مي دهد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اصولاً </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يك زبان كامل است كه داراي عملكردها وليست هاي لازمه براي توصيف عملكردهاي جديد، تشخيص تناسب و ارزيابي معاني مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">تنها
هدف كنترل برنامه بازگشت و شرايط منحصر به فرد است. عملكردهاي كامل تر
هنگامي كه لا زم باشد در قالب اين اصول تعريف مي شوند. در طي زمان بهترين
عملكردها به عنوان بخشي از زبان مي شوند. پروسه توسعة زبان به وسيلة اضافه
كردن عملكردهاي جديد موجب توسعه محورهاي زيادي از </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي شوند كه اغلب شامل صدها عملكرد بخصوص براي ايجاد اطلاعات كنترل برنامه، خروجي و ورودي، </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Edit</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كردن عملكردهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اين ارتباطات محركه اي هستند كه به وسيله </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> از يك مدل ساده و ظريف به يك مدل قوي و غني و عملكردي براي ساخت سيستم هاي نرم افزاري بزرگ، تبديل مي شود.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">يكي ازمهم ترين برنامه هاي مرتبط با </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">SCHEME</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي باشد كه يك تفكر دوباره دربارة زبان در آن وجود دارد كه به وسيله توسعه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> وبراي آموزش اصول مفاهيم علم كامپيوتر مورد استفاده قرار مي گيرند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"></span></font>&nbsp;</p><h2 dir="rtl" align="right"><b><span style="line-height: 150%;"><font size="2" face="Tahoma">7.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span></b><font size="2" face="Tahoma"><span dir="rtl"><b><span style="font-family: Nazanin;" lang="AR-SA">برنامه نويسي شيء گرا</span></b></span></font></h2><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">برخلاف برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ،‌برنامه شيء گرا ريشه در مهندسي نرم افزار دارد. اولين بار در سال 1970 توسعه يافته كه به وسيله&nbsp; </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Alan Kay</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اين تحقيقات صورت گرفته است.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">ساخت ايده ها از محرك، كه زبان نروژي تظاهر مي كند در سال 1960&nbsp; و مقاله </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Symour</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> در استفاده از </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LOGO</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> براي آموزش كودكان، صورت پذيرفته است.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">استفاده از </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Dyna book</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> براي اولين بار به عنوان يك كامپيوتر، كه افرادي به غير متخصصان علم كامپيوتر با آن سروكار داشتند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">بـــه
دليل اينكه كاربر افراد معمولي بودند سيستم عملكرد و كاربرد نرم افزار
نبايد تكنيكي مي بود و به سادگي قابل تشخيص بود. راه حل آنها براي اين
مسئله يك مداخلة گرافيكي است با استفاده از منوها و آيكون هاي گرافيكي و
اشاره گرها، يك موس يا يك سري برنامه ها براي اديت كردن، داده ها مي باشد.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">دخالت كاربر در طراحي يك </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">notebook</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
متأثر از طراحي كاربرها براي يك سري كامپيوترهاي تخصصي مثل سيستم هاي به
كارگيري كامپيوتر شخصي مثل مكينتاش، ماكروسافت و محل هاي مربوط به ويندوز
مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">در يك برنامه </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">small talk</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
،‌همه چيز در قالب هدف و يك ساختار قابل محاسبه مرك و قراردادي مطرح مي
شود. اهداف نه فقط شامل انواع اطلاعات براي محاسبه بلكه شامل انواع روشهاي
لازم براي محاسبه حالت و وضعيت هدف نيز مي شوند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">ارزشهاي
يك هدف به صورت كلاس ها بيان مي شود. اهداف ممكن است اهداف طبقه بندي شده
كه توصيف كنندة تمامي مواد يك نمونه باشد و بيانگر نوع ذات و توصيف تما مي
موارد يا مواردي كه بيانگر يك عضو واحد هستند را شامل شود.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">وقتي
مواردي از يك نوع اطلاعات به وسيله اهداف توصيف مي شود اين موارد ذاتاً
داراي نوع توصيف و روشهاي توصيفي از عملگرهايشان مي باشند،‌براي شكل دادن
يك عمليات بر روي يك هدف، يك پيام به سمت هدف فرستاده شده كه حاصل روش
مناسبي مي باشد. به عنوان مثال، اضافه كردن 3 و 4 پيام 4+ به سمت شيء 3
فرستاده مي شود و 3 پاسخ مي دهد مي شود 7&nbsp; .</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به وسيله ايجاد انواع تركيب اطلاعات و عمل بر روي آنها در يك عمل واحد مربوط به هدف، </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">small talk</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> از كد </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Modular</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> (پيمانه اي) توسعه و نوع كاربرد براي عناصر اطلاعات و كد مربوط به تكثير آنها، پشتيباني مي كند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">به دليل اينكه اهداف&nbsp; </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">small talk</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
در قالب يك كلاس شبكه اي همراه با اهداف كاملاً ويژه كه بخشي از تمامي روش
هــاي كاملاً كلي است ، بسيار ساده است كه يك ساختار جديد برنامه اي توصيف
كنيم كه عملاً با اهداف موجود در برنامه همراه باشد. بنابراين يك برنامه
اصولاً مي تواند قدرت كامل يك سيستم باشد كه شامل گرافيك،‌بازنگري و
ارتباط است.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">علاوه
بر اين روش هاي توسعه نرم افزاري مثل ارائه اطلاعات و زبانهاي نهفته، فشار
بر اپراتور و استفاده از كدها از طريق يك گروه اصلي و زبانهاي نهفته در
قالب يك مدل رايج پشتيباني مي شوند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">زبانهاي
شيء‌گرا همراه با بسياري از خصوصيات مندرج در يك كلاس اطلاعاتي، شامل كلاس
اصلي و توانايي پاسخ در ساختار اطلاعات مي شود به همين دلايل زبانهاي
شيءگرا در برنامه نويسي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> استفاده مي شوند.</font></span></font></p><h3 dir="rtl" style="text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">محيطهاي هيبريد</span></font></h3><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">نياز
به برنامه نويسي اطلاعاتي موجب توسعة تعدادي برنامه نويسي و تكنيك هاي
زبان، شامل سيستم هاي توليد،‌قوانين و كلاس شيء‌گرا مي شود.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يك
سيستم هيبريد بيانگر نمونه هاي چند منظوره در قالب يك محيط برنامه نويسي
خاص مــي باشد. گر چه محيطهاي هيبريد متفاوت مي باشد. ولي عموماً شامل
خصوصيات ذيل مي شوند. </span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">&nbsp;1-نمايش شيء گرا از محدوده اشياء</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يك چنين سيستم هايي ذاتاً ويژگيهاي كلاس را پشتيباني مي كنند و اغلب شامل يك مكانيسم انتقال پيام براي عكس العمل هدف مي باشند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">2-قوانين نمايش اطلاعات </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">neuristic</font></span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">گر چه چهارچوب اهداف به معني توصيف طبقه بندي اهداف، مي باشند. قوانين به عنوان عمدة نظر توصيف مسائل اطلاعاتي مي باشند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">ساختار </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">then .... if .....</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
مناسب شيوة تخصص انساني است كه بيانگر پروسة تصميم گير است. قوانين دريافت
اطلاعاتي از اهداف را دارند كه با استفاده از يك زبان كه مستقيماً در
چارچوب يك هدف مي خواند و مي نويسد و يا به وسيلة استفاده از پيام كه
مستقيماً وارد هدف مي شود صورت مي پذيرد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">3-پشتيباني از انواع روش هاي جستجو</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">بيشتر
سيستم هاي پشتيباني از جستجوي اوليه و انتهايي حمايت مي كنند عموماً بيان
يك هدف در قالب جستجويي ،‌تغيير به سمت عقب مي باشد . علاوه بر اين يك
واقعيت تازه دربارة حافظه كاركرد ممكن است ايجاد علت هاي اوليه از قوانين
كند كه به وسيله اين واقعيت جديد پشتيباني مي شوند.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">4-توصيف دامنة كاربرد عملكرد متقابل و تأثيرات جانبي</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">يك </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> فـــرآيندي اســـت كه به وسيله عملكردهاي جانبي بعضي از اعمال مشخص مي شود. يك نمونه از استفاده </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كنترل در يك سيستم زماني است كه بيانگر دوره اي در مانيتور يك چاپگر و يا ديگر وسايل مي باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span dir="ltr" style="line-height: 150%;"><font size="2">demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> به وسيله يك زمان مشخص مي شود. محيطهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اين ايده را توسعه مي دهند و باعث ايجاد </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> مي شوند كه هنگامي كه هدف توليد يا توصيف شود به كار مي آيند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">چنين </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">هايي براي به زمان نگه داشتن يك نشانگر در پاسخ به تغيير مقدار مورد استفاده قرار مي گيرند. </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> هاي مهم و مطرح اصولاً داراي مقاديري متغير مي باشد كه هنگامي كه ارزش متغير تغيير كند </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> خوانده شده و وقتي كه اين اتفاق افتاد </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
ايجاد و خلق مي شود كه اين وقتي اتفاق مي افتد كه يك مقدار خلق شده باشد و
ارزش ها در قالب گرافيكي فعال مي شوند كه اين فعاليت مي تواند متغير باشد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">5-تداخلگرهاي گرافيكي</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اينها
شامل يك طيفي از امكاناتي مي باشند كه اجازه تداوم و دنبال كردن موارد را
مي دهند. به عنوان مثال نشانگرهاي گرافيكي مي توانند ساختار قوانين يك اصل
اطلاعاتي را به صورت يك درخت توصيف دهند. يكي از مهمترين خصوصيات محيطهاي
هيبريد،‌توانائي اتصال با استفاده از </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">demon</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
مي باشد كه به صورت يك نشانگر گرافيكي متصل به شيء و هدف مي باشد. كه اين
موجب عملكرد گرافيكي براي بيان زمان واقعي نشانگر مي باشد كه در حقيقت
بيشتر محيط ها داراي يك پشتيباني سطح بالاي از داده هاي گرافيكي مي باشند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">6-اجتناب از زبانهاي زيرين</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">روشهايي كه در قالب يك زمان خاص يا پاسخگو مي باشند به وسيله محيط و يا اغلب اوقات </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يا حتي </font></span><span dir="ltr" style="line-height: 150%; position: relative; top: 3pt;"><font size="2"><v:shape id="_x0000_s1028" style="width: 21.75pt; height: 15.75pt;" type="#_x0000_t75" fillcolor="window"><v:imagedata src="file:///C:%5CDOCUME%7E1%5CBEHROO%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.wmz" o:title=""></v:imagedata></v:shape></font></span><span dir="ltr" style="line-height: 150%;"></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">&nbsp;و
يا پاسكال توصيف شده اند كه اين موجب توصيف طيفي فرآيند اطلاات و هم چنين
يك برنامه اطلاعاتي كه طيف وسيعي از زبانهاي كه شكل دهنده هندسي، جهت ها و
سنسورها و يا ديگر عملكردهايي كه به صورت بهتري در قالب روشهاي الگوريتمي
به كار گرفته مي شود را شامل مي شود.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">7-توانائي ترجمه اطلاعات جهت اجراي سريعتر يا تحويل روي يك ماشين كوچكتر</span></b></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">وقتي
كه برنامه شيء گرا كامل شد. يك محيط كامل و توسعه يافته اغلب ، بلندي است
كه به تدريج افول مي كند و پائين مي آيد بيشتر محيط هاي مدرن </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> اجازه كاربرد سريعتر و ساده تر را كه اغلب كوچكتر و ارزانتر است را در يك ماشين ترجمه ايجاد مي كنند.</font></span></font></p><h2 dir="rtl" align="right"><b><span style="line-height: 150%;"><font size="2" face="Tahoma">8.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span></b><font size="2" face="Tahoma"><span dir="rtl"><b><span style="font-family: Nazanin;" lang="AR-SA">يك نمونه هيبريد</span></b></span></font></h2><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">بسياري
از نمونه هاي مطلوب اصولاً از طريق اشيا، ارتباطات و كنش و واكنش متقابل
بين آنها واقع يم شود در شكل زير يك نمونه اتصال به وسيله باطري همراه با
يك سوئيچ براي يك لامپ (شكل 364) در نظر گرفته شده است.</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">لامپ،
باطري و سوئيچ ممكن است هر كدام به وسيله كلاسها بيان شوند كه بيانگر
ويژگيهاي باطري، سوئيچ و لامپ باشد . مشخصه هاي الكترونيكي شكل 2 ممكن است
به عنـــوان موارد بخصوصي از اين كلاس هاي كلي بيان مي شوند. توجه داشته
باشيد كه نمونه ها داراي مقادير نمونه اي مربوط به كلاس خاص شيء مربوط به
خود مي شوند به عنوان مثال اگر سوئيچ 1 در حالت خاموش قرار گيرد. قسمت
كنترل كه مربوط مي شود به لامپ 1 تحت تأثير قرار خواهد گرفت كه اين موارد
در شكل زير نشان داده شده اند.</span></font></p><p dir="rtl" align="right"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">يك قانون ممكن است در اينجا به وجود بيايد كه :</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">اگر نور وارد </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AND</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> نشود، سوئيچ </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AND</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> را بسته و باطري درست است بنابراين بايد به قسمتي كه ممكن است آسيب ديده باشد مراجعه كرد.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">در
نمايش هيبريد قوانين داراي ويژگيهايي هستند كه بيشتر بيانگر مقدار اهميت
كلاسها و اشياء مي باشند.كه در شكل 3 به آن اشاره شده است. اين قانون ممكن
است به عنوان بخشي از قانون اوليه سيستم در تلاش براي به جريان انداختن
اين مدار باشد كه در جاي ديگر براي راه اندازي سوئيچ كنترل براي حالات
متغير است.</span></font></p><h2 dir="rtl"><b><span style="line-height: 150%;"><font size="2" face="Tahoma">9.</font><span style="font-weight: normal; font-style: normal; font-family: Tahoma; font-variant: normal;"><font size="2">&nbsp;&nbsp; </font></span></span></b><font size="2" face="Tahoma"><span dir="rtl"><b><span style="font-family: Nazanin;" lang="AR-SA">انتخاب زبان كاربردي</span></b></span></font></h2><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">همانگونه كه هوش مصنوعي به مرحله رشد مي رسد وقابليت هاي خود را در طيف وسيعي از مسائل كاربردي به اثبات مي رساند اعتماد به </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
نيز مدنظر مي باشد، ‌موارد مربوط به توسعة نرم افزاري، همانند نياز به
تداخلگرها به صورت ساده وآ‌سان همراه با يك كد منطقي تا استفاده از </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> در </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Module</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">هاي كوچكتر و يا بزرگتر در برنامه ها و نياز به ايجاد توسعه استاندارد متأثر از مشتريان دولتي و يا گروهي موجب توسعة سيستم هاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> در انواع زبانهاي مثل </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">C</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> ، </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">&nbsp;, C</font><sup><font size="2">++</font></sup></span><sup><span style="line-height: 150%; font-family: Nazanin;"><font size="2"> </font></span></sup><span dir="ltr" style="line-height: 150%;"><font size="2">Java</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Smalltalk</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> شده است.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">كــه زبــانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> كار خود را در محدودة توسعه و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Prototype</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> سازي سيستم هاي&nbsp; </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> در صنعت و دانشگاهها دنبال مي كنند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">يـــك اطـــلاعات و دانش كاربردي مربوط به اين زبانها به عنوان بخشي از مهارت هر برنامه نويس </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
مي باشد. علاوه بر اين، اين زبانها به عنوان زمينه اي براي بسياري از اين
خصوصيات مي باشند كه در ادامه همكاري با زبانهاي برنامه نويسي جديد مي
باشند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">احتمالاً بهترين نمونه از اين زبانها </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Java</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">
ميباشد كه متناسب با استفاده اولويت ديناميكي اش، داراي مديريت حافظه
اتوماتيك و ديگر خصوصياتي است كه در زبانهاي كه ترجمه شده وجود دارد به
نظر مي رسد كه ديگر زبانهاي برنامه نويسي براي رسيدن به حد مطلوب از
استانداردهاي اين زبانها استفاده مي كنند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">هم چنانكه اين تكامل صورت مي پذيرد و ادامه مي يابد دانش مربوط به </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">LISP</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">PROLOG</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يا </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Small talk</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و روش هاي برنامه نويس قادرند تنها از نظر مقدار توسعه يابند.</font></span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font face="Tahoma"><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2">بنابراين، از اينكه از يكي از اين زبانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">AI</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> استفاده كنيم يا خود را در برنامه نويسي با زبانهاي </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">C</font><sup><font size="2">++</font></sup></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">C</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> و </font></span><span dir="ltr" style="line-height: 150%;"><font size="2">Java</font></span><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA"><font size="2"> يا يكي از زبانهاي رقيب پيدا كنيم راضي و قانع خواهيم بود.</font></span></font><font size="2" face="Tahoma"><span dir="rtl" style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">&nbsp;</span></font></p><p dir="rtl" style="line-height: 150%; text-align: justify;"><font size="2" face="Tahoma"><b><span style="line-height: 150%; font-family: Nazanin;" lang="AR-SA">منابع و مآخذ</span></b></font></p><h5 dir="rtl" style="text-align: justify;"><font size="2" face="Tahoma"><span style="font-family: Nazanin;" lang="AR-SA">كتاب </span></font><font size="2" face="Tahoma">Artificial intelligence structures &amp; strategies for complex problem solving<br /></font><font size="2" face="Tahoma"><span style="font-family: Nazanin;" lang="AR-SA">نوشته </span></font><font size="2" face="Tahoma">George&nbsp; F.Luger &amp; william A. Stubble field<br /></font><font size="2" face="Tahoma"><span style="font-family: Nazanin;" lang="AR-SA">چاپ </span></font><font size="2" face="Tahoma">Wesley long man Inc, 2000</font></h5></span></div></td></tr></tbody></table> ]]>
        
    </content>
</entry>

<entry>
    <title>برنامه چند لایه چیست؟ What is Multi Layer Program?</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/-what-is-multi-layer-program.html" />
    <id>tag:www.sourcenew.com,2009://1.44</id>

    <published>1388-01-28T07:40:30Z</published>
    <updated>1388-01-28T07:43:58Z</updated>

    <summary><![CDATA[ برنامه چند لایه چیست؟ &nbsp;برنامه چند لایه چیست؟در معماری چند لایه تمام برنامه به چندین بخش تقسیم می شود. این بخش ها می توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می دهد مثلا نمایش اینترفیس...]]></summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="آموزش" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="برنامهچندلایهچیست؟whatismultilayerprogram" label="برنامه چند لایه چیست؟ What is Multi Layer Program?" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[<table id="Table3" align="center" border="0" cellpadding="0" cellspacing="0" width="100%" height="80%"><tbody><tr><td bordercolor="#ffffff" align="center" valign="top"><h1 class="Title" align="center">
							<span id="BaseMasterPage1__ctl0__ctl0_TitleLBL" dir="rtl" style="color: DarkRed; font-family: Tahoma; font-size: small;"><a href="http://www.sourcenew.com/">برنامه چند لایه</a> چیست؟</span></h1>
					</td>
				</tr>
				<tr>
					<td bordercolor="#ffffff" align="center" valign="top"><br /></td>
				</tr>
				<tr>
					<td dir="rtl" bordercolor="#ffffff" align="center" valign="top"><br /></td>
				</tr>
				<tr>
					<td bordercolor="#ffffff" align="center" valign="top" height="15"><br /></td>
				</tr>
				<tr>
					<td style="height: 11px;" bordercolor="#ffffff" align="center" valign="top" height="11"><br /></td>
				</tr>
				<tr>
					<td bordercolor="#ffffff" align="center" valign="top">
						<div dir="rtl" align="justify">
							
							<span id="BaseMasterPage1__ctl0__ctl0_body" class="style4" style="font-family: Tahoma; font-size: small;"><p dir="rtl" align="right">&nbsp;</p><p dir="rtl" align="center"><img alt="N-Tier Application" src="http://www.saeedi.persiangig.com/image/blog/ntier.jpg" align="baseline" border="0" vspace="5" hspace="5" /></p><p dir="rtl" align="right"><a href="http://www.sourcenew.com/"><font style="font-weight: 700; font-size: 9pt;" face="Tahoma">برنامه چند لایه چیست؟</font></a></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">در
<a href="http://www.sourcenew.com/">معماری چند لایه</a> تمام برنامه به چندین بخش تقسیم می شود. این بخش ها می
توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می دهد مثلا
نمایش اینترفیس کاربر یا دسترسی به داده ها. برنامه می تواند به هر تعداد
لایه داشته باشد ولی به هر حال بیشتر برنامه ها سه لایه مجزا دارند که
عبارتند از :<br />1- Presentation Layer<br />2- Business Logic Layer <br />3- Data Access Layer </font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">همان
طور که احتمالا حدس زده اید، لایه Presentation چیزی نیست به جز بخشی از
نرم افزار که با کاربر برنامه شما ارتباط برقرار می کند ( اینترفیس برنامه
شماست ) نمایش داده ها به کاربر نهایی و اجازه به آنان برای ارتباط داشتن
با داده ها، اصلی ترین وظیفه این لایه است.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">در
بیشتر موارد داده هایی که توسط کاربر وارد می شوند نیاز به اعتبارسنجی یا
پردازش اضافی دارند. این مسوولیت لایه Business Logic است.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">در
نهایت داده های برنامه شما نیاز به ذخیره و بازیابی از طریق یک انبار داده
دارند ( مثلا سیستم مدیریت دیتابیس های رابطه ای یا RDBMS و یا <span lang="en-us">XML ,</span> .. ) این وظیفه توسط لایه دسترسی به داده انجام&nbsp; می شود.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">به طور خلاصه، فرآیند مورد نظر ما این گونه کار می کند:</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">- کاربر برای داده های برنامه درخواستی ارسال می کند.<br />-
لایه Data Access داده های مورد نظر را بازیابی می کند و از طریق لایه
Business Logic آن ها را به لایه نمایش می فرستد.بعضی مواقع لایه دسترسی
به داده ها، این داده ها را مستقیما به لایه نمایش ارسال می کند.<br />- لایه نمایش اطلاعاتی که باید نمایش داده شوند را از طریق لایه Business Logic دریافت می کند.<br />- کاربر داده ها را تغییر می دهد و عمل مناسب در مورد آن ها را اجرا می کند ( مثل اضافه یا به روز کردن داده ها )<br />- لایه Business Logic صحت داده های وارد شده توسط کاربر را بررسی می کند ( داده ها را اعتبار سنجی می کند)<br />- اگر داده ها معتبر باشند آن ها را برای به روز رسانی در بانک اطلاعاتی به دست لایه دسترسی به داده می سپارد.</font></p><p dir="rtl" align="right"><a href="http://www.sourcenew.com/"><font style="font-weight: 700; font-size: 9pt;" face="Tahoma">مزیت های برنامه های چند لایه</font></a></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">- برنامه ها به چند بخش منطقی جدا از هم تقسیم می شوند و اتصال میان <span lang="en-us">UI</span> ( رابط کاربری ) ، پردازش ها و بانک اطلاعاتی کم می شود.<br />- تغییر در بانک اطلاعاتی یا روال های دسترسی به داده ها تاثیری در لایه نمایش یا برنامه کلاینت نخواهد گذاشت.<br />- برنامه کلاینت با عبارات <span lang="en-us">SQL </span>آمیخته نخواهد شد.<br />- نام جداول و ستون ها به طور موثری از برنامه کلاینت حذف می شوند.<br />- برنامه کلاینت نمی فهمد که داده ها از کجا آمده اند ( چیزی که به آن location transparency گفته می شود )<br />- تغییر یا گسترش برنامه بسیار ساده تر خواهد شد، بدون نیاز به تغییر یا کامپایل مجدد برنامه کلاینت.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">نکته
منفی در معماری چند لایه این است که شما باید تعداد زیادی بخش ها و کلاس
های از هم جدا در نرم افزار بسازید. اما به هر حال مزایای این روش بیشتر و
برتر از معایب آن است.</font></p><p dir="rtl" align="right"><font style="font-weight: 700; font-size: 9pt;" face="Tahoma">انتخاب های لایه<span lang="en-us"> </span>Presentation<span lang="en-us"> </span></font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">دو انتخاب اصلی برای ساخت یک لایه نمایش در دات نت وجود دارد. آنها فرم های ویندوزی یا فرم های وبی <span lang="en-us">ASP.NET</span> هستند.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">با استفاده از ویندوز فرم ها شما می توانید برنامه های دسکتاپ فرم محور ( <span lang="en-us">form base</span>
) معمول را بسازید. برنامه های ویندوز فرمی می توانند المان های رابط
کاربری بسیار غنی به کاربر پیشنهاد کنند.آن ها کم و بیش شبیه به فرم های
ویژوال بیسیک هستند.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">جذاب ترین گزینه برای توسعه لایه نمایش استفاده از وب فرم های <span lang="en-us">ASP.NET</span> است. کنترل هایی مثل دیتاگرید، دیتالیست و تقویم ( <span lang="en-us">Calendar</span> ) یک رابط کاربری قدرتمند را با مقدار کمی کد فراهم&nbsp; می کنند.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">انتخاب
هایی که در بالا برای ساخت یک لایه نمایش بررسی کردیم می توانند توسط زبان
های مختلفی مثل سی شارپ&nbsp; یا ویژوال بیسیک دات نت پیاده سازی شوند. </font></p><p dir="rtl" align="right"><a href="http://www.sourcenew.com/"><font style="font-weight: 700; font-size: 9pt;" face="Tahoma">انتخاب های لایه Business Logic </font></a></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">لایه Business logic از چندین بخش که کارهایی نظیر اعتبار سنجی کار، گردش کار یا کارهای مشابه را انجام می دهند تشکیل شده است. </font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">کامپوننت های دات نت این لایه را شکل می دهند. شما می توانید با interop از کامپوننت های <span lang="en-us">COM</span> استفاده کنید ولی این کار کارآیی را پایین خواهد آورد. </font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">وب سرویس های <span lang="en-us">ASP.NET</span>
هم می توانند به عنوان یک business logic&nbsp; عمل کنند. اما به هر حال آن ها
را نمی توان در همه شرایط به عنوان جایگزین کامپوننت ها به کار برد. وب
سرویس ها تنها زمانی قابل استفاده خواهند بود که اعتبار سنجی در جایی
بیرون از شبکه شما اتفاق افتاده باشد.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">کامپوننت هایی که شما توسعه می دهید به ماندن روی ماشین های مشابه نیازی ندارند. با استفاده از <span lang="en-us">.NET Remoting</span> شما می توانید آن ها را روی چندین ماشین توزیع کنید.</font></p><p dir="rtl" align="right"><font style="font-weight: 700; font-size: 9pt;" face="Tahoma">انتخاب های لایه<span lang="en-us"> Data Access&nbsp; </span></font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">این لایه با دستکاری داده ها مثل اضافه ، حذف و به روز رسانی آن ها سر و کار دارد. داده هایی که به آن ها اشاره کردیم می توانند در <span lang="en-us">RDBMS</span> یا <span lang="en-us">&nbsp;XML</span>
قرار داشته باشند. شما باید لایه دسترسی به داده را چنان طراحی کنید که
دیگر لایه ها نیازی به دانستن وضعیت انبار داده ها نداشته باشند.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma"><span lang="en-us">ADO.NET</span> فناوری دسترسی به داده تحت دات نت است. اگر چه <span lang="en-us">ADO.NET</span> از طریق کلاس های <span lang="en-us">DataReader</span>
اجازه دسترسی به داده های در هنگام اتصال را می دهد ولی بیشترین تمرکز روی
دسترسی به داده ها در زمان متصل نبودن است. دیتاست نقش کلیدی را در این
مورد بازی می کند. در بعضی موارد شما می توانید <span lang="en-us">ADO</span> را هم برای دسترسی به داده ها استفاده کنید ولی استفاده از آن باید دلیل معتبری داشته باشد. از <span lang="en-us">ADO</span> استفاده نکنید فقط به خاطر اینکه <span lang="en-us">RecordSet</span> ها را دوست دارید !</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">این جا هم کامپوننت های دات نت لایه را تشکیل می دهند. همان طور که قبلا گفته شد شما می توانید از کامپوننت های کلاسیک <span lang="en-us">COM</span> هم استفاده کنید.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">همچنین وب سرویس ها هم می توانند لایه دسترسی به داده را شکل دهند. این مخصوصا زمانی درست است که دیتابیس شما فراهم کننده&nbsp; ( <span lang="en-us">provider</span>
)&nbsp; داده ندارد. در این گونه موارد شما می توانید مقداری کد&nbsp; برای اتصال به
داده ها و پر کردن دیتاست ها و بازگرداندن نتایج درون دیتاست به درخواست
کننده داده بنویسید.</font></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">علاوه بر <span lang="en-us">ADO.NET</span> شما می توانید از امکانات سیستم مدیریت دیتابیس خود مثل توابع و یا روال های ذخیره شده ( <span lang="en-us">Stored Procedures</span> ) استفاده کنید.</font></p><p dir="rtl" align="right"><a href="http://www.sourcenew.com/"><font style="font-weight: 700; font-size: 9pt;" face="Tahoma">ارسال داده از یک لایه به لایه دیگر</font></a></p><p dir="rtl" align="right"><font style="font-size: 9pt;" face="Tahoma">در
تمام موارد به ارسال اطلاعات از یک لایه به لایه دیگر نیاز است، به طور
معمول برنامه نویسان از رشته ها ، آرایه ها ، رکوردست های غیرمتصل برای
رسیدن به این هدف استفاده می کنند. در دات نت ، دیتاست ها یک راه فوق
العاده برای انتقال اطلاعات میان لایه ها فراهم می کنند. شما حتی می
توانید با برنامه نویسی یک دیتاست بسازید و آن را با داده های خودتان پر
کنید. اگر اشیا را خیلی دوست دارید می توانید از Typed DataSets استفاده
کنید که در واقع کلاسی مشتق شده از کلاس دیتاست است که جداول و سطرها را
به شکل یک شی معرفی می کند.</font></p></span></div></td></tr></tbody></table> ]]>
        
    </content>
</entry>

<entry>
    <title>قویترین مسنجر برای ایرانیان و فراتر از مرزهای ایران</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/post-6.html" />
    <id>tag:www.sourcenew.com,2009://1.43</id>

    <published>1388-01-27T16:13:19Z</published>
    <updated>1388-01-27T16:25:32Z</updated>

    <summary> همکاری تیمهای سورس نیو و سوران و گیگا یوآرال دوباره نتیجه داد.تیم گیگا یوآرال با در اختیار گذاشتن وی پی اس های اختصاصی و قدرتمند خود به دو تیم سوران و سورس نیو ، بنا بر این شد تا...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="اخبار سايت" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="قویترینمسنجربرایایرانیانوفراترازمرزهایایران" label="قویترین مسنجر برای ایرانیان و فراتر از مرزهای ایران" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[ <style type="text/css">
<!--
.style1 {color: #FF0000}
--></style><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;">
  <a rel="lightbox" href="http://www.sourcenew.com/images/images_page_site/tc268e6kvurpmdq8m1ad.jpg"><img alt="Idei[sourcenew].jpg" src="http://www.sourcenew.com/images/images_page_site/tc268e6kvurpmdq8m1ad.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="200" height="271" /></a>

</span>همکاری تیمهای <a href="http://www.sourcenew.com/">سورس نیو</a> و <a href="http://www.sooran.com/">سوران</a> و <a href="http://www.gigaurl.com/">گیگا یوآرال</a> دوباره نتیجه داد.<br />تیم <a href="http://www.gigaurl.com/">گیگا یوآرال</a> با در اختیار گذاشتن وی پی اس های اختصاصی و قدرتمند خود به دو تیم <a href="http://www.sooran.com/">سوران</a> و <a href="http://www.sourcenew.com/">سورس نیو</a> ، بنا بر این شد تا به زودی طی چند ماه آتی <a href="http://www.sourcenew.com/">قویترین مسنجر برای ایرانیان</a> و فراتر از مرزهای ایران (چند زبانه) تقدیم شما عزیزان گردد.<br /><br />به ما کمک کنید تا آنچه را که شما می خواهید برای شما بسازیم!<br />از ایده های نوی شما در مورد نام برنامه - شکل ظاهری و گرافیکی برنامه و کلیه ی امکانات دیگر برنامه استقبال می شود.<br />اگر ایده ای نو دارید به ما از طریق ایمیل <a href="mailto:dalir.bajlany103@gmail.com">dalir.bajlany103@gmail.com</a> اطلاع دهید تا شما هم عضوی از سازندگان این نرم افزار باشید.<br /><br />با تشکر از شما بازدید کننده گرامی<br />مدیریت سایت <a href="http://www.sourcenew.com/">سورس نیو</a> - <a href="mailto:dalir.bajlany103@gmail.com">دلیر باجلانی</a> <br /><br />]]>
        
    </content>
</entry>

<entry>
    <title>تدریس رایگان برنامه نویسی به صورت الکترونیک برای اولین بار در ایران</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/post-5.html" />
    <id>tag:www.sourcenew.com,2009://1.42</id>

    <published>1388-01-24T15:31:38Z</published>
    <updated>1388-01-28T15:03:25Z</updated>

    <summary> کلاسهای رایگان آموزش برنامه نویسی (این دوره ویژوال بیسیک)به اطلاع همه ی کاربران سورس نیو و همه ی بازدید کنندگان سورس نیو می رسانیم. کلاسهای آموزش رایگان برنامه نویسی به صورت الکترونیک برای اولین بار در ایران برگزار می...</summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="اخبار سايت" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="تدریسرایگانبرنامهنویسیبهصورتالکترونیکبرایاولینباردرایران" label="تدریس رایگان برنامه نویسی به صورت الکترونیک برای اولین بار در ایران" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[ <style type="text/css">
<!--
.style1 {color: #FF0000}
--></style><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;">
  <a rel="lightbox" href="http://www.sourcenew.com/images/images_page_site/1.jpg"><img alt="Education[sourcenew].jpg" src="http://www.sourcenew.com/images/images_page_site/1.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="446" height="271" /></a>

</span><br />
<b><span class="style1"><br /><a href="http://www.sourcenew.com/">کلاسهای رایگان</a> <a href="http://www.sourcenew.com/">آموزش برنامه نویسی</a> (این دوره <a href="http://www.sourcenew.com/">ویژوال بیسیک</a>)</span></b><br /><br />به اطلاع همه ی کاربران <a href="http://www.sourcenew.com/">سورس نیو</a> و همه ی <a href="http://www.sourcenew.com/">بازدید کنندگان</a> سورس نیو می رسانیم. کلاسهای <a href="http://www.sourcenew.com/">آموزش رایگان</a> <a href="http://www.sourcenew.com/">برنامه نویسی </a><a href="http://www.sourcenew.com/">به صورت الکترونیک</a> برای<a href="http://www.sourcenew.com/"> اولین بار در ایران</a> برگزار می گردد.<br />تاریخ شروع کلاسها:1388/1/25<br />محل برگزاری:<a href="http://www.sourcenew.com/">روم آموزش برنامه نویسی</a> در مسنجر ال فور<br /><a href="http://www.sourcenew.com/">ساعت برگزاری</a>: همه شب ساعت 9 شب تا 10 شب<br />توجه:برای دریافت مسنجر ال فور می توانید به <u><a href="http://www.sourcenew.com/1388/01/post-3.html">این صفحه</a> </u>مراجعه نمایید .<br />]]>
        
    </content>
</entry>

<entry>
    <title>دانلود پروژه ي سورس باز ساعت آنالوگ Download Analog Clock open source</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/-download-analog-clock-open-source-1.html" />
    <id>tag:www.sourcenew.com,2009://1.41</id>

    <published>1388-01-20T20:05:43Z</published>
    <updated>1388-01-20T20:14:58Z</updated>

    <summary><![CDATA[ دانلود پروژه سورس باز نرم افزار ساعت آنالوگ Analog Clock براي VBطراحي اين نرم افزار توسط سايت vbsourcecode.persianblog.ir&nbsp; ميباشد هشدار : هرگونه كپي برداري از اين اثر متن باز بدون ذكر منبع سورس نيو ممنوع مي باشد اين پروژه...]]></summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="ویژوال بیسیک" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="دانلودپروژهيسورسبازساعتآنالوگdownloadanalogclockopensource" label="دانلود پروژه ي سورس باز ساعت آنالوگ Download Analog Clock open source" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[ <style type="text/css">
<!--
.style1 {color: #FF0000}
--></style><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;">
  <a rel="lightbox" href="http://www.sourcenew.com/images/images_page_site/New-Clock%5Bsourcenew%5D.jpg"><img alt="New_Clock[sourcenew].jpg" src="http://www.sourcenew.com/images/images_page_site/New-Clock%5Bsourcenew%5D.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="446" height="271" /></a>

</span>دانلود <a href="http://www.sourcenew.com/">پروژه </a><a href="http://www.sourcenew.com/">سورس</a> باز<a href="http://www.sourcenew.com/"> نرم افزار</a> <a href="http://www.sourcenew.com/">ساعت آنالوگ</a><a href="http://www.sourcenew.com/"> Analog Clock</a> براي <a href="http://www.sourcenew.com/">VB</a><br />طراحي اين<a href="http://www.sourcenew.com/"> نرم افزار</a> توسط سايت vbsourcecode.persianblog.ir&nbsp; ميباشد <br />
<b><span class="style1"><br />هشدار : هرگونه كپي برداري از اين اثر متن باز بدون ذكر منبع <a href="http://www.sourcenew.com/">سورس </a>نيو ممنوع مي باشد </span></b><br /><br />اين پروژه قابل ويرايش در<a href="http://www.sourcenew.com/"> ويژال بيسيك</a> <a href="http://www.sourcenew.com/">visual basic</a><br />استفاده در : <a href="http://www.sourcenew.com/">پروژه </a>هاي <a href="http://www.sourcenew.com/">دانشجويي </a>و دانش آموزش و كاربران علاقه مند <br /><img src="http://www.sourcenew.com/images/images_page_site/download.gif" align="texttop" vspace="1" width="16" height="16" />لينك دانلود نرم افزار :&nbsp; <br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.sourcenew.com/program/vb_open_source_project/Sourcenew_New_Clock_vbsource_free_%5Bwww.sourcenew.com%5D.zip">دريافت New Clock.zip</a></span>
<p><br /></p><p>پسورد فايل : <a href="http://www.sourcenew.com/">www.sourcenew.com</a><br />
  <img src="http://www.sourcenew.com/images/images_page_site/pictures.gif" align="texttop" vspace="1" width="16" height="16" /> <a rel="lightbox" href="http://www.sourcenew.com/images/images_page_site/New-Clock%5Bsourcenew%5D.jpg" target="_blank">تصویر محیط برنامه</a><br />
  <img src="http://www.sourcenew.com/images/images_page_site/home.gif" align="texttop" vspace="1" width="16" height="16" /> <a href="http://www.vbsourcecode.persianblog.ir/" target="_blank">سایت سازنده</a><br />
  <a href="http://www.sourcenew.com/"><img src="http://www.sourcenew.com/images/images_page_site/undo.gif" align="texttop" vspace="1" width="16" height="16" />لينك منبع </a><br /></p>]]>
        
    </content>
</entry>

<entry>
    <title>دانلود پروژه ی سورس باز درصد کارکرد پردازندهDownload CPU Display Open Source</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/-download-cpu-display-open-source.html" />
    <id>tag:www.sourcenew.com,2009://1.40</id>

    <published>1388-01-17T07:37:32Z</published>
    <updated>1388-01-17T07:39:17Z</updated>

    <summary><![CDATA[ دانلود پروژه سورس باز نرم افزار نمایش درصد کارکرد پردازنده CPU Display براي VBطراحي اين نرم افزار توسط سايت VisualBasic.Blogfa.com&nbsp; ميباشد هشدار : هرگونه كپي برداري از اين اثر متن باز بدون ذكر منبع سورس نيو ممنوع مي باشد...]]></summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="ویژوال بیسیک" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="دانلودپروژهیسورسبازدرصدکارکردپردازندهdownloadcpudisplayopensource" label="دانلود پروژه ی سورس باز درصد کارکرد پردازندهDownload CPU Display Open Source" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[ <style type="text/css">
<!--
.style1 {color: #FF0000}
--></style><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;">
  <a rel="lightbox" href="http://www.sourcenew.com/images/images_page_site/Display_CPU%5Bsourcenew%5D.jpg"><img alt="Display_CPU[sourcenew].jpg" src="http://www.sourcenew.com/images/images_page_site/Display_CPU%5Bsourcenew%5D.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="446" height="271" /></a>

</span>دانلود <a href="http://www.sourcenew.com/">پروژه </a>سورس باز<a href="http://www.sourcenew.com/"> نرم افزار</a> <a href="http://www.sourcenew.com/">نمایش درصد کارکرد پردازنده</a><a href="http://www.sourcenew.com/"> CPU Display</a> براي <a href="http://www.sourcenew.com/">VB</a><br />طراحي اين<a href="http://www.sourcenew.com/"> نرم افزار</a> توسط سايت VisualBasic.Blogfa.com&nbsp; ميباشد <br />
<b><span class="style1"><br />هشدار : هرگونه كپي برداري از اين اثر متن باز بدون ذكر منبع <a href="http://www.sourcenew.com/">سورس </a>نيو ممنوع مي باشد </span></b><br /><br />اين پروژه قابل ويرايش در<a href="http://www.sourcenew.com/"> ويژال بيسيك</a> <a href="http://www.sourcenew.com/">visual basic</a><br />استفاده در : <a href="http://www.sourcenew.com/">پروژه </a>هاي <a href="http://www.sourcenew.com/">دانشجويي </a>و دانش آموزش و كاربران علاقه مند <br /><img src="http://www.sourcenew.com/images/images_page_site/download.gif" vspace="1" width="16" align="texttop" height="16" />لينك دانلود نرم افزار :&nbsp; <br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.sourcenew.com/program/vb_open_source_project/Sourcenew_Display_CPU_vbsource_free_%5Bwww.sourcenew.com%5D.zip">دريافت CPU Display.zip</a></span>
<p><br /></p><p>پسورد فايل : <a href="http://www.sourcenew.com/">www.sourcenew.com</a><br />
  <img src="http://www.sourcenew.com/images/images_page_site/pictures.gif" vspace="1" width="16" align="texttop" height="16" /> <a rel="lightbox" href="http://www.sourcenew.com/images/images_page_site/Display_CPU%5Bsourcenew%5D.jpg" target="_blank">تصویر محیط برنامه</a><br />
  <img src="http://www.sourcenew.com/images/images_page_site/home.gif" vspace="1" width="16" align="texttop" height="16" /> <a href="http://www.visualbasic.blogfa.com/" target="_blank">سایت سازنده</a><br />
  <a href="http://www.sourcenew.com/"><img src="http://www.sourcenew.com/images/images_page_site/undo.gif" vspace="1" width="16" align="texttop" height="16" />لينك منبع </a><br /></p>]]>
        
    </content>
</entry>

<entry>
    <title>دانلود پروژه ی سورس باز ساعت آنالوگ Download Analog Clock Open Source</title>
    <link rel="alternate" type="text/html" href="http://www.sourcenew.com/1388/01/-download-analog-clock-open-source.html" />
    <id>tag:www.sourcenew.com,2009://1.39</id>

    <published>1388-01-17T07:28:23Z</published>
    <updated>1388-01-19T15:12:44Z</updated>

    <summary><![CDATA[ دانلود پروژه سورس باز نرم افزار ساعت آنالوگ Analog Clock براي VBطراحي اين نرم افزار توسط سايت Unknow&nbsp; ميباشد هشدار : هرگونه كپي برداري از اين اثر متن باز بدون ذكر منبع سورس نيو ممنوع مي باشد اين پروژه...]]></summary>
    <author>
        <name>مدیر سایت</name>
        <uri>http://www.sourcenew.com</uri>
    </author>
    
        <category term="ویژوال بیسیک" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="دانلودپروژهیسورسبازساعتآنالوگdownloadanalogclockopensource" label="دانلود پروژه ی سورس باز ساعت آنالوگ Download Analog Clock Open Source" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://www.sourcenew.com/">
        <![CDATA[ <style type="text/css">
<!--
.style1 {color: #FF0000}
--></style><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;">
  <a rel="lightbox" href="http://www.sourcenew.com/images/images_page_site/Analog_Clock%5Bsourcenew%5D.jpg"><img alt="Analog Clock[sourcenew].jpg" src="http://www.sourcenew.com/images/images_page_site/Analog_Clock%5Bsourcenew%5D.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="446" height="271" /></a>

</span>دانلود <a href="http://www.sourcenew.com/">پروژه </a>سورس باز<a href="http://www.sourcenew.com/"> نرم افزار</a> <a href="http://www.sourcenew.com/">ساعت آنالوگ</a><a href="http://www.sourcenew.com/"> Analog Clock</a> براي <a href="http://www.sourcenew.com/">VB</a><br />طراحي اين<a href="http://www.sourcenew.com/"> نرم افزار</a> توسط سايت Unknow&nbsp; ميباشد <br />
<b><span class="style1"><br />هشدار : هرگونه كپي برداري از اين اثر متن باز بدون ذكر منبع <a href="http://www.sourcenew.com/">سورس </a>نيو ممنوع مي باشد </span></b><br /><br />اين پروژه قابل ويرايش در<a href="http://www.sourcenew.com/"> ويژال بيسيك</a> <a href="http://www.sourcenew.com/">visual basic</a><br />استفاده در : <a href="http://www.sourcenew.com/">پروژه </a>هاي <a href="http://www.sourcenew.com/">دانشجويي </a>و دانش آموزش و كاربران علاقه مند <br /><img src="http://www.sourcenew.com/images/images_page_site/download.gif" align="texttop" vspace="1" width="16" height="16" />لينك دانلود نرم افزار :&nbsp; <br /><span class="mt-enclosure mt-enclosure-file" style="display: inline;"><a href="http://www.sourcenew.com/program/vb_open_source_project/Sourcenew_Analog_Clock_vbsource_free_%5Bwww.sourcenew.com%5D.zip">دريافت Analog Clock.zip</a></span>
<p><br /></p><p>پسورد فايل : <a href="http://www.sourcenew.com/">www.sourcenew.com</a><br />
  <img src="http://www.sourcenew.com/images/images_page_site/pictures.gif" align="texttop" vspace="1" width="16" height="16" /> <a rel="lightbox" href="http://www.sourcenew.com/images/images_page_site/Analog_Clock%5Bsourcenew%5D.jpg" target="_blank">تصویر محیط برنامه</a><br />
  <a href="http://www.sourcenew.com/"><img src="http://www.sourcenew.com/images/images_page_site/undo.gif" align="texttop" vspace="1" width="16" height="16" />لينك منبع </a><br /></p>]]>
        
    </content>
</entry>

</feed>
