لیسپ یک زبان برنامهنویسی است که در سال ۱۹۵۸ به وسیلهٔ جان مک کارتی ابداع شدهاست. این زبان، مانند زبان برنامهنویسی پرولوگ، بیشتر برای برنامهنویسی هوش مصنوعی مورد استفاده قرار میگیرد. با توجه به اینکه زبان لیسپ از نحو سادهای برخوردار است، تجزیه و پیادهسازی آن نسبتاً اسان انجام میشود.
ساختار کلی زبان لیسپ به چه صورت است؟
متن برنامههای لیسپ از نمادها و لیستهایی از نمادها تشکیل میشود و برای همین است که این زبان لیسپ (مخفف پردازش لیست) نامیده شدهاست. یکی از ویژگیهای جالب زبان لیسپ این است که خود برنامههای لیسپ نیز لیست هستند و بنا بر این، میتوان با برنامهها به عنوان دادهها رفتار کرد و یا دادهها را به عنوان برنامه سنجید. لیسپ دارای گویشهای مختلفی است که بعضی از آنها دارای قابلیتهای شیءگرا نیز هستند. از میان آن ها میتوان به کامن لیسپ اشاره کرد. در ابتدا لیسپ به عنوان علامتگذاری و نمادسازی ریاضیات و برای برنامههای کامپیوتری ابداع شد. زبان لیسپ به سرعت مورد توجه برنامه نویسان از جمله برای تحقیقات علمی هوش مصنوعی قرار گرفت. لیسپ یکی از ابتدائی ترین زبانهای برنامه نویسی میباشد. لیسپ شامل ساختمان دادهٔ درخت، مدریت نگهداری اتوماتیک، برنامه نویسی پویا، برنامه نویسی شی گرا و کامپایلر مستقل میباشد.
لیست یک مفهوم پایهای در زبان لیسپ !
نام لیسپ از زبان پردازش لیست گرفته شدهاست. لینک لیست یکی از قسمتهای اصلی ساختمان دادهٔ زبان لیسپ است و سورس کد لیسپ از لیستها ساخته شدهاست و میتواند به عنوان ساختمان داده عمل کند. پیشرفت و توسعهٔ سیستم ماکرو به برنامه نویسان اجازه میدهد تا ترکیبهای جدید ویا حتی حیطهٔ زبانهای برنامه نویسی ویژهای را ایجاد کرده و در زبان لیسپ تعبیه کنند. قابلیت تبادل کدها و دادهها به زبان لیسپ قابلیت تشخیص ترکیبها را میدهد، همهٔ کدهای برنامه به صورت عبارتهای نمادین یا لیستهای پرانتز گذاری شده نوشته شدهاند. یک تابع میتواند توسط خودش ویا توابع دیگر فراخوانی شود ویا طبق قواعد نحوی نوشتن یک لیست و استفاده از اول نام عملگرها و پیروی کردن از قواعد آرگومانها ایجاد شود.
تاریخچه زبان لیسپ:
زبان برنامهنویسی لیسپ توسط جان مک کارتی در سال ۱۹۵۸ در حالی که در مؤسسهٔ فناوری ماساچوست (MIT) بود ابداع شد. مک کارتی طرح خودش را در یک مقالهٔ مرتبط با انجمن ماشین آلات کامپیوتری در سال ۱۹۶۰ منتشر کرد. طرح وی در ابتدا به صورت «بخش اول:توابع بازگشتی از دید عبارتهای نمادین و محاسبهٔ آنها توسط ماشین» ارائه شد و بخش دوم آن هیچگاه منتشر نشد. وی نشان داد که با یک تعداد ساده و کمی از عملگرها و علمتگذاری توابع میتوان یک زبان تورینگ کامل برای الگوریتمها ایجاد کرد. زبان پردازش اطلاعات اولین زبان هوش مصنوعی بود. از سال ۱۹۵۵ یا ۱۹۵۶ و پیش از آن ایدههای بسیاری بر زبان لیسپ وارد شد از جمله پردازش لیست و توابع بازگشتی که در زبان لیسپ به کار برده شد. ثبتهای اصلی مک کارتی به صورت عبارتهای غیر نمادین که خواستار تفسیر کردن و برگرداندن به عبارتهای نمادین بود.
ترکیب و معنا شناسی:
لیسپ یک عبارت جهتدار است، برخلاف بیشتر زبانهای دیگر، بین عبارتها و جملهها تمایز و فرقی وجود ندارد. همهٔ کدها و دادهها به عنوان عبارتها نوشته شدهاند – زمانی که یک عبارت ارزیابی میشود یک مقدار (یا یک لیستی از مقادیر) را میسازد، که آن هم در داخل عبارات دیگر جاسازی میشود. مقالهٔ ۱۹۵۸ مک کارتی دو نوع از ترکیبها را معرفی کرد: عبارت نمادین Sexps هم نامیده میشود، که بازتابی از نمایش داخلی کدها و داده هاست و عبارت غیر نمادین هرگز مورد توجه قرار نگرفت و تقریباً همهٔ زبانها امروزه از عبارات نمادین استفاده میکنند. استفاده از پرانتزگذاریها تفاوت بسیار آشکار و مشهودی میان لیسپ و دیگر زبانهای برنامه نویسی ایجاد کردهاست. اسم مستعار LISP از Lost In Stupid Parenthese و یا Lost of Irritating Supper fluous parenthese گرفته شدهاست. هرچند ترکیب عبارتهای نمادین مسئولی برای توان لیسپ است، این ترکیب به شدت با قاعده و منظم است. هرچند ترکیبات لیسپ به نمادگذاری قدیمی محدود نشدهاند میتواند به سبکهای دیگر توسعه پیدا کند. تکیه روی عبارتها، قابلیت انعطاف پذیری زیادی به زبان میدهد، زیرا توابع لیسپ به صورت لیست نوشته شدهاند، آنها دقیقاً مانند دادهها میتوانند پردازش شوند، این قابلیت اجازه میدهد برنامههای لیسپ به سادگی و راحتی نوشته شوند و به نسبت برنامههای دیگر به راحتی اداره شوند.
از لینک زیر میتوانید برای درک بهتر این زبان استفاده کنید:
http://en.wikipedia.org/wiki/Lisp_(programming_language)