APL (programmalastırıw tili)

**APL** («Programmalastırıw tili» kitabınıń atı menen atalǵan) — bul 1960-jılları Kennet E. Ayverson tárepinen islep shıǵılǵan programmalastırıw tili. Onıń oraylıq maǵlıwmat tipi — kóp ólshemli massiv. Ol kópshilik funkciyalar hám operatorlardı kórsetiw ushın keń kólemli arnawlı grafikalıq simvollardı paydalanadı, bul júdá qısqa kodqa alıp keledi. Ol koncepciyanı modellestiriw, elektron kesteler, funkcional programmalastırıw hám kompyuter matematika paketleriniń rawajlanıwına áhmiyetli tásir etti. Ol sonday-aq basqa da bir neshe programmalastırıw tillerin ilhamlandırdı.

## Tariyxı

### Matematikalıq belgilew
Massivlerdi manipulyaciyalawǵa arnalǵan matematikalıq belgilewdi 1957-jıldan baslap Garvard universitetinde Kennet E. Ayverson islep shıqqan. 1960-jılı ol IBM kompaniyasında jumıs basladı, onda bul belgilewdi Adin Falkoff penen birge rawajlandırdı hám onı 1962-jılı «Programmalastırıw tili» atlı kitabında járiyaladı. Kirisiw sózinde onıń tiykarǵı pikiri keltirilgen:

Bul belgilew IBM ishinde Burroughs B5000 sıyaqlı kompyuter sistemaları haqqındaǵı qısqa izertlew esabatları ushın hám IBM keleshektegi kompyuterleri ushın stek mashinaları menen registr mashinaların bahalap atırǵanda onıń stek mexanizmi ushın qollanılǵan. 

Ayverson sonday-aq óziniń belgilewin Fred Bruks penen birge jazıp atırǵan, 1963-jılı baspadan shıǵatuǵın «Avtomatlastırılǵan maǵlıwmatlardı qayta islew» kitabınıń «Programmalastırıw tili» atlı babınıń joybarında da paydalanǵan.

1979-jılı Ayverson APL boyınsha jumısı ushın Tyuring sıylıǵın aldı.

### Kompyuter programmalastırıw tiline aylanıwı
1962-jıldıń ózinde, Falkoff Vilyam K. Karter menen keyinirek IBM System/360 shańaraǵına aylanǵan mashinalar ushın kórsetpeler toplamın standartlastırıw boyınsha jumısların talqılaǵannan keyin, belgilewdi tolıq kompyuter sistemasın táriyiplew ushın paydalanıwǵa birinshi urınıw boldı.

1963-jılı IBM Sistemalıq Izertlewler Institutında isleytuǵın Gerbert Gellerman belgilewdiń bir bólimin IBM 1620 kompyuterinde ámelge asırdı hám onı qatarlardı qosıw arqalı transcendental funkciyalardı esaplaw boyınsha arnawlı orta mektep kursında oqıwshılar paydalandı. Oqıwshılar óz kodların Gellerman laboratoriyasında sınap kórdi. Belgilewdiń bul bóliminiń implementaciyası Jekelestirilgen Massiv Awdarmashısı (PAT) dep ataldı.

1963-jılı IBM de isleytuǵın Falkoff, Ayverson hám Edvard G. Sussengut kishi, IBM System/360 seriyası mashina arxitekturasın hám funkcional imkaniyatların rásmiy táriyiplew ushın belgilewdi paydalandı, bunıń nátiyjesinde 1964-jılı IBM Systems Journal jurnalında maqalası basılıp shıqtı. Bul basılıp shıqqannan keyin, topar óz itibarın belgilewdi kompyuter sistemasında ámelge asırıwǵa qarattı. Bul implementaciyaǵa itibar qaratıwdıń sebepleriniń biri 1964-jılı IBM tárepinen satıp alınǵan bilimlendiriw kompaniyası Science Research Associates-te jańa wazıypalarǵa iye bolǵan Djon L. Lourenstiń qızıǵıwshılıǵı edi. Lourens Ayverson hám onıń toparınan tildi bilimlendiriwde kompyuterlerdi rawajlandırıw hám paydalanıw quralı retinde qollanıwǵa járdem beriwin soradı.

Stenford universitetinen Lourens M. Brid hám Filip S. Abrams IBM Izertlew toparına qosılǵannan keyin, olar IBSYS operaciyalıq sistemasında isleytuǵın IBM 7090 kompyuteri ushın belgilewdiń bir bólimin FORTRAN IV tilinde programmalastırılǵan implementaciyası boyınsha aldınǵı jumısların dawam etti. Bul jumıs 1965-jıldıń aqırında tamamlandı hám keyinirek IVSYS (Ayverson sisteması ushın) dep ataldı. Bul implementaciyanıń tiykarı Abrams tárepinen 1966-jılı «Ayverson belgilewi ushın interpretator» atlı Stenford universiteti texnikalıq esabatında tolıq táriyiplengen. Bunıń akademiyalıq tárepin rásmiy túrde Niklaus Virt basqardı. Aldınǵı Gellerman PAT sisteması sıyaqlı, bul implementaciyada da APL belgiler toplamı joq edi, biraq funkciyalar hám operatorlar ushın arnawlı inglis tilindegi saqlanǵan sózler paydalanıldı. Sistema keyinirek waqıt bólisiw sistemasına beyimlestirildi hám 1966-jıl noyabrge kelip, waqıt bólisiw rejiminde isleytuǵın IBM System/360 Model 50 kompyuteri ushın qayta programmalastırıldı hám IBM ishinde qollanıldı.

### Apparatlıq támiynat

Katod-nur trubkalı (CRT) terminalları keń tarqalmastan aldın, APL-dı nátiyjeli paydalanıw múmkinshiligindegi tiykarǵı rawajlanıw — bul barlıq arnawlı APL belgileri bar bolǵan arnawlı IBM Selectric jazıw mashinkasınıń almastırılatuǵın teriw elementin islep shıǵıw boldı. Bul Selectric jazıw mashinkası hám teriw elementi mexanizmin paydalanatuǵın IBM 1050 hám IBM 2741 terminalı sıyaqlı qaǵazǵa basatuǵın terminal jumıs orınlarında qollanıldı. Qaysı APL belgileriniń kirgiziletuǵının hám sol klavisha basılǵanda jazılatuǵının kórsetiw ushın ádettegi klavishalar ústine klavisha qaplamaların qoyıwǵa bolatuǵın edi. Birinshi ret, baǵdarlamashı Ayverson belgilewinde qollanılǵan durıs APL belgilerin kirgizip kóre alatuǵın boldı hám olardıń qolaysız inglis gilt sózleri menen kórsetiliwine májbúr bolmadı. Falkoff hám Ayverson arnawlı APL Selectric teriw elementlerin, 987 hám 988, 1964-jıldıń aqırında proektlestirdi, degen menen olardı paydalanıw ushın hesh qanday APL kompyuter sisteması joq edi.Ayverson Falkofftı IBM Selectric teriw elementin APL belgiler toplamı ushın paydalanıw ideyasınıń ilhamlandırıwshısı dep atap ótti.

APL belgiler toplamı, hátte Selectric teriw elementinde APL belgileri bolǵanına qaramastan, kóplegen APL simvolların eki bar element belgisiniń ústinen basıw arqalı jazıw kerek edi. Mısalı, joqarıǵa kóteriw belgisi delta (shift-H) hám Sheffer sızıqshasınan (shift-M) jasalǵan bolıwı kerek edi. Bul kerekli edi, sebebi APL belgiler toplamı, hátte hárifler tek úlken (bas) hárifler menen sheklengen bolsa da, teriw elementinde ruqsat etilgen 88 belgiden ádewir kóp edi.

### Kommerciyalıq qoljetimlilik
Birinshi APL interaktiv kirgiziw hám APL jumıs keńisligin jaratıw 1966-jılı Nyu-Yorktıń Yorktown Heights qalasındaǵı APL-dıń úyi Tomas Dj. Uotson Izertlew Orayı qasındaǵı IBM Mohansic Labs-te IBM 1050 terminalın paydalanıp Larri Brid tárepinen ámelge asırıldı.

IBM APL-dı bazarǵa shıǵarıw ushın tiykarǵı juwapker boldı. APL-dıń birinshi jámiyetshilikke usınılǵan versiyası 1968-jılı IBM 1130 ushın shıǵarıldı. IBM APL\1130-dı biypul, biraq juwapkershiliksiz hám qollap-quwatlawsız usındı. Ol 8k 16-bitlik sóz yadında isley alatuǵın edi hám arnawlı 1 megabaytlıq qattı diskti paydalanatuǵın edi.

APL 1960-jıllardıń aqırınan 1980-jıllardıń basına shekem meynfreym waqıt bólisiw sistemalarında óz ornın taptı, bir bólimi dinamikalıq adres awdarması apparatlıq támiynatı joq tómen specifikaciyalı sistemalarda bir neshe paydalanıwshını qollap-quwatlay alatuǵınlıǵı sebepli boldı. Belgili bir IBM System/370 meynfreym sistemaları ushın qosımsha ónimdarlıqtı jaqsılawlarǵa APL Assist Microcode kiredi, onda APL orınlanıwı ushın ayırım qollap-quwatlaw joqarı dárejeli programmalıq támiynat tárepinen tolıq ámelge asırılıwı ornına, processordıń mikroprogrammasında kirgizilgen edi. Biraz waqıt ótkennen keyin, 1980-jıllardıń ortasınan aqırına shekem sáykes ónimdarlıqqa iye apparatlıq támiynat payda bolǵanda, kóp paydalanıwshılar óz qosımshaların jeke kompyuter ortalıǵına kóshirdi.

IBM 360 hám IBM 370 apparatlıq támiynatı ushın dáslepki IBM APL interpretatorları xost xızmetlerine súyenbesten, ózleriniń kóp paydalanıwshılı basqarıwın ámelge asırdı, solay etip olar ózleriniń waqıt bólisiw sistemaları edi. Birinshi ret 1966-jılı IBM-de paydalanıw ushın usınılǵan APL\360sisteması kóp paydalanıwshılı interpretator boldı. Informaciya alıw hám interpretator sistema ózgeriwshilerin ornatıw ushın operaciyalıq sistema menen programmalıq túrde baylanısıw múmkinshiligi monadikalıq hám diadikalıq operaciyalardı paydalanıp, arnawlı jeńillikli «I-nur» funkciyaları arqalı ámelge asırıldı.

1973-jılı IBM APL.SV-ni shıǵardı, bul sol ónimniń dawamı edi, biraq ol APL sistemasınan tıs imkaniyatlarǵa, mısalı operaciyalıq sistema fayllarına kiriw ushın bólingen ózgeriwshilerdi usındı. 1970-jıllardıń ortalarında, IBM meynfreym interpretatorı hátte kishi CRT hám APL klaviaturası bar IBM 5100 desktop kompyuterinde paydalanıw ushın da beyimlestirildi, sol waqıtta basqa kishi kompyuterlerdiń kópshiligi tek BASIC usınatuǵın edi. 1980-jılları VSAPL programma ónimi Conversational Monitor System (CMS), Time Sharing Option (TSO), VSPC, MUSIC/SP hám CICS paydalanıwshıları arasında keń tarqaldı.

1973–1974-jılları Patrik E. Hagerti Merilend universiteti APL interpretatorınıń Sperry UNIVAC 1100/2200 seriyası meynfreym kompyuterleriniń 1100 liniyası ushın ámelge asırılıwın basqardı. 1974-jılı student Alan Stebbenske ishki funkciyanı ámelge asırıw wazıypası júklendi. Xerox APL 1975-jıl iyun ayınan baslap CP-V-da isleytuǵın Xerox 560 hám Sigma 6, 7, 9 meynfreymleri ushın hám Honeywell CP-6 ushın qoljetimli boldı.

1960 hám 1970-jılları IBM APL\360 interpretatorınıń ózgertilgen versiyaların paydalanıp APL xızmetlerin satatuǵın bir neshe waqıt bólisiw firmaları payda boldı. Arqa Amerikada eń belgili bolǵanları I.P. Sharp Associates, Scientific Time Sharing Corporation (STSC), Time Sharing Resources (TSR) hám The Computer Company (TCC) edi. CompuServe da 1978-jılı DEC-tiń KI hám KL 36-bitlik mashinalarında isleytuǵın Digital Equipment Corp hám Karnegi Mellon universitetiniń ózgertilgen versiyasına tiykarlanǵan APL interpretatorı menen bazarǵa kirdi. CompuServe-tiń APL-ı onıń kommerciyalıq bazarı ushın da, tutınıwshı informaciyalıq xızmeti ushın da qoljetimli edi. Dáslep IBM 4300 sıyaqlı arzanlaw meynfreymler, keyinirek jeke kompyuterler payda bolıwı menen, 1980-jıllardıń ortalarına kelip, waqıt bólisiw sanaatı derlik joq boldı.

Sharp APL I.P. Sharp Associates kompaniyasınan qoljetimli boldı, dáslep 1960-jılları waqıt bólisiw xızmeti retinde, keyinirek shama menen 1979-jıldan baslap programma ónimi retinde. Sharp APL paketler (bir yamasa bir neshe obyektti bir ózgeriwshige jaylastırıw imkaniyatı), fayl sisteması, ishki jaylasqan massivler hám bólingen ózgeriwshiler sıyaqlı kóplegen til keńeytpelerine iye aldınǵı qatar APL implementaciyası edi.

APL interpretatorları basqa meynfreym hám mini-kompyuter óndiriwshilerinen de, ásirese Burroughs, Control Data Corporation (CDC), Data General, Digital Equipment Corporation (DEC), Harris, Hewlett-Packard (HP), Siemens, Xerox hám basqalardan da qoljetimli edi.

Sirakuza universitetinen Gart Foster Nyu-Yorktıń Blue Mountain Lake qalasındaǵı Sirakuzanıń Minnowbrook konferenciya orayında APL ámelge asırıwshılar birlespesiniń turaqlı ushırasıwlarına qáwenderlik etti. Keyingi jılları Evgeniy Makdonnell Kaliforniyanıń Monterey qasına jaqın Asilomar konferenciya aymaǵında hám Kaliforniyanıń Uotsonvill qasına jaqın Pajaro Dunes-te uqsas ushırasıwlardı shólkemlestirdi. Esaplaw Texnikası Associaciyasınıń SIGAPL arnawlı qızıǵıwshılıq toparı APL birlespesin qollap-quwatlawdı dawam etpekte.

### Mikrokompyuterler
1970-jıllardıń ortalarınan baslap qoljetimli bolǵan mikrokompyuterlerde BASIC ústem programmalastırıw tiline aylandı. Soǵan qaramastan, ayırım mikrokompyuterler onıń ornına APL usındı – birinshisi 1974-jılı shıǵarılǵan Intel 8008 tiykarındaǵı MCM/70 boldı hám ol tiykarınan bilimlendiriwde qollanıldı. Sol dáwirdiń jáne bir mashinası 1977-jılı shıǵarılǵan VideoBrain Family Computer boldı, ol APL/S dep atalǵan óziniń APL dialekti menen támiyinlengen.

1981-jılı usınılǵan Commodore SuperPET quramında Uoterlu universiteti tárepinen islep shıǵılǵan APL interpretatorı bar edi.

1976-jılı Bill Geyts óziniń «Háweskerlerge ashıq xatı»nda Microsoft korporaciyası Intel 8080 hám Motorola 6800 ushın APL ámelge asırıp atırǵanın, biraq programma qaraqshılıǵı sebepli onı «háweskerlerge usınıwǵa júdá az qızıǵıwshılıǵı» bar ekenin ayttı. Ol hesh qashan shıǵarılmadı.

### APL2
1980-jıllardıń baslarınan baslap, Djim Braun basshılıǵındaǵı IBM APL-di islep shıǵıw toparı APL tiliniń jańa versiyasın ámelge asırdı, onıń tiykarǵı jaqsılanıwı massivtiń basqa massivlerdi óz ishine ala alatuǵın ishki massivler koncepciyası hám ishki massivlerdi programma jumıs aǵımına integraciyalawdı ańsatlastıratuǵın jańa til ózgeshelikleri boldı. APL tiliniń rawajlanıwın basqarıwdan shetletilgen Ken Ayverson IBM-nen ketip, I.P. Sharp Associates kompaniyasına qosıldı, onda onıń tiykarǵı úlesleriniń biri Sharp APL evolyuciyasın óziniń kózqaraslarına sáykesirek etip baǵdarlaw boldı. APL2 birinshi ret 1984-jılı CMS hám TSO ushın shıǵarıldı. APL2 Jumıs stanciyası basılımı (Windows, OS/2, AIX, Linux hám Solaris) keyinirek shıqtı.

Basqa óndiriwshiler jańa apparatlıq támiynat, ásirese Unix tiykarındaǵı mikrokompyuterler ushın APL interpretatorların islep shıǵıw menen bánt bolǵanda, APL2 derlik bárqulla jańa APL interpretatorın islep shıǵıw ushın tańlanǵan standart boldı. Hátte búgingi kúnde de, kópshilik APL satıwshıları yamasa olardıń paydalanıwshıları sol ónimlerdiń satılıw noqatı retinde APL2 sáykesligin atap ótedi. IBM onıń máselelerdi sheshiw, sistema dizaynı, prototip jaratıw, injenerlik hám ilimiy esaplawlar, ekspert sistemaları, matematika hám basqa pánlerdi oqıtıw, vizualizaciya hám maǵlıwmatlar bazasına kiriw ushın paydalanılatuǵının atap ótedi.

### Zamanagóy implementaciyalar
APLX, Dyalog hám basqalar tárepinen islep shıǵılǵan APL-dıń hár túrli implementaciyaları obyektke baǵdarlanǵan programmalastırıw ushın keńeytpelerdi, .NET-ti qollap-quwatlawdı, XML-massiv túrlendiriw primitivlerin, grafika sızıwdı, operaciyalıq sistema interfeyslerin hám lyambda-esaplaw ańlatpaların óz ishine aladı. Biypul versiyalarǵa Linux ushın GNU APL hám Windows ushın NARS2000 (ol sonday-aq Wine astında Linux-ta isley aladı) kiredi. Bul ekewi de hár túrli til keńeytpeleri bar APL2-niń tolıq versiyaları bolıp tabıladı.

## Derekler

__BÖLİDİMÖNDEMEW__