APL ('n programmeringstaal): programmering met simbole?
'N Programmeringstaal (APL) word naamlik genoem na 'n boek wat in 1962 deur Kenneth E Iverson gepubliseer is.
APL is 'n unieke wiskundig-programmeerde taal wat ontwerp is vir kernvaardigheid wat 'n invloed op die ontwikkeling van moderne sigblaaie en wiskundige sagtewarepakkette gehad het..
1 Geskiedenis van APL
1.1 Moderne APL
2 APL sintaksis
2.1 Grafiese simbole in APL
2.2 Geneste multidimensionele skikkings
3 Die opstel van 'n APL-ontwikkelingsomgewing
4 APL Resources
Geskiedenis van APL
In die 1950's het 'n professor van die Harvarduniversiteit 'n wiskundige notasiestelsel geskep wat nuttig was om ingewikkelde skikkings met inligting te manipuleer. Hierdie professor was Kenneth Iverson.
In 1960 het Iverson by IBM gaan werk, waar hy, met behulp van die rekenaarstelselingenieur Adin Falkoff, 'n programmeertaal geskep het gebaseer op die wiskundige notasie wat hy ontwikkel het terwyl hy in die akademie gewerk het..
Alhoewel dit destyds onprakties om te implementeer, is hierdie programmeringstaal in die teks A Programming Language gepubliseer, en APL is gebore.
APL is aanvanklik by IBM gebruik om navorsing oor rekenaarstelsels uit te voer. Die aanvaarding van APL is egter regdeur die sestigerjare beperk deur die ongewone sintaksis wat baie grafiese simbole bevat wat op daardie tydstip nie maklik op rekenaars voorgestel kon word nie. As gevolg hiervan moes standpunt-in-trefwoordvoorstellings gebruik word eerder as die werklike simbole wat Iverson bedoel het.
Dit het alles in die laat 1960's verander toe IBM 'n spesiale tikbal vrygestel het wat die spesiale simbole wat in APL gebruik is, kon produseer.
IBM het APL tegelyk aan die rekenaar publiek bekendgestel deur APL op IBM mainframe-rekenaars beskikbaar te stel. Die volgende twee dekades, min of meer, het APL gewoon op hoofraamrekenaars wat deur IBM en ander mededingende vervaardigers van hardeware en sagteware versprei is, totdat die rekenaarhardeware-vermoëns die veeleisende aard van die samestelling van APL betrap het..
In die vroeë tagtigerjare het IBM 'n bygewerkte weergawe van die programmeringstaal, APL2, bekendgestel, wat 'n aantal verbeterings bekendgestel het, insluitend die konsep van multidimensionele reekse met geneste.
Teen 1980 was Ken Iverson nie meer in beheer van APL by IBM nie en het hy vertrek om by IP Sharp Associates aan te sluit, 'n mededingende ontwikkelaar van APL-implementasies wat pas 'n eie weergawe van die taal Sharp APL vrygestel het – 'n produk met die toekomstige ontwikkeling waarmee hulle tevrede was om Iverson oor te neem.
IBM kon I P Sharp oorkom deur hul weergawe van APL, APL2, as die standaard-implementering van APL te vestig. Tot vandag toe noem tipiese APL-implementasies APL2-verenigbaarheid.
Volgens APL Wiki is daar ten minste vyf moderne APL-implementerings:
APL2 2.0, van IBM, word steeds beskou as die industrie-standaard APL-implementering.
APLX, van Micro APL, is gebou op IBM's APL2 met 'n aantal verbeterings.
Dyalog is 'n APL-gebaseerde ontwikkelingsomgewing en die mees bekostigbare volwaardige APL-platform.
APL + Win is 'n APL-ontwikkelingsomgewing van APL2000.
NARS2000 is 'n open-source-funksie-beperkte implementering sonder koste, wat ontwerp is om diegene wat belangstel in APL die geleentheid te bied om APL gratis te probeer.
Sommige programmeertale is doelbewus ontwerp om maklik deur iemand gelees te word – of nie programmeerder nie.
Ruby, Python, COBOL en baie ander programmeertale gebruik 'n sintaksis wat gelees kan word, indien nie regtig verstaan ​​nie, deur iemand met 'n deeglike begrip van die Engelse taal..
APL is nie een van hierdie tale nie.
Vir almal wat nie die sintaksis van die taal ken nie, lyk APL soos 'n reeks nonsensieke grafiese simbole, letters en syfers.
Vir 'n APL-programmeerder staan ​​elke grafiese simbool of versameling simbole in vir 'n wiskundige funksie – dikwels 'n redelik ingewikkelde funksie.
Benewens die unieke sintaksis, is die gebruik van geneste multidimensionele skikkings 'n ander kenmerk wat APL ietwat uniek maak onder programmeertale.
Grafiese simbole in APL
Grafiese simbole word gebruik om funksies en operateurs voor te stel. Sommige van die gebruikte simbole is algemeen en maklik verstaanbaar:
≠: nie gelyk aan
> en <: word gebruik om twee waardes te vergelyk en die groter of kleiner waarde terug te gee
+, −, ÷, en ×: gebruik om tipiese wiskundige funksies uit te voer.
Die betekenis van baie ander simbole is nie maklik vir nie-APL-programmeerders sigbaar nie:
⍴: rho, word gebruik om die vorm van 'n skikking terug te gee of 'n skikking te vorm.
⌽: sirkelstileer, keer die volgorde of 'n skikking om, of draai 'n skikking in 'n multidimensionele rigting.
⍋ en ⍒: rangskik op en af, rangskik 'n skikking in dalende of stygende volgorde.
Dit is slegs 'n paar van die dosyne simbole wat in APL gebruik word.
Alhoewel dit vir 'n beginner oorweldigend kan wees om al hierdie simbole, hul betekenis en hoe om dit te gebruik, in te span, beweer ervare APL-programmeerders dat die produktiwiteit baie verbeter is as gevolg van die vermindering van die tik wat benodig word om ongelooflike kragtige funksies te skep..
Geneste multidimensionele skikkings
Eenvoudige tweedimensionele skikkings is 'n algemene datatipe in rekenaarprogrammering. Skikkings is slegs versamelings van veranderlikes of waardes. Byvoorbeeld, [0, 1, 2] is 'n skikking wat die waardes 0, 1 en 2 bevat.
Multidimensionele skikkings bestaan ​​uit verskeie rye skikkingsitems in 'n tabelvorm. Byvoorbeeld, 'n voortsetting van die skikking hierbo gelys in 'n 3 by 3 multidimensionele skikking kan soos volg lyk:
Geneste skikkings is 'n ander manier om die data in 'n skikking te verbeter. In 'n geneste array kan elke item addisionele skikkings bevat en nie slegs enkele waardes of veranderlikes nie.
In APL kan skikkings beide multidimensioneel wees en geneste reekse bevat. Dit kan 'n bietjie moeilik wees om jou kop om te draai, dus kom ons kyk na 'n voorbeeld.
Deur die multidimensionele skikking in die voorbeeld hierbo te gebruik, vervang ons die item in die sentrale (2, 2) posisie (die nommer 4) deur 'n nuwe multidimensionele skikking wat bestaan ​​uit die letters a, b, c en d.
3 'n b 5
As daar na die item in die 2, 2 posisies in hierdie skikking verwys word, sou die skikking wat die veranderlikes a, b, c en d bevat, teruggestuur word.
Die vermoë vir skikkings om geneste multidimensionele waardes en veranderlikes te hou, is in die laat 1970's en vroeë 1980's by Sharp APL en APL2 gevoeg, en dit bly een van die kenmerkende kenmerke van APL.
Die opstel van 'n APL-ontwikkelingsomgewing
Om met APL te werk, moet u u rekenaar toerus om APL-simbole te vervaardig en 'n APL-tolk te installeer. Om een ​​APL-tolk te installeer, kies een van die moderne APL-implementasies hierbo gelys.
Ons aanbeveling is om óf NARS2000 óf Dyalog te installeer. NARS2000 is heeltemal gratis, maar bied 'n beperkte kenmerkstel.
Dyalog kan gratis afgelaai word (blaai na die onderkant van die bladsy en kies Laai die ongeregistreerde weergawe af), maar u sal 'n geregistreerde kopie wil koop as u op die lange duur APL gebruik.
Nadat u 'n APL-implementering geïnstalleer het, moet u u masjien instel om die simbole te produseer wat in APL benodig word. Sommige APL-implementasies bevat 'n pop-up-sleutelbordmenu wat u kan gebruik om APL-simbole in te tik sonder om lettertipes te installeer of nuwe hardeware te koop.
As u nog nie gereed is om al hierdie pogings aan te pak nie, is 'n ander opsie om APL in die blaaier te probeer. TryAPL is 'n gratis webwerf, geskep deur Dyalog, waar u APL-kode in u blaaier kan gebruik om 'n gevoel te kry van hoe APL werk..
Een van die beste plekke om te leer oor APL is die APL Wiki. Hierdie hulpbron, wat saamgestel is deur die APL-gemeenskap, bied 'n magdom opvoedkundige hulpbronne en inligting oor moderne APL-gebruik.
As u gereed is om te begin leer, is 'n paar van die nuttigste hulpbronne wat u op die wiki vind:
APL in 20 minute: 'n vinnige blik op wat APL is en wat dit kan doen.
Leer APL: 'n beginners-tutoriaal wat die basiese beginsels van kodering in APL dek.
Hallo wêreld: geen programmeringsonderrig sou volledig wees sonder hierdie klassieke oefening nie.
Verdere onderwerpe in APL: as u die Leer-APL-tutoriaal voltooi het, is dit 'n wonderlike volgende stap in die rigting van APL-bevoegdheid.
Werkspraktyke: as u dit deur die vorige tutoriale gedoen het, het u 'n basiese begrip van APL, hoe om dit te gebruik en wat dit kan doen. Die volgende stap is om aan u eie projekte te begin werk. Voordat u dit doen, moet u egter lees oor die werkvloeipraktyke van ervare APL-ontwikkelaars.
APL2000 is 'n bietjie anders as die ander APL-implementasies en kan selfs met 'n bietjie ekstra poging binne die .NET Framework gebruik word. As dit u interesseer, leer u meer van VisualAPL uit APL200 met hierdie bronne:
VisualAPL-tutoriaal in PDF-formaat
Twee ikoniese bronne in die APL-gemeenskap sluit 'n artikel in wat deur Bernard Legrand in 2006 geskryf is en die praktyk om Conway se Game of Life in APL te herskep.
U kan die artikel van Legrand, APL – 'n Glimpse of Heaven at Vector, die webwerf van die Britse APL-vereniging lees.
U kan leer oor Conway se Game of Life en hoe dit in 'n enkele reël van die APL-kode herskep kan word deur daaroor te lees of na 'n skermsending te kyk wat die proses verduidelik.
Die afgelope vyf dekades is 'n hele paar APL-tekste geskryf. Hier is ses van die beste:
'N Programmeringstaal deur Kenneth E Iverson, die boek wat alles begin het
APL: 'n interaktiewe benadering deur Gilman en Rose
APL2 in diepte deur Thompson en Polivka
APL 2 in 'n oogopslag deur Brown, Pakin en Polivka
APL met 'n wiskundige aksent deur Reiter en Jones
Bemeestering van Dyalog APL: 'n Volledige inleiding tot Dyalog APL deur Bernard Legrand, ook beskikbaar as 'n gratis PDF.
APL is 'n wiskundig-neigende programmeringstaal waarvan die kenmerke 'n hoogs simboliese sintaksis bevat en ondersteuning vir geneste multidimensionele skikkings.
Die APL-leerkurwe is byna vertikaal, dus jy moet 'n buitengewone steil klim as jy besluit om APL te leer.
Die voordeel is dat u op pad is om een ​​van die kragtigste programmeertale te bemeester wat ooit ontwerp is.
COBOL Inleiding en bronne: hoewel dit 'n vroeëre taal was, is COBOL amper die teenoorgestelde van APL in terme van leesbaarheid.
Fortran Resources: die ontwikkeling op Fortran, waarskynlik die eerste hoë vlak van rekenaarprogrammeringstaal, het byna 'n dekade voor APL begin.