از ويکيپديا، دانشنامه? آزاد
ليسپ ليسپ يک زبان برنامهنويسي رايانه است که در سال ???? به وسيله? جان مککارتي ابداع شدهاست. اين زبان، مانند زبان برنامهنويسي پرولوگ، بيشتر براي برنامهنويسي هوش مصنوعي مورد استفاده قرار ميگيرد. با توجه به اينکه زبان ليسپ از نحو سادهاي برخوردار است، تجزيه و پيادهسازي آن نسبتاً با سهولت انجام ميشود.
متن برنامههاي ليسپ عموماً از نمادها و ليستهايي از نمادها تشکيل ميشود و بدين خاطر است که اين زبان ليسپ (مخفف پردازش ليست) ناميده شدهاست. يکي از ويژگيهاي جالب زبان ليسپ اين است که خود برنامههاي ليسپ نيز ليست هستند و بنا بر اين، ميتوان با برنامهها به عنوان دادهها رفتار کرد و يا دادهها را به عنوان برنامه ارزيابي نمود.
ليسپ داراي گويشهاي مختلفي است که بعضي از آنها داراي قابليتهاي شيءگرا نيز هستند. از اين ميان ميتوان به کامن ليسپ اشاره کرد.
در ابتدا ليسپ به عنوان علامتگذاري و نمادسازي رياضيات و براي برنامههاي کامپيوتري ابداع شد.زبان ليسپ به سرعت مورد توجه برنامه نويسان از جمله براي تحقيقات علمي هوش مصنوعي قرار گرفت.ليسپ يکي از ابتدائي ز بانهاي برنامه نويسي ميباشد،ودر علوم کامپيوتر بر بسياري از تفکرات و ايدهها پيشگام بود.ليسپ شامل ساختمان داده? درخت،مدريت نگهداري اتوماتيک،برنامه نويسي پويا،برنامه نويسي شي گرا و کامپايلر مستقل ميباشد.
نام ليسپ از زبان پردازش ليسپ گرفته شدهاست.لينک ليست يکي از قسمتهاي اصلي ساختمان داده? زبان ليسپ است و سورس کد ليسپ از ليستها ساخته شدهاست و ميتواند به عنوان ساختمان داده عمل کند.پيشرفت و توسعه? سيستم ماکرو به برنامه نويسان اجازه ميدهد تا ترکيبهاي جديد ويا حتي حيطه? زبانهاي برنامه نويسي ويژهاي را ايجاد کرده و در زبان ليسپ تعبيه کنند. قابليت تبادل کدها و دادهها به زبان ليسپ قابليت تشخيص ترکيبها را ميدهد،همه? کدهاي برنامه به صورت عبارتهاي نمادين يا ليستهاي پرانتز گذاري شده نوشته شدهاند.
يک تابع ميتواند توسط خودش ويا توابع ديگر فراخواني شود ويا طبق قواعد نحوي نوشتن يک ليست و استفاده از اول نام عملگرها و پيروي کردن از قواعد آرگومانها ايجاد شود.به عنوان مثال تابع fداراي 3 آرگومان ميباشد و به صورت مقابل توانائي فراخواني را دارد و مورد استفاده قرار ميگيرد:
(f x y z)
زبان برنامه نويسي ليسپ توسط جان مک کارتي در سال 1958 در حالي که در مؤسسه? فناوري ماساچوست (MIT) بود ابداع شد.مک کارتي طرح خودش را در يک مقاله? مرتبط با انجمن ماشين آلات کامپيوتري در سال 1960 منتشر کرد.طرح وي در ابتدا به صورت «بخش اول:توابع بازگشتي از ديد عبارتهاي نمادين و محاسبه? آنها توسط ماشين» ارائه شد و بخش دوم آن هيچگاه منتشر نشد.وي نشان داد که با يک تعداد ساده و کمي از عملگرها و علمتگذاري توابع ميتوان يک زبان تورينگ کامل براي الگوريتمها ايجاد کرد. زبان پردازش اطلاعات اولين زبان هوش مصنوعي بود. از سال 1955 يا 1956 و پيش از آن ايدههاي بسياري بر زبان ليسپ وارد شد از جمله پردازش ليست و توابع بازگشتي که در زبان ليسپ به کار برده شد. ثبتهاي اصلي مک کارتي به صورت عبارتهاي غير نمادين که خواستار تفسير کردن و برگرداندن به عبارتهاي نمادين بود.به عنوان مثال عبارت غير نمادين car[cons[A,B]] معادل عبارت نمادين (car (cons A B)بود که در زبان ليسپ به کار گرفته شده بود.برنامه نويسان به سرعت عبارت نمادين را انتخاب و عبارتهاي غير نمادين را ترک کردند.
ليسپ براي اولين بار توسط استفان راسل روي يک کامپيوتر IBM 704 اجرا شد. راسل مقاله? مک کارسي را مطالعه کرد و دريافت که توابع ليسپ ميتوانند در کد ماشين اجرا شوند. اين نتيجه از مطالعه و دريافت راسل نشان ميدهد که مفسر ليسپ ميتوانست براي اجراي برنامههاي ليسپ و ارزيابي صحيح عبارت ليسپ استفاده شود.
دو زبان اسمبلي به عنوان دو عمليات اصلي و ابتدائي تجزيه و جدا کردن عناصر اصلي ليست براي IBM 704 شد.اين دو زبان اسمبلي car (مضمون آدرس ثبات) و cdr (محتواي کاهش ميزان ثباتها) نسخه? ليسپ هنوز ازcar وcdr براي عملياتي که اولين عنصر در يک ليست و باقي مانده? ليست را برميگرداند،استفاده ميکند.
اولين کامپايلر تکميل شده? ليسپ،در سال 1962توسط تام هارت و مايک لوين در MIT اجرا شد، اين کامپالر معرفي شده مدل ليسپ با کامپايلر نحوي در هر کامپايل و ترجمه? توابع ميتواند به طور رايگان در هم بياميزد.
زبان به کار گرفته شده در ثبت هارت و لوين نسبت به کدهاي ابتدائي مک کارتي به شيوه? ليسپ مدرن و جديد نزديک تر ميباشد.
پيوستن به هوش مصنوعي:
بعد از شروع ليسپ ، ليسپ به انجمن تحقيقاتي هوش مصنوعي پيوست ، خصوصا به سيستمهاي PDP ، زبان ليسپ به عنوان پياده ساز طرح کوچک زبان برنامه نويسي استفاده ميشود که مبنايي براي سيستم معروف هوش مصنوعي SHRLU بود.