V. ساير روشهاي برنامهنويسي
در اين مقاله قبلاً زبانهاي AI را با روشهاي برنامهنويسي دستوري مقايسه كرديم. زبانهاي شيء گرا به الگوي برنامهنويسي مشهور ديگري تعلق دارند. در اين جور زبانها اولين وسيله براي تعيين مسئلهها، تعيين خلاصه ساختارهاي داده است كه كلاسها، اشياءنام دارند. يك كلاس شامل يك ساختار داده همراه با عمليات اصلياش كه اغلب اسلوبها (روشها) نام دارند است. يك ويژگي مهم اين است كه ممكن است كلاسها در سلسله مراتبي از كلاسها و زير كلاسها مرتب شوند. يك كلاس ميتواند صفات سوپر كلاسهايش كه پيمانهاي بودن را پشتيباني ميكنند را به ارث ببرد.
مشهورترين زبانهاي شيءگرا C++,Eiffel و Java (جاوا) هستند. سيستم Common Lisp شيءگرا يك توسعه از common Lisp است. آن يكپارچهسازي كامل برنامهنويسي تابعي و شيءگرا را پشتيباني ميكند. اخيراً جاوا در بعضي از زمينهها AI، خصوصاً در فنآوري عامل هوشمند، موتورهاي جستجوي اينترنت يا استخراج دادهها كاملاً مشهور شده است. جاوا بر مبناي C++ است و زبان اصلي براي برنامهنويسي كاربردهاي اينترنتي است. مهمترين ويژگيهاي زبان كه جاوا را از چشمآنداز AI جذاب ميسازد فضاي هرز خودكار پيشساخته آن و مكانيزم چند نخي (چند وظيفهاي) آن است.
با افزايش تحقيقات در زمينه وب هوشمند يك الگوي برنامهنويسي جديد- برنامهنويسي عاملگرا – پديدار شد. برنامهنويسي عاملگرا يك الگوي جديد برنامهنويسي است كه يك نماي اجتماعي از محاسبه را به خوبي پشتيباني ميكند. در AOP اشياء بعنوان عاملهايي شناخته ميشوند كه براي دستيابي به اهداف شخصي عمل ميكنند. عامل در يك ساختار ميتواند به پيچيدگي شبكه سراسري اينترنت يا به سادگي يك پيمانه (ماجول) از يك برنامه معمولي باشد. عاملها ميتوانند موجوديتهاي مستقل باشند يعني بدون دخالت كاربر براي گام بعديشان تصميم بگيرند، يا ميتوانند قابل كنترل باشند، يعني بعنوان وسيلهاي بين كاربر و عاملهاي ديگر بكار بردند. از آنجايي كه عاملها زنده در نظر گرفته ميشوند، با رشد موجوديتهاي نرمافزار، به نظر ميرسد انتقالي از نقطهنظر زبانهاي برنامهنويسي به طرف نقطهنظر سكوي پيشرفت نرمافزار پديدار ميشود. اينجا تأكيد روي طراحي سيستم، سكوي پيشرفت و اتصال است. سئوالات حساس عبارتنداز: چگونه تعدادي از منابع پيشرفته AI كه در زبانها و سكوهاي مختلف موجودند ميتوانند با ساير منابع استفادهكننده از ابزارهاي پيشرفت سيستم جديد مانند CORBA (معماري عادي رابط درخواست شئ) تركيب شوند (يكپارچه شوند)، خلاصهسازي عمومي انواع داده و زبانهاي تفسيري(يادداشت حاشيهاي) مانند XML و زبان استاندارد ارتباطات عاملگرا مانند KQML (زبان شناخت پرس و جو و دستكاري).
بنابراين آينده برنامهنويسي AI كمتر نگران سئوالاتي مثل: ” مناسبترين الگوي برنامهنويسي چيست؟ “ است ولي بايد به سئوالاتي مثل: ” چگونه ميتوانم الگوهاي مختلف برنامهنويسي را زير يك سايبان يكپارچه كنم؟ “ و ” بهترين زبان ارتباطي براي نرمافزارهاي مستقل پيمانهاي هوشمند چيست؟ “ پاسخ دهيم.
*اين مقاله ترجمهاي است از:
Neumann, Gunter Programming Languages in Artificial Intelligence. In: Bentley & Bidgoli: Encyclopedia of Information Systems,
Academic Press, San Diego, 2002
http://www.dfki.de/~neumann/publications/new-ps/ai-pgr.pdf
VI. منابعي براي مطالعه بيشتر
1.Charniak, E., Riesbeck, C.K., McDermott, D.V. and Meehan, J.R., 1980, Artificial Intelli- gence Programming, Lawrence Erlbaum Associates, Hillsdale, New Jersey.
2.Clocksin, W.F. and Mellish, C.S, 1987, Programming in Prolog, Springer, Berlin, Germany.
3.Keene, S.E., 1988, Object–Oriented Programming in Common Lisp, Addison–Wesley, Read-ing, Massachusetts.
4.Luger, G.F. and Stubblefield, W.A., 1993, Artificial Int elligence: Structures and Strategies
for Complex Problem Solving, second edition, Benjamin/Cummings, Redwood City, Cali-fornia.
5.Norvig, P., 1992, Artificial Intellig ence Programming, Morgan Kaufman Publishers, San ateo, California.
6.Pereira, F.C.N. and Shieber, S.M., 1987, Prolog and Natural Language Analysis, CSLI Lecture Notes, Number 10, Stanford University Press, Stanford, California, 1987.
7.Sebesta, R.W., 1999, Concepts of Programming Languages, fourth edition, Addison–Wesley, Reading, Massachusetts.
8.Ullman, J.D., 1997, Elements of ML Programming, second edition, Prentice-Hall.
9.Watson, M., 1997, Intelligent Java Applications for the Internet and Intranets, Morgan Kaufman Publishers, San Mateo, California.
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست
|