APL

הסימון המתמטי

קנת' יוג'ין אַייבֶרְסוֹן התחיל לעבוד על סימון מתמטי חדש למניפולציות מערכים באוניברסיטת הרווארד משנת 1957. בשנת 1960 הוא התחיל לעבוד ב־IBM, היכן שהמשיך לפתח את הסימון החדש יחד עם אַדִין ד' פַלְקוֹף והפיץ אותו בספרו ”A Programming Language“ בשנת 1962. ההקדמה בספר מתארת את יעודה של השפה כך:
Applied mathematics is largely concerned with the design and analysis of explicit procedures for calculating the exact or approximate values of various functions. Such explicit procedures are called algorithms or programs. Because an effective notation for the description of programs exhibits considerable syntactic structure, it is called a programming language.
תרגום לעברית:
המתמטיקה השימושית עוסקת בעיקר בעיצוב וניתוח תהליכים מפורשים לחישוב ערכם המדויק או המשוער של מגוון פונקציות. תהליכים כאלה נקראים אלגוריתמים או תוכנות. מכיוון שסימון יעיל לתיאור תוכנות מניב תחביר מבני באופן כה ניכר, הוא נקרא שפת תכנות. 
הסימון החדש שימש בעיקר בתוך IBM לדוחות מחקר קצרים של מערכות מחשב כמו ה־Burroughs B5000 ומנגנון המחסנית שלה כש־IBM העריכה את יעילותן של מערכות שהזיכרון שלהן עבד על מחסנית מול מערכות שהזיכרון שלהן עבד על רשומות עבור המחשבים העתידיים שלה.
אייברסון גם השתמש בסימון שלו עבור טיוטה לפרק ”A Programming Language“ בספר ”Automatic Data Processing“ שאותו חיבר יחד עם פרד ברוקס.

המשך פיתוח הסימון לשפת תכנות

הניסיון הראשון להשתמש בסימון כדי לתאר מערכות מחשב שלמות ב־IBM התחיל עוד בשנת 1962 אחרי שפלקוף שוחח עם װיליאם קַרְטֶר על תִקְנוּנוֹ החדש לסט הפקודות במחשבים שעתידים להיקרא IBM System/360.
בשנת 1963 הֶרְבֶּרְט הֶלֶרְמַן, שעבד אז במכון המחקר של IBM, יישם חלק מהסימון של APL על מחשב IBM 1620. היישום החלקי של הלרמן שימש בקורס תיכון מיוחד עבור חישוב פונקציות טרנסצנדנטיות על ידי סכימת טורים. התלמידים ניסו את הקוד שלהם במעבדתו של הלרמן. יישום חלקי זה של הסימון נקרא אז Personalized Array Translator (PAT)‏.
ב־1963, פלקוף, אייברסון, ו־אדוארד ה' סַאסֶנְגוּת' ג'וניור (כולם עובדים ב־IBM) השתמשו בסימון לתיאור הפורמלי של סט הפקודות והפונקציונליות של מחשבי ה־IBM System/360. עבודתם פורסמה לאחר מכן כמאמר בכתב העת של IBM דאז IBM Systems Journal. לאחר פרסום המאמר, הצוות החל לעבוד על יישום מלא של APL על מחשבי IBM. אחת המוטיבציות ליישום הסימון הייתה התעניינותו של ג'ון ל' לורנס, שהיה אז בתפקיד עם Science Research Associates Inc, חברה בתחום החינוך שנרכשה על ידי IBM בשנת 1964. לורנס ביקש מאייברסון ומשאר חברי הצוות לעזור לו להשתמש בשפה החדשה ככלי לשימוש ופיתוח תוכנה ומחשבים לתחום החינוך וההוראה בארצות הברית.
אחרי שלורנס מ' בְּרִיד ו־פיליפ ס' אַבְּרַמְס מאוניברסיטת סטנפורד הצטרפו לצוות באגף המחקר של IBM, הם המשיכו את עבודתם הקודמת של הצוות שעבד עד כה על חלק מהיישום של APL בעזרת FORTRAN IV שפותח עבור מחשב IBM 7090 שהריץ את מערכת ההפעלה IBSYS. הפרויקט הושלם בסוף 1965 וכונה IVSYS (קיצור ל־”Iverson System“ על שם אייברסון). בסיס היישום הוסבר בפירוט על ידי אברמס בדו"ח טכני של אוניברסיטת סטנפורד תחת הכותרת ”An Interpreter for Iverson Notation“ ב־1966. ההיבט האקדמי של הפרסום היה תחת פיקחו של ניקלאוס וירת. כמו עם עבודתו הקודמת של הלרמן (מערכת ה־PAT), גם יישום זה לא כלל את מערכת הסימנים המקורית של APL, אלא במקום זאת נעשה שימוש במילים שמורות מהשפה האנגלית עבור כל הפונקציות והפעולות הפרימיטיביות של APL. המערכת עברה בהמשך התאמה עבור מערכות עם יכולת שיתוף משאבים (באנגלית: ”Time-sharing“), וכבר ב־1966, שוכתבה מחדש עבור מחשבי IBM System/360 Model 50 עם תמיכה מלאה בשיתוף משאבים שנעשה בה שימוש פנימי ב־IBM.‏

חומרה

הפיתוח החשוב ביותר ל־APL עוד לפני השימוש הנרחב בשפופרות קרן קתודיות לתצוגת הפלט, היה פיתוח הכדורית של IBM (באנגלית: IBM Selectric), מכונת הכתיבה שאפשרה להחליף את ראש ההדפסה (באנגלית: ”Typing element“ או בשפת סלנג ”Typeball“) הרגיל שהכיל בו את התווים האלפביתיים באחד אחר שכלל בו את סט הסימנים הנחוצים ל־APL. זה שימש את APL במחשבים כמו IBM 1050 ו־IBM 2741 שהדפיסו את הפלט שלהם על גבי נייר עוד לפני כניסת מסכי השפופרות לשימוש מסחרי. את סט המקשים של APL היה אפשר להניח על גבי המקשים הרגילים של המקלדת כדי להציג איזה סימן כל מקש מייצג בראש ההדפסה של APL. הכדורית אפשרה לראשונה ייצוג קוד APL בדיוק באותם הסימנים מהסימון המתמטי המקורי של אייברסון במקום מילות מפתח מסורבלות המייצגות אותם בשפה האנגלית.
פלקוף ואייברסון אפיינו את שני ראשי ההדפסה: 987 ו־988 ל־APL עבור הכדורית ב־1964 למרות שעוד לא היה קיים אף יישום APL באותו הזמן. אייברסון אמר שפלקוף נתן לו את ההשראה להשתמש בכדורית עבור סט התווים של APL.
סימני APL רבים, אפילו בעזרת הכדורית, עדיין הודפסו בעזרת שני סימנים קיימים זה על גבי זה. לדוגמה הסימן ⍋ (מבוטא grade up)נכתב בעזרת השימוש בסימן דלתא (shift-H) ועל גביו פס אנכי (shift-M). מצב זה היה בלתי נמנע מאחר שמספר הסימנים ב־APL היה גדול ממספר התווים שראש הדפסה בכדורית יכל להכיל (88 תווים), וזה עוד בהתחשב לכך שתווים אלפביתיים הוגבלו לאותיות גדולות בלבד.

זמינות מסחרית

סביבת העבודה הראשונה של APL פותחה על ידי לארי בְּרִיד ב־1966 על מחשב IBM 1050 במעבדות IBM Mohansic Labs ליד המרכז למחקר על שם תומאס װאטסון, ביתה של APL, ב־יוֹרְקטַאוֹן הַײטְס, מדינת ניו־יורק.
IBM נטלה חלק מרכזי בהשקת APL למטרות מסחריות. APL הושקה לראשונה כמוצר מסחרי בשנת 1967 עבור מחשבי IBM 1130 כ־APL\1130. היישום דרש רק 8 ק"ב של זיכרון מחשב ב־16 סיביות, ו־מ"ב בודד על הדיסק הקשיח.
APL הייתה שימושית במחשבים מרכזיים לעבודה שיתופית עם מפרט טכני צנוע יחסית וללא יחידת ניהול זיכרון. שיפורים נוספים לביצועים של APL פותחו בהמשך למחשבי IBM System/370 בעזרת מיטובים ושיבוץ המפרש שלה בקושחה של המעבד, שיבוץ זה היה ממותג כ־ APL Assist Microcode. זה אפשר ל־APL לרוץ מיד על המעבד וליעל את הביצועים שלה. כשהחומרה השתפרה באופן ניכר באמצע שנות ה־80, משתמשי APL החלו לעבור למחשבים אישיים ולנטוש את המחשבים המרכזיים.
מפרשי ה־APL הראשונים של IBM עבור מחשבי IBM 360 ו־IBM 370 יישמו שיתוף משאבים משלהם כדי לאפשר למשתמשים מרובים לעבוד על אותו המחשב באופן מרוכז ובאותו הזמן במקום להישען על שיתוף המשאבים של המערכת. מפרש מרובה המשתתפים הראשון APL\360 הושק ב־1966 ב־IBM. המפרש יכל להגדיר משתנים חדשים במערכת ההפעלה ולקבל ממנה מידע דרך פונקציות I-beam ב־APL שיש להן הרשאות מיוחדות לתווך בינה לבין רכיבים אחרים במערכת שאינם כתובים ב־APL בעזרת פעולות אונאריות ובינאריות (המינוח המקובל ב־APL הוא פעולות מונאדיות ו־דיאדיות, בהקבלה).
ב־1973 IBM השיקה את APL.SV שהיה המשכו של אותו המוצר (APL\360) אך הפעם היא הציעה משתנים משותפים (באנגלית: ”shared variables“) לשפה. תכונה חדשה זאת אפשרה תיווך קל יותר בין APL לשאר הרכיבים במערכת ההפעלה כמו מערכת הקבצים או שיתוף מידע בין תהליכים שרצים על מעבדים נפרדים במחשבים מרכזיים. בשנות ה־70 מפרש ה־APL של IBM שהיה נועד למחשבים מרכזיים עד כה עבר התאמה עבור מחשבים שולחניים מסוג IBM 5100, שצויד עם מסך שפופרת קתודית קטן ומקלדת APL, בזמן שרוב המחשבים האישיים הציעו רק את BASIC. בשנות ה־80, המפרש VSAPL היה בשימוש מסחרי נפוץ עבור משתמשי CMS, VSPC, TSO, MUSIC/SP, ו־CICS.
בשנים 1973–1974, פטריק הַאגֶרְטִי ניהל את יישום מפרש ה־APL של אוניברסיטת מרילנד עבור המחשבים המרכזיים מסדרת UNIVAC 1100/2200 של היצרנית Sperry. באותו הזמן למחשבי Sperry לא היה קיים אף יישום APL.
בשנות ה־60 ושנות ה־70, מספר ספקיות שצמחו מתעשיית שיתוף משאבים מכרו שרותי APL ללקוחות שלהם בעזרת גרסאות שונות של המפרש APL\360 מאת IBM. באמריקה הצפונית, הספקיות הידועות היו I. P. Sharp Associates (IPSA), Scientific Time Sharing Corporation (STSC), Time Sharing Resources (TSR), ו־ The Computer Company (TCC). הספקית CompuServe הצטרפה מאוחר יותר לשוק ב־1978 עם מפרש APL שהיה מבוסס על זה של DEC ו־Carnegie Mellon שהיה רץ על KI ו־KL שהיו מחשבי 36 סיביות של DEC. כשהחלו להופיע מחשבים מרכזיים זולים יותר כמו ה־IBM 4300, ומאוחר יותר גם המחשבים האישיים באמצע שנות ה־80, כל תעשיית שיתוף המשאבים נעלמה כליל.
Sharp APL היה היישום של I. P. Sharp Associates, תחילה כשירות שצמח מתעשיית שיתוף המשאבים במחשבים מרכזיים בשנות ה־60 ומאוחר יותר הפך להיות מוצר בפני עצמו כתוכנה החל משנת 1979. Sharp APL היה יישום מתקדם יחסית של APL עם משתנים שיתופיים, חבילות, הרחבות, מערכת קבצים, ומערכים מקוננים.
מפרשי APL היו זמינים גם מיצרניות המחשבים המרכזיים: Burroughs Corporation, Control Data Corporation (CDC), Data General, DEC, Harris, Hewlett-Packard (HP), Siemens AG, Xerox ואחרות.
גַארְתְ' פוֹסְטֶר מאוניברסיטת סירקיוז יזם מפגשים קבועים עבור קהילת מיישמי APL במרכז הכנסים של סירקיוז, ב־Blue Mountain Lake שבמדינת ניו יורק. בהמשך השנים יוגִ'ין מַקְדוֹנֶל ארגן מפגשים דומים במתחם הכנסים אַסִילוֹמַאר ליד מוֹנְטֶרֵיי בקליפורניה, וב־דִיוֹנוֹת פַגָ'רוֹ ליד װַטְסוֹנְװִיל שבמדינת קליפורניה. קבוצת SIGAPL (ראשי תיבות: ”Special Interest Group on Array Programming Languages“) מטעם האגודה למכונות מחשוב (ACM) ממשיכה לתמוך בקהילת APL כיום.

מיקרו־מחשבים

המיקרו־מחשבים החלו להופיע רק החל משנות ה־70 והשפה הנפוצה בהם הייתה BASIC. למרות זאת מיקרו־מחשבים מסוימים הציעו את APL במקום. הראשון מבניהם היה ה־MCM/70 מבוסס Intel 8008 שהושק ב־1974 והשימוש המרכזי בו היה בתחום החינוך וההוראה. מיקרו־מחשב נוסף שהציע מפרש APL היה ה־VideoBrain Family Computer שהושק ב־1977 עם ניב ה־APL/S שהיה ייחודי לו.
ה־Commodore SuperPET שהושק ב־1981 בא עם מפרש APL שפותח על ידי אוניברסיטת ווטרלו.
בשנת 1976, ביל גייטס טען במכתבו הפתוח לחובבנים, ש־Microsoft הייתה בתהליך יישום APL עבור Intel 8080 ו־Motorola 6800, אבל עם ”מעט מאוד תמריץ להפוך [אותו] לזמין עבור חובבנים“ לאור הפרת זכויות היוצרים שחברתו סבלה מצידם. מפרש ה־APL של Microsoft אכן מעולם לא הושק.

APL2

מתחילת שנות ה־80 הפיתוח של IBM APL תחת הנהגתו של גִ'ים בְּרָאוֹן הוביל לגרסה חדשה של APL שהחידוש המרכזי בה היה קינון מערכים, כלומר תיאור מערכים המכילים מערכים אחרים בתוכם, ומספר חידושים נלווים בבקרת הזרימה של השפה כדי לשלב בה את המערכים המקוננים. קנת' אייברסון שכבר לא היה יותר בשליטה על הפיתוח של APL, עזב את IBM והצטרף ל־I. P. Sharp Associates (IPSA), היכן שהוא תרם רבות לפיתוחה של Sharp APL לפי השקפתו וחזונו.
כשיצרניות באותו הזמן התחילו לפתח מפרשי APL עבור חומרה חדשה, במיוחד עבור מיקרו־מחשבים מבוססי יוניקס, APL2 הייתה לרוב הבחירה הסטנדרטית כקוו מנחה עבור אותם מפרשי APL חדשים. אפילו כיום, מפתחי APL מבטיחים תאימות עם APL2 בשיווק המוצרים שלהם כנקודת זכות.
APL2 עדיין זמינה עבור מחשבים מרכזיים, והושקה לראשונה עבור מערכות CMS ו־TSO בשנת 1984. IBM ציטטה את השימוש בה עבור פתרון בעיות, עיצוב מערכות, פיתוח אבות טיפוס, הנדסה, חישובים מדעיים, למידת מכונה, ללימוד מתמטיקה ונושאים אחרים, לגישה והדמיית מסדי נתונים. מהודרת ה־Workstation של APL2 עבור המערכות Windows, OS/2, AIX, Linux, ו־Solaris הושקה רק בשנות ה־90.]

יישומים עכשוויים

יישומי APL של APLX, Dyalog כוללים הרחבות לשפה כמו תמיכה בתכנות מונחה-עצמים, תמיכה ב־.NET Framework, קידוד קובצי XML, הדפסת תרשימים, תיווך בין השפה למערכת ההפעלה, וביטויי תחשיב למדא.

מערכת תווים

מערכת התווים הייחודית והלא מוכרת של APL הייתה עבורה מקור לביקורת ושבח כאחד. התופעה שמתכנתים שלומדים ומסתגלים אליה הופכים לחסידים נלהבים שלה יכולה לרמוז שאכן קיים משקל מהותי לסימון המתמטי המקורי של אייברסון וזהו חלק בלתי נפרד מהשפה. בשנות ה־60 וה־70 מעט מסופים ואף צגים יכלו להציג את הסימנים של APL. הפופולריים מבניהם ניצל את יכולת ההדפסה של הכדורית (ה־IBM Selectric) בעזרת החלפת ראש ההדפסה (באנגלית: Typeball) האלפביתי באחד שהכיל בו את התווים הנחוצים כדי להדפיס פלט בשפת הסימנים של APL. המסוף הראשון שידע להציג את כל התווים של APL היה מסוף החד־שורה TI Model 745 של Texas Instruments שהושק ב־1977.
עם הופעת הצגים הגרפיים, המדפסות, וקידוד ה־Unicode, בעיית התווים של APL כמעט נעלמה. למרות זאת, כתיבת תווי APL עדיין דורשת עורכי טקסט שתומכים בשיטת קלט ייחודית לה, מיפוי מקלדות, לעיתים שימוש במקלדת וירטואלית, או הדבקת תווים מודפסים על גבי המקלדת, מה שבדרך כלל מתסכל מתכנתים מתחילים שבאים עם רקע קודם משפות תכנות אחרות. אצל מתחילים שאין להם רקע קודם בתכנות, מחקר שנוסה על תלמידי תיכון הראה שכתיבת תווי APL לא הפריעה לתלמידים לתכנת באף קנה מידה.
טענה לטובת השימוש ב־APL היא שהכתיבה בה דורשת פחות הקלדה, ושבסופו של דבר מתכנתים משננים בעל"פ את מפת התווים שלה מתוך הרגל. כמו כן מקלדות ייעודיות ל־APL מיוצרות כיום ונמצאות בשימוש. גופנים ייעודיים ל־APL גם זמינים להורדה עם תמיכה במערכות הפעלה כמו חלונות ולינוקס.

תחביר

פרק זה לוקה בחסר. אנא תרמו לוויקיפדיה והשלימו אותו.

”שלום עולם“

הדפסת השורה ”שלום עולם“ ב־APL תעשה כך:
'Hello, world!'
ב־APL ניתן להגדיר פעולות ברירת מחדל במקרים מסוימים כשלא מצוינת אף פעולה או פונקציה אחרת. המחרוזת 'Hello, world!' מודפסת כפלט מכיוון שפעולת ברירת המחדל ב־APL היא הדפסת פלט.

העלאה בחזקה

העלאה בחזקה ב־APL נעשית בעזרת הפונקציה ⋆ כך: 2⋆3, כלומר 2 בחזקת 3 (זה יכתב כ־2^3 במספר שפות אחרות, וכ־2**3 בשפות כמו פייתון ו־Fortran). עם זאת, במקרה שלא צוין בסיס (כגון ⋆3 או ^3 בשפות אחרות) אז APL תניח שהבסיס המכוון הוא הקבוע e (2.71828....) לכן ⋆3 יהיה שקול ל־2.71828⋆3.

סטטיסטיקה פשוטה

נניח ש־X הוא מערך מספרים, אז הביטוי (+/X)÷⍴X מחזיר את הממוצע החשבוני שלהם. בקריאה מימין לשמאל (כפי שהקדימות ב־APL עובדת), ⍴X נותן את מספר הפריטים במערך X, ומאחר ש־÷ היא פעולה דיאדית (בינארית), הערכה מלאה של הביטוי משמאל דרושה לפני הפעלתה. הביטוי משמאל מוקף בסוגריים כי אחרת X לבדו יילקח כפרמטר לפני פעולת הסכימה +/X המחברת כל הפריטים בתוך X. בהתבסס על זה, הביטוי ((+/((X - (+/X)÷⍴X)*2))÷⍴X)*0.5 מחשב את סטיית התקן. ייתר על כך, מאחר שייחוס למשתנה (←) נחשבת לפעולה, ניתן להשתמש בה בתוך הקוד גם כן ולקבל:
SD←((+/((X - AV←(T←+/X)÷⍴X)*2))÷⍴X)*0.5
שיאפשר שימוש חוזר במשתנים SD, AV, ו־T. באופן שגרתי, מתכנת APL יגדיר את הביטוי להיות פונקציה מאשר לכתוב אותו כל פעם מחדש.

מיון

הדוגמה הבאה תמיין מערך מחרוזות בסדר עולה לפי מספר התווים בכל מחרוזת.
X[⍋X+.≠' ';]

משחק החיים

הפונקציה הבאה (life), כתובה ב־Dyalog APL, לוקחת מטריצה בוליאנית ומחשבת את הצעד הבא לפי האלגוריתם של משחק החיים. הדוגמה הזאת מפגינה את היכולת של APL לבטא תהליכים מורכבים במעט קוד. עם זאת הוא די קשה להבנה ללא ידע מתקדם ב־APL.
life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}

הסרת תגי HTML

הדוגמה הבאה, גם כתובה ב־Dyalog APL, מראה קליטת טקסט HTML אקראי לתוך המשתנה txt ואז משתמשת בביטוי הכתוב ב־APL על מנת להפשיט את הקלט מכל תגי ה־HTML שמעורבים בו ואז מדפיסה פלט ללא התגים.
 txt←'<html><body><p>This is <em>emphasized</em> text.</p></body></html>'
 {⍵ /⍨ ~{⍵∨≠\⍵}⍵∊'<>'} txtThis is emphasized text.

שימושיות

APL משמשת כשפה תכנות כללית ורב תחומית ונעשה בה שימוש מסחרי ומדעי נרחב בעבר, בין היתר ליישומים בתחום הפיננסי, ניהול השקעות, ביטוח, בינה מלאכותית, למידת מכונה, רובוטיקה, ניהול נכסים,] שרותי בריאות, זיהוי DNA, ועל ידי חובבנים.
כבר נטען ש־APL אינה שפת תכנות אלא כלי חישוב לאור העובדה שהאופי הסימבולי ויכולת הטיפול שלה במערכים עיצבו אותה ואת אופן השימוש שלה מן היסוד ולכן היא הפכה לכלי ייעודי עבור מדעני נתונים ואנשי מחקר המתמחים בתחומים ממוקדי עניין ואינם נעמדים מול אותם אתגרים שמפתחי יישומים ומהנדסי תוכנה מתמודדים עימם.
APL מתאימה מאוד לעיבוד תמונות מגמתי והנפשה ממוחשבת היכן שטרנספורמציות גרפיות יכולות להתקודד כמכפלת מטריצות. אחד מאולפני הגרפיקה הממוחשבת המסחריים הראשונים בארצות הברית, Digital Effects, פיתחו ב־APL את Visions, ויצרו בעזרתה את פרסומות הטלוויזיה והאנימציות לסרט Tron (1982). לאחרונה, סימולטור השייט Stormwind מיישם את כל רכיבי הליבה שלו, את מנוע ההדמיה התלת ממדית, ואת רוב סימולציית הפיזיקה שלו בעזרת APL.

APL\360

היישום הראשון של APL שהתאפיין במערכת הסימנים של אייברסון היה APL\360 שרץ על מחשבי IBM System/360, והושלם בנובמבר 1966 למרות שבאותו הזמן השימוש בו היה פנימי בלבד בתוך IBM. בשנת 1973 המיישמים שלו, לַארי בְּרִיד, דִיק לַאתְ'װֶל, ו־רוֹגֶ'ר מוּר זכו בפרס גרייס מאריי הופר מהאגודה למכונות מחשוב (ACM) על ”עבודתם בתכנון ויישום APL\360, קביעת סטנדרטים חדשים בפשטות, יעילות, אמינות, וזמן תגובה למערכות אינטראקטיביות.“.
ב־1975, מיקרו־מחשבים מסוג IBM 5100 הציעו את APL\360 כאחת משתי השפות המובנות בזיכרון ה־ROM שלהם, יחד עם מקלדת וצג שתמכו בכל סימני APL.
פיתוחים משמעותיים ב־APL\360 היו CMS/APL, שהשתמשה בזיכרון הווירטואלי של מערכת ה־CMS; ו־APL.SV אשר הציגה לראשונה את המשתנים המשותפים, משתנים ופונקציות לתיווך בין APL ומערכת ההפעלה. מאוחר יותר APL\360 עברה התאמה עבור מחשבי ה־IBM System/370 ו־VSPC. פיתוחה המשיך עד גרסתה האחרונה שהושקה ב־1983, ולאחר מכן היא הוחלפה ב־APL2.

APL\1130

בשנת 1968, הושק APL\1130, יישום ה־APL הראשון שהיה זמין לציבור הרחב מחוץ למעבדות של IBM. היישום פותח על ידי IBM עבור מחשבי ה־IBM 1130. היא הפכה להיות תוכנת ה־IBM Type-III Library הפופולרית ביותר ש־IBM השיקה אי פעם.

APL*Plus ו־Sharp APL

APL*Plus ו־Sharp APL הן גרסאות של APL\360 עם הרחבות שהיו חיוניות עבור חברות מסחריות באותו הזמן. ההרחבות כללו עיצוב תבניות עבור נתונים, ואמצעים לשמירת מערכי APL בקבצים חיצוניים. שני היישומים פותחו בשתי חברות נפרדות שהעסיקו עובדים מהצוות המקורי ב־IBM שפיתח את APL\360.
שתי החברות היו I. P. Sharp Associates (IPSA), חברת שירותי APL\360 שנוסדה ב־1964 על ידי אִיאַן שַארְפּ, רוֹגֶ'ר מוּר ואחרים, והשנייה הייתה Scientific Time Sharing Corporation (STSC) חברה לשירותי שיתוף משאבים ושירותי ייעוץ שנוסדה ב־1969 על ידי לורנס בְּרִיד ואחרים. שתי החברות פיתחו יחד את APL*Plus, הן המשיכו לעבוד יחד למרות שבהמשך הזמן הפיתוח שלהן התפצל לשני יישומים נפרדים: Sharp APL ו־APL*Plus.
STSC ייצאה את APL*Plus להרבה פלטפורמות, בניהן נמנו VAX 11, מחשבים אישיים ו־Unix, ואילו IPSA בחרה להפוך את היישום שלה (Sharp APL) זמין למחשבים אישיים בעזרת PC-XT/360, רכיב חומרה שסיפק שכבת תאימות למחשבים אישיים עבור תוכנות שפותחו במקור למחשבים מרכזיים של IBM.
ב־1993, נוסדה החברה הקנדית Soliton Incorporated כדי לתמוך ב־Sharp APL והמשך פיתוחה. היא פיתחה את SAX (ראשי תיבות Sharp APL ל־Unix). נכון ל־2018, APL+Win הוא היישום ההמשכי ל־APL*Plus.
ב־1985, זכה איאן שארפ בפרס אייברסון מטעם קבוצת SIGPAL ב־ACM על עבודתו ותרומתו לשפת APL.

APL2

APL2 היה יישום מחודש של APL\360 מאת IBM שהפיתוח שלו החל ב־1971 והושק לראשונה ב־1984. APL2 הציגה שיפורים חשובים לשפה והבולט בהם היה קינון מערכים (הכלת מערכים בתוך מערכים). נכון ל־2018, APL2 זמינה עבור מחשבים מרכזיים שרצים על z/OS או z/VM, או תחנות עבודה שרצות על AIX, Linux, Solaris וחלונות.
כל הצוות שהיה אחראי על הפיתוח והתחזוקה של APL2 זכה בפרס אייברסון משותף בשנת 2007.

Dyalog APL

היישום Dyalog APL הושק לראשונה מאת Dyalog Ltd הבריטית ב־1983. נכון ל־2018 הוא זמין ל־Linux (כולל על ה־Raspberry Pi),AIX, macOS, ו־חלונות. הוא מבוסס על APL2, ומציע הרחבות ל־APL בשביל תכנות מונחה עצמים ותכנות פונקציונלי. הרישיון שלו הוא חינמי עבור שימוש פרטי ולא מסחרי.
ב־1995, שניים מחברי צוות הפיתוח של Dyalog APL - ג'ון סקוֹלְס ו־פיטר דוֹנֶלי - זכו בפרס אייברסון עבור עבודתם על מפרש היישום.

NARS2000

NARS2000 (ראשי תיבות ”Nested Arrays Research System“) הוא מפרש APL חופשי וקוד פתוח מאת בּוֹבּ סְמִית', מפתח וותיק מהצוות של STSC שעבדו על היישום של APL*Plus בשנות ה־70 וה־80. NARS2000 כולל טיפוסי נתונים חדשים עבור השפה וחידושים אחרים.

APLX

APLX הוא ניב חוצה־פלטפורמות של APL, מבוסס על APL2 עם מספר הרחבות כמו תכנות מונחה עצמים ותמיכה ב־.NET Frmework. הוא הושק לראשונה על ידי MicroAPL הבריטית ב־2002. APLX אינו נמצא יותר בשימוש מסחרי והפיתוח שלו הפסיק. ניתן להשיג אותו בחינם מהאתר של Dyalog.

GNU APL

GNU APL הוא יישום חופשי מטעם המיזם של GNU עבור APL המורחבת כפי שאופיינה ב־ISO/IEC 13751:2001, ולכן הוא דומה ל־APL2. היישום רץ על GNU\Linux ועל חלונות בעזרת Cygwin ומשתמש ב־Unicode. הוא פותח על ידי יורְגֶן סַװֶארְמַן.
ריצ'רד סטולמן, מייסד מיזם GNU, היה מהראשונים שאימצו את APL. סטולמן נעזר ב־APL כדי לכתוב עורך טקסט כשהיה בתיכון בקיץ 1969.

הידור ופירוש

APL היא שפה מפורשת בהתאם למסורת שלה, תכונותיה כגון טיפוסיות דינמית הופכים אותה לשפה שאינה מתאימה להידור למרות זאת, מהיותה שפת תכנות מערכים המציבה את המערך במרכז השימוש בה, היא נותנת הזדמנות למיטוב תהליך הפרוש שלה בעזרת עיבוד מקבילי של כל המערכים ובעזרת VLSI. מיטובים אלה הפכו את APL לשפת ביצועים גבוהים,לדוגמה APL מצטיינת בביצועיה בפעולות מורכבות עם מטריצות מאחר שהיא פועלת על גבי מערכים בלי בקרת זרימה ופעולות ביניים שמאטות שפות אחרות.
עם זאת, APL אינה שפה מפורשת גרידא, וקטעים מהקוד עוברים תהליך הידור חלקי בשיטות ורמות שונות. דוגמאות להידור ב־APL כוללות:

זיהוי צרופים

רוב מפרשי APL תומכים בזיהוי צרופים (באנגלית: idioms) הטיפוסיים לשפהומעריכים צרופים כאלה כפעולה אחת וחוסכים את צעדי הביניים.לדוגמה, כשהמפרש מזהה צרוף מהצורה BV/⍳⍴A (היכן ש־BV הוא ערך בוליאני ו־A הוא מערך), הוא מיד מעריך את כל הביטוי כפעולה אחת במקום לפרש את הביטוי צעד אחר צעד, ובכך הוא בעצם חוסך את יצירתם של שני מערכים נוספים בפעולות הביניים על מנת להשלים את הביטוי.

בייטקוד ממוטב

הטיפוסיות הדינמית של APL מאפשרת למשתנים להצביע על מערכים (מכל טיפוס), פונקציות, או פעולות (אופרטורים). באופן הכללי המפרש לא יכול לדעת באיזה טיפוס מדובר בלי לבצע ניתוח תחבירי ובדיקת טיפוסיות בזמן ריצה.עם זאת, במקרים מסוימים ניתן להסיק באיזה טיפוסיות (יהיה) מדובר עוד לפני הריצה ולהכין בייטקוד ממוטב מראש שייעל את הביצועים. את הבייטקוד ניתן למטב בעזרת שיטות מיטוב ידועות כגון זיהוי והידור מראש של ביטויים קבועים שאינם משנים את ערכם לאורך כל זמן הריצה (באנגלית: Constant folding), והחלפת והשמטת ביטויים השקולים זה לה במשתנה המצביע לביטוי המשותף לכל המקרים (באנגלית: Common subexpression elimination).בזמן הריצה המפרש יריץ את מקטע הבייטקוד שהוכן מראש אך ורק אם ההנחות בנוגע לטיפוסיות היו אכן נכונות. Dyalog APL נותנת תמיכה מלאה למיטובי בייטקוד עבור השפה.

הידור

הידור APL היה נושא למחקר וניסויים משחר הופעת השפה. נתפס שהמהדר הניסיוני הראשון עבור APL היה ה־APL-700 מאת Burroughs שהושק בסביבות 1971. על מנת לאפשר ל־APL להיות שפה מהודרת בתכליתה, הצבת מגבלות מסוימות עליה היא הכרחית ובלתי נמנעת. APEX הוא מהדר APL מחקרי שפותח על ידי רוברט בֶּרְנֶקִי (שהיה חלק מצוות הפיתוח של IPSA ו־Sharp APL) וזמין כתוכנה חופשית תחת הרישיון הציבורי הכללי של GNU.
STSC APL Compiler (מהדר ל־APL מאת STSC, המפתחת של APL*Plus) מבצע שילוב של מיטוב בייטקוד והידור, אך לא הידור מלא. הוא מאפשר הידור לשפת מכונה רק עבור פונקציות שכל שאר הפונקציות והמשתנים שהן תלויות בהם כבר הוכרזו וידועים מראש. אך המפרש עדיין מספק את כל הפונקציות והפעולות עבור ספריית הליבה של השפה, ומשמש כנסיגה עבור פונקציות שאינן עומדות בתנאים הנחוצים להידור.

תקנים

APL תוקננה על ידי קבוצת העבודה X3J10 מטעם מכון התקנים האמריקני (ANSI) על ידי ארגון התקינה הבינלאומי (ISO) וע"י הנציבות הבינלאומית לאלקטרוטכניקה (IEC) בוועדה הטכנית המשותפת של ISO/IEC מס' 1, תת־וועדה מס' 22, קבוצת עבודה מס' 3. ליבת APL מאופיינת ב־ISO 8485:1989, ו־APL המורחבת מאופיינת ב־ISO/IEC 13751:2001.