از ويکيپديا، دانشنامه? آزاد
ليسپ ليسپ يک زبان برنامهنويسي رايانه است که در سال ???? به وسيله? جان مککارتي ابداع شدهاست. اين زبان، مانند زبان برنامهنويسي پرولوگ، بيشتر براي برنامهنويسي هوش مصنوعي مورد استفاده قرار ميگيرد. با توجه به اينکه زبان ليسپ از نحو سادهاي برخوردار است، تجزيه و پيادهسازي آن نسبتاً با سهولت انجام ميشود.
متن برنامههاي ليسپ عموماً از نمادها و ليستهايي از نمادها تشکيل ميشود و بدين خاطر است که اين زبان ليسپ (مخفف پردازش ليست) ناميده شدهاست. يکي از ويژگيهاي جالب زبان ليسپ اين است که خود برنامههاي ليسپ نيز ليست هستند و بنا بر اين، ميتوان با برنامهها به عنوان دادهها رفتار کرد و يا دادهها را به عنوان برنامه ارزيابي نمود.
ليسپ داراي گويشهاي مختلفي است که بعضي از آنها داراي قابليتهاي شيءگرا نيز هستند. از اين ميان ميتوان به کامن ليسپ اشاره کرد.
در ابتدا ليسپ به عنوان علامتگذاري و نمادسازي رياضيات و براي برنامههاي کامپيوتري ابداع شد.زبان ليسپ به سرعت مورد توجه برنامه نويسان از جمله براي تحقيقات علمي هوش مصنوعي قرار گرفت.ليسپ يکي از ابتدائي ز بانهاي برنامه نويسي ميباشد،ودر علوم کامپيوتر بر بسياري از تفکرات و ايدهها پيشگام بود.ليسپ شامل ساختمان داده? درخت،مدريت نگهداري اتوماتيک،برنامه نويسي پويا،برنامه نويسي شي گرا و کامپايلر مستقل ميباشد.
نام ليسپ از زبان پردازش ليسپ گرفته شدهاست.لينک ليست يکي از قسمتهاي اصلي ساختمان داده? زبان ليسپ است و سورس کد ليسپ از ليستها ساخته شدهاست و ميتواند به عنوان ساختمان داده عمل کند.پيشرفت و توسعه? سيستم ماکرو به برنامه نويسان اجازه ميدهد تا ترکيبهاي جديد ويا حتي حيطه? زبانهاي برنامه نويسي ويژهاي را ايجاد کرده و در زبان ليسپ تعبيه کنند. قابليت تبادل کدها و دادهها به زبان ليسپ قابليت تشخيص ترکيبها را ميدهد،همه? کدهاي برنامه به صورت عبارتهاي نمادين يا ليستهاي پرانتز گذاري شده نوشته شدهاند.
يک تابع ميتواند توسط خودش ويا توابع ديگر فراخواني شود ويا طبق قواعد نحوي نوشتن يک ليست و استفاده از اول نام عملگرها و پيروي کردن از قواعد آرگومانها ايجاد شود.به عنوان مثال تابع fداراي 3 آرگومان ميباشد و به صورت مقابل توانائي فراخواني را دارد و مورد استفاده قرار ميگيرد:
(f x y z)