Kontentke ótiw

APL (programmalastırıw tili)

Wikipedia — erkin enciklopediya
APL
Paradigmaları Massiv, funkcional, strukturalıq, modulli
Shańaraǵı APL
Dóretiwshi Kennet E. Ayverson
Baǵdarlamashılar Larri Brid, Dik Latsvell, Rodjer Mur, basqalar
Birinshi payda bolıwı 27-noyabr, 1966-jıl
Turaqlı reliz ISO/IEC 13751:2001 / 1-fevral, 2001-jıl
Tiplestiriw tártibi Dinamikalıq
Platforma Kross-platformalı
Licenziya Menshikli, ashıq kodlı
Veb-saytı aplwiki.com

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[1] hám kompyuter matematika paketleriniń[2] rawajlanıwına áhmiyetli tásir etti. Ol sonday-aq basqa da bir neshe programmalastırıw tillerin ilhamlandırdı[3][4].

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:

Ámeliy matematika tiykarınan hár túrli funkciyalardıń anıq yamasa shama menen alınǵan mánislerin esaplaw ushın anıq proceduralardı proektlestiriw hám analizlew menen shuǵıllanadı. Bunday anıq proceduralar algoritmler yamasa programmalar dep ataladı. Programmalardı táriyiplew ushın nátiyjeli belgilew ádewir sintaksislik strukturanı kórsetkenlikten, ol programmalastırıw tili dep ataladı.

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ı[5].

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ı[6].

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ı[7].

Apparatlıq támiynat

APL grek belgilerin óz ishine alǵan IBM teriw sharları hám teriw diskleri
APL teriw elementi baspası ornatılǵan IBM 2741 klaviaturası jaylasıwınıń baǵdarlamashı kózqarasınan kórinisi

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ı[8]. 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ı[9]. 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[10]. 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ı[11].

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[12].

Mikrokompyuterler

1970-jıllardıń ortalarınan baslap qoljetimli bolǵan mikrokompyuterlerde BASIC ústem programmalastırıw tiline aylandı[13]. Soǵan qaramastan, ayırım mikrokompyuterler onıń ornına APL usındı – birinshisi 1974-jılı[14][15] shıǵarılǵan Intel 8008 tiykarındaǵı MCM/70 boldı hám ol tiykarınan bilimlendiriwde qollanıldı[16]. 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[17].

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ı[18]. 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ı[19][20][21]. 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ı[22][23].

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[24][25]. IBM onıń máselelerdi sheshiw, sistema dizaynı, prototip jaratıw, injenerlik hám ilimiy esaplawlar, ekspert sistemaları,[26] 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[27].

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

  1. «ACM Award Citation – John Backus». Awards.acm.org (1977). 12-fevral 2008-jılda túp nusqadan arxivlendi. Qaraldı: 3-fevral 2010-jıl.
  2. Moler. «The Growth of MATLAB». 11-aprel 2009-jılda túp nusqadan arxivlendi. Qaraldı: 3-fevral 2010-jıl.
  3. Hui. «A Bibliography of APL and J». jsoftware.com/jwiki. Qaraldı: 2-mart 2010-jıl.
  4. «An Interview with Arthur Whitney». Kx Systems (4-yanvar 2004-jıl). 4-aprel 2009-jılda túp nusqadan arxivlendi. Qaraldı: 2-mart 2010-jıl.
  5. «Turing Award Citation 1979». Awards.acm.org. 23-dekabr 2009-jılda túp nusqadan arxivlendi. Qaraldı: 3-fevral 2010-jıl.
  6. Hellerman, H. (July 1964). "Experimental Personalized Array Translator System". Communications of the ACM 7 (7): 433–438. doi:10.1145/364520.364573.
  7. Haigh, Thomas (2005). "Biographies: Kenneth E. Iverson". IEEE Annals of the History of Computing. doi:10.1109/MAHC.2005.4.
  8. Breed, Larry (August 2006). "How We Got to APL\1130". Vector (British APL Association) 22 (3). ISSN 0955-1433. http://www.vector.org.uk/archive/v223/APL_1130.htm. Retrieved 2007-04-02.
  9. «Remembering APL». Quadibloc.com. Qaraldı: 17-iyun 2013-jıl.
  10. Stebbens. «How it all began». 4-mart 2016-jılda túp nusqadan arxivlendi. Qaraldı: 22-may 2011-jıl.
  11. «Xerox APL Language and Operations Reference Manual». 9-oktyabr 2022-jılda túp nusqadan arxivlendi.
  12. «SIGAPL». Sigapl.org. Qaraldı: 17-iyun 2013-jıl.
  13. „Fifty Years of BASIC, the Programming Language That Made Computers Personal“. Time. April 29, 2014. Qaraldı: April 29, 2018.
  14. «MCM Computers M70/M700». old-computers.com. 3-aprel 2018-jılda túp nusqadan arxivlendi. Qaraldı: 8-aprel 2018-jıl.
  15. Stachniak, Stachniak. Inventing the PC: The MCM/70 Story, 2011. 
  16. Miller, Michael (December 17, 2014). „PCs That Paved the Way for the Altair“. PC Magazine. Qaraldı: April 29, 2018. {{cite magazine}}: Unknown parameter |publisher= ignored (járdem)
  17. „A Look at SuperPet“. Compute!. December 1981. Qaraldı: April 29, 2018. {{cite magazine}}: Unknown parameter |publisher= ignored (járdem)
  18. Gates, Bill (January 31, 1976). „An Open Letter to Hobbyists“. Homebrew Computer Club Newsletter. Qaraldı: April 29, 2018.
  19. Hui. «Remembering Ken Iverson». keiapl.org. KEIAPL. 15-aprel 2013-jılda túp nusqadan arxivlendi. Qaraldı: 10-yanvar 2015-jıl.
  20. «Kenneth E. Iverson». ACM A.M. Turing Award. ACM. Qaraldı: 10-yanvar 2015-jıl.
  21. «APL2: The Early Years: Can you and should you compromise on technical issues?». SIGPLAN Chapter on Array-Programming Languages. ACM. Qaraldı: 10-yanvar 2015-jıl.
  22. «IBM APL2». EDM2 (9-oktyabr 2019-jıl). 17-noyabr 2021-jılda túp nusqadan arxivlendi. Qaraldı: 17-noyabr 2021-jıl.
  23. «APL2: What's New». ibm.com. IBM. Qaraldı: 22-aprel 2018-jıl.
  24. Micro APL. «Overview of the APL System». microapl.com. Micro APL. Qaraldı: 10-yanvar 2015-jıl.
  25. Robertson. «A Personal View of APL2010». archive.vector.org.uk. Vector – Journal of the British APL Association. 2-aprel 2015-jılda túp nusqadan arxivlendi. Qaraldı: 10-yanvar 2015-jıl.
  26. Rodriguez, P.. "An Expert System in Chemical Synthesis written in APL2/PC". ACM SIGAPL APL Quote Quad. doi:10.1145/75144.75185.
  27. «APL2: A Programming Language for Problem Solving, Visualization and Database Access». www-03.ibm.com. IBM. 22-noyabr 2013-jılda túp nusqadan arxivlendi. Qaraldı: 10-yanvar 2015-jıl.