ISLISP

ISLISP היא שפת תכנות ממשפחת שפות Lisp אשר כתובה על פי תקנים וסטנדרטים שנקבעו על ידי ארגון התקינה הבינלאומי (ISO) והנציבות הבין-לאומית לאלקטרוטכניקה (IEC). מטרת הסטנדרטים האלו היא להגדיר שפת ליבה קצרה על מנת לגשר בין ההבדלים בין ניבי Lisp השונים. לשם כך, הסטנדרטים נקבעו על פי המאפיינים המשותפים של שפות התכנות EuLisp, Le Lisp, Scheme ו- Common Lisp ממשפחת Lisp.

ISLISP היא שפה מרובת פרדיגמות, כלומר, היא תומכת בכמה עקרונות תכנותיים (יותר מעיקרון אחד):
 תכנות פונקציונלי (באנגלית: Functional Programming) – תכנות פונקציונלי שם דגש על קריאה לפעולות ופישוטן כביטויים.
 תכנות פרוצדורלי (באנגלית: Procedural Programming) – בתכנות פרוצדורלי, כל תוכנית מחולקת לתת תוכניות הנקראות פרוצדורות (שגרות).
 מטא תכנות (באנגלית: Metaprogramming) – בפרדיגמה זו, ניתן להתייחס לתוכניות (קטעי קוד) כמידע, ולערוך אותן. כך ניתן גם ליצור, לנתח, ולשנות תוכנות אחרות, ואף לשנות את התוכנה עצמה בזמן ריצה.
 תכנות מונחה עצמים (באנגלית: Object Oriented Programming) – שימוש במבני נתונים אשר מכילים תכונות ופעולות, על מנת לייצג את המתרחש במציאות בצורה פשוטה, מסודרת ויעילה יותר. למשל, על מנת לייצג בן אדם, נוכל ליצור מחלקה (תבנית של תכונות ופעולות) בשם Person ולהוסיף לה תכונות כגון שם, גובה, משקל, צבע עיניים, וכו׳. נוכל גם להוסיף פעולות: אדם יכול לדבר, לאכול, לרוץ, ללמוד, וכדומה. לאחר יצירת המחלקה, נוכל ליצור מבני נתונים מסוג המחלקה Person ולתת להם למשל תכונות אשר אופייניות להם. מבני נתונים כאלה נקראים אובייקטים – מכילים תכונות ופעולות בהתאם לסוג המחלקה שלהם.

 מטרות בתכנון השפה 
להלן כמה מן המטרות העיקריות שלפיהן עוצבה ISLISP:
 על השפה להיות מתאימה לניבי Lisp מודרניים אחרים ככל האפשר.
 עליה לתמוך בתכנות מונחה עצמים
 על השפה להיות מעוצבת כך שיהיה ניתן להרחיב אותה בעתיד.
 תעדוף צרכים תעשייתיים על פני צרכים אקדמאיים
 קידום מימושים ואפליקציות יעיליות.

המערכת המובנית לתמיכה בתכנות מונחה עצמים נקראת ILOS (בשמה המלא: ISLISP Object System), היא בעיקר תת-קבוצה של המערכת המובנית לתמיכה בתכנות מונחה עצמים בניב Common Lisp ששמה Common LIsp Object System, או בקיצור: CLOS.

 ציר זמן של ניבי Lisp 
+ציר זמן של ניבי Lisp19551960196519701975198019851990199520002005201020152019LISP 2, LISP 1.5, LISP 1MaclispInterlispLisp Machine LispSchemeR5RSR6RSR7RS smallNILFranz LispCommon LispLe LispTEmacs LispAutoLISPPicoLispEuLispISLISPOpenLispPLT SchemeRacketGNU GuileVisual LISPQi, QiIIShenClojureArcLFEHy

 מימושים 
+ISLISP implementationsNameCreatorComplete ISLispArchitectureכתוב במערכות הפעלהרישיוןקוד מקור זמיןOpenLispתאגיד התוכנה Eligisכןמפרש, מהודר ל-CC, LispWindows, macOS, Linux, BSD, AIX, Solaris, QNXProprietaryחלקיOKI ISLISPKyoto University and Oki Electric Industry Co.כןBytecode machine, מהודר ל-bytecodeCWindows?לאPRIME-LISPמיכאל סמנאובכןמפרשC#WindowsProprietary, Shareware, freely redistributable binariesלאIrisמאסאיה טאנגוצ׳ילאמפרשGoכל מערכת הפעלהFree, Mozilla Public License 2.0לאIris web REPLמאסאיה טאנגוצ׳ילאמפרש, מהודר ל-JavascriptGo, JavaScriptרץ בדפדפןFree, Mozilla Public License 2.0כןKissיוג'י מינג׳ימהעדיין לאמפרשC, Lispכל מערכת הפעלהFree, GPL v3+כןISLisproidהירושי גומילאמפרשJavaאנדרואידProprietaryלאdayLISPמת׳יו דנסוןלאמפרשJava, Lispכל מערכת הפעלהFree, BSDכןEasy-ISLispקניצ'י סאסגאווהכןמפרש, מהודר ל-CC, LispWindows, LinuxFree, BSDכן

קטגוריה:שפות תכנות פונקציונליות
קטגוריה:ניבי Lisp
קטגוריה:תכנות מונחה-עצמים