Lisp היא משפחת שפות תכנות פונקציונליות (שפות שמדגישות שימוש בפונקציות) עם תחביר ייחודי של כתיב תחיליתי וביטויי־S. ביטויי־S הם צורות כתיבה שבהן הפונקציה והארגומנטים נרשמים בתוך סוגריים. השם נגזר מ־"List Processor", מעבד רשימות, כי Lisp נוצרה כדי לעבוד עם רשימות. Lisp הוצגה לראשונה ב־1958, והיא שפת התכנות העילית השנייה הוותיקה ביותר בשימוש, אחרי Fortran.
Lisp פותחה על ידי ג'ון מקארתי ב־MIT. מקארתי פירסם את הרעיונות המרכזיים ב־1960. היישום המעשי הראשון נעשה על מחשב IBM 704 על ידי סטיב ראסל, שהראה שמפרש של Lisp אפשרי בקוד מכונה. שמות הפקודות car ו־cdr נשארו מאז: הן מחזירות את הפריט הראשון של רשימה ואת יתר הרשימה בהתאמה. השפה התפתחה עם ניבים רבים ושפות־מאקרו שנמצאות בתוך תוכנות כמו Emacs.
בשנות ה־80 וה־90 נעשה מאמץ לאחד את הניבים לתקן אחד, וזה הוליד את Common Lisp. התקן הרשמי של Common Lisp פורסם בשנת 1994.
Lisp חידשה רעיון חשוב שנקרא homoiconicity, מבנה הקוד דומה למבני הנתונים. כלומר, תוכנה ב־Lisp יכולה לקרוא ולשנות קוד כאילו זה נתונים. זה מוביל ליכולת חזקה של מטא־תכנות (כתיבת תוכנות שמייצרות או משנות תוכנות) וניצול פונקציות מאקרו שמרחיבות את השפה.
מקארתי הציג גם את נוסח ה־if-then-else בתוך Lisp, ורעיונות מ־Lisp השפיעו על שפות אחרות. Lisp הייתה הראשונה להציג מנגנון איסוף זבל (garbage collection) שמנקה זיכרון שאינו בשימוש, רעיון שאומץ בשפות רבות אחריה.
ב־Lisp אין הבדל יסודי בין קוד לנתונים; הכל כתוב כביטויים שמוערכים בזמן ריצה. השימוש הנרחב בסוגריים משקף את מבנה התוכנית. לדוגמה קריאה פשוטה לפונקציה נכתבת בצורת רשימה: (f x y z). היתרון הוא שניתן לשנות ולהרחיב את התחביר בזמן ריצה.
מטא־תכנות נפוץ ב־Lisp, וכך נכתבים מאקרו שמוסיפים יכולות חדשות בלי לשנות המהדר עצמו.
ביטויי־S הם הצורה הבסיסית לכתיבת קוד ונתונים. כל פונקציה וארגומנט מוקפים בסוגריים. כתיבה זו מקלה על ניתוח הקוד ועל יצירת תוכנות שמשנות את עצמן.
שימוש בכתיב תחיליתי: (+ 1 2 3) מחזיר 6. פעולה רקורסיבית (שקוראת לעצמה) נפוצה ב־Lisp. פקודות מרכזיות על רשימות הן car (או first) לקבלת הפריט הראשון, ו־cdr (או rest) לקבלת שאר הרשימה.
ישנם ניבים רבים של Lisp, אך המשותף להם הוא ביטויי־S. הניבים הראשיים היום הם Common Lisp ו־Scheme. קיימים ניבים מודרניים חשובים כמו Clojure ו־Racket, וכן Emacs Lisp כשפת תסריט בתוך העורך Emacs.
במאה ה־21 חלה התעוררות בעניין Lisp. קהילות ופלטפורמות כמו Quicklisp (ניהול חבילות ל־Common Lisp) ו־CLiki מסייעות למפתחים להחליף קוד ולמצוא חבילות. מתכנתים חדשים מצדיקים את Lisp כיעילה ומיוחדת מבחינת חשיבה ותכנות.
Lisp היא משפחה של שפות תכנות. השם אומר "מעבד רשימות".
השפה נוצרה ב־1958 בחוגי MIT. היא מאוד ישנה ועדיין בשימוש.
היוצר העיקרי היה ג'ון מקארתי. בתרגום רעיוןיו הוצגה השפה לראשונה בשנות ה־50. המתכנת סטיב ראסל רץ תכניות Lisp על מחשב IBM 704.
Lisp אפשרה לקוד להתנהג כמו נתונים. זה אומר שתכנית יכולה לשנות את עצמה. זה נקרא מטא־תכנות. Lisp גם המציאה רעיון שנקרא איסוף זבל. איסוף זבל מנקה זיכרון שלא בשימוש.
ב־Lisp כותבים פונקציות וסדרי פעולות בתוך סוגריים. זה נקרא כתיב תחיליתי או ביטויי־S. לדוגמה קוראים לפונקציה עם (שם‑הפונקציה פרמטר1 פרמטר2).
Lisp עובדת הרבה עם רשימות. רשימה היא סדרת פריטים. יש פקודות לקחת את הפריט הראשון (car או first) ואת השאר (cdr או rest).
יש כמה גרסאות חשובות של Lisp. חשובים במיוחד: Common Lisp ו־Scheme. בשנים האחרונות יש ניבים חדשים כמו Clojure ו־Racket. יש גם Emacs Lisp שמשמש בתוך עורך הטקסט Emacs.
תגובות גולשים