APL (A Programming Language): Programmeren met symbolen?

Openbaarmaking: Uw steun helpt de site draaiende te houden! We verdienen een verwijzingsvergoeding voor sommige van de services die we op deze pagina aanbevelen.


Een programmeertaal (APL) is vernoemd naar een boek dat in 1962 door Kenneth E Iverson werd gepubliceerd.

APL is een unieke wiskundig ingestelde programmeertaal die is ontworpen voor beknoptheid en die van invloed was op de ontwikkeling van moderne spreadsheets en wiskundige softwarepakketten.

Geschiedenis van APL

In de jaren vijftig creëerde een professor aan de Harvard University een wiskundig notatiesysteem dat nuttig was voor het manipuleren van complexe informatiereeksen. Deze professor was Kenneth Iverson.

In 1960 ging Iverson aan de slag bij IBM, waar hij met de hulp van computersysteemingenieur Adin Falkoff een programmeertaal creëerde op basis van de wiskundige notatie die hij had ontwikkeld tijdens zijn werk in de wetenschap.

Deze programmeertaal, hoewel onpraktisch in die tijd, werd toch gepubliceerd in de tekst A Programming Language, en APL was geboren.

APL werd aanvankelijk gebruikt bij IBM om onderzoek te doen naar computersystemen. Gedurende de jaren zestig werd de acceptatie van APL echter beperkt door de ongebruikelijke syntaxis die veel grafische symbolen bevat die op dat moment niet gemakkelijk op computers konden worden weergegeven. Als gevolg hiervan moesten stand-in trefwoordrepresentaties worden gebruikt in plaats van de daadwerkelijke symbolen die Iverson had bedoeld.

Dat veranderde eind jaren zestig toen IBM een speciale typeball uitbracht die de speciale symbolen kon produceren die in APL worden gebruikt.

IBM introduceerde tegelijkertijd APL bij het computerpubliek door APL beschikbaar te maken op IBM-mainframecomputers. Gedurende de volgende 2 decennia leefde APL min of meer op mainframecomputers die werden gedistribueerd door IBM en andere concurrerende hardware- en softwarefabrikanten, totdat de mogelijkheden van personal computerhardware de veeleisende aard van het samenstellen van APL inhaalden.

Begin jaren tachtig bracht IBM een bijgewerkte versie van de programmeertaal APL2 uit, die een aantal verbeteringen introduceerde, waaronder het concept van geneste multidimensionale arrays.

Tegen 1980 had Ken Iverson niet langer de controle over APL bij IBM en vertrok om zich aan te sluiten bij IP Sharp Associates, een concurrerende ontwikkelaar van APL-implementaties die zojuist een eigen versie van de taal die het Sharp APL heette had uitgebracht – een product waarvan ze de toekomstige ontwikkeling gelukkig waren Iverson over te laten nemen.

IBM was in staat I P Sharp te overwinnen door hun versie van APL, APL2, vast te stellen als de industriestandaard APL-implementatie. Tot op de dag van vandaag noemen moderne APL-implementaties doorgaans APL2-compatibiliteit.

Moderne APL

Volgens APL Wiki zijn er minstens vijf moderne APL-implementaties:

  • APL2 2.0, van IBM, wordt nog steeds beschouwd als de industriestandaard APL-implementatie.

  • APLX, van Micro APL, is gebouwd op IBM’s APL2 met een aantal verbeteringen.

  • Dyalog is een op APL gebaseerde ontwikkelomgeving en het meest betaalbaar gebruikte, volledig uitgeruste APL-platform.

  • APL + Win is een APL-ontwikkelomgeving van APL2000.

  • NARS2000 is een gratis open-source feature-beperkte implementatie ontworpen om geïnteresseerden in APL de mogelijkheid te geven om APL gratis uit te proberen.

APL-syntaxis

Sommige programmeertalen zijn met opzet ontworpen om gemakkelijk door iedereen te kunnen worden gelezen – programmeur of niet.

Ruby, Python, COBOL en vele andere programmeertalen gebruiken een syntaxis die kan worden gelezen, zo niet echt begrepen, door iedereen met een goed begrip van de Engelse taal.

APL is niet een van deze talen.

Voor iedereen die niet bekend is met de syntaxis van de taal, ziet APL eruit als een reeks onzinnige grafische symbolen, letters en cijfers.

Voor een APL-programmeur staat elk grafisch symbool of elke set symbolen echter in voor een wiskundige functie – vaak een vrij complexe functie.

Naast de unieke syntaxis, is het gebruik van geneste multidimensionale arrays een ander kenmerk dat APL enigszins uniek maakt onder programmeertalen.

Grafische symbolen in APL

Grafische symbolen worden gebruikt om functies en operators weer te geven. Sommige van de gebruikte symbolen zijn gebruikelijk en gemakkelijk te begrijpen:

  • ≠: niet gelijk aan

  • > en <: gebruikt om twee waarden te vergelijken en de grotere of kleinere waarde te retourneren

  • +, −, ÷ en ×: gebruikt om typische wiskundige functies uit te voeren.

De betekenis van veel andere symbolen is niet gemakkelijk duidelijk voor niet-APL-programmeurs:

  • ⍴: rho, gebruikt om de vorm van een array terug te geven of een array een andere vorm te geven.

  • ⌽: cirkelstijl, draait de volgorde of een array om of roteert een array in een multidimensionale richting.

  • ⍋ en ⍒: omhoog en omlaag gaan, een rangschikking van een array in aflopende of oplopende volgorde.

Dit zijn slechts enkele van de tientallen symbolen die in APL worden gebruikt.

Hoewel het voor een beginner overweldigend kan zijn om al deze symbolen, hun betekenis en hoe ze te gebruiken, in zich op te nemen, beweren ervaren APL-programmeurs een sterk verbeterde productiviteit als gevolg van minder typen die nodig is om ongelooflijk krachtige functies te creëren.

Geneste multidimensionale arrays

Eenvoudige ééndimensionale arrays zijn een veelvoorkomend gegevenstype bij computerprogrammering. Arrays zijn slechts verzamelingen variabelen of waarden. [0, 1, 2] is bijvoorbeeld een array met de waarden 0, 1 en 2.

Multidimensionale arrays bestaan ​​uit meerdere rijen array-items in een tabelindeling. Een voortzetting van de hierboven genoemde array in een 3 bij 3 multidimensionale array kan er bijvoorbeeld als volgt uitzien:

012
345
678

Geneste arrays zijn een andere manier om de gegevens in een array te verbeteren. In een geneste array kan elk item extra arrays bevatten en niet alleen afzonderlijke waarden of variabelen.

In APL kunnen arrays zowel multidimensionaal zijn als geneste arrays bevatten. Dit kan een beetje moeilijk zijn om je hoofd om te wikkelen, dus laten we naar een voorbeeld kijken.

Gebruikmakend van de multidimensionale array in het bovenstaande voorbeeld, vervangen we het item in de centrale (2, 2) positie (het cijfer 4) door een nieuwe multidimensionale array bestaande uit de letters a, b, c en d.

012
3eenb5
cd
678

Als naar het item op de 2, 2 posities in deze array werd verwezen, zou de array met de variabelen a, b, c en d worden geretourneerd.

Het vermogen van arrays om geneste multidimensionale waarden en variabelen vast te houden, werd eind jaren zeventig en begin jaren tachtig toegevoegd aan zowel Sharp APL als APL2 en blijft een van de bepalende kenmerken van APL.

Een APL-ontwikkelomgeving opzetten

Om met APL te werken, moet u uw computer uitrusten om APL-symbolen te produceren en een APL-interpreter te installeren. Selecteer een van de hierboven genoemde moderne APL-implementaties om een ​​APL-interpreter te installeren.

Onze aanbeveling is om NARS2000 of Dyalog te installeren. NARS2000 is volledig gratis, maar biedt een beperkte functieset.

Dyalog kan gratis worden gedownload (scrol naar de onderkant van de pagina en selecteer Download de niet-geregistreerde versie), maar u wilt een geregistreerd exemplaar kopen als u op lange termijn APL gebruikt.

Na het installeren van een APL-implementatie, moet u uw machine instellen om de symbolen te produceren die nodig zijn om in APL te coderen. Sommige APL-implementaties bevatten een pop-up toetsenbordmenu dat u kunt gebruiken om APL-symbolen te typen zonder dat u lettertypen hoeft te installeren of nieuwe hardware hoeft aan te schaffen.

Als je nog niet klaar bent om al die moeite te doen, is een andere optie om APL in de browser te proberen. TryAPL is een gratis website, gemaakt door Dyalog, waar u APL-code in uw browser kunt uitvoeren om een ​​idee te krijgen van hoe APL werkt.

APL-bronnen

Een van de beste plaatsen om over APL te leren, is de APL Wiki. Deze bron, die in samenwerking met de APL-gemeenschap is gemaakt, biedt een schat aan educatieve bronnen en informatie over modern APL-gebruik.

Als je klaar bent om te beginnen met leren, volgen hier enkele van de handigste bronnen die je op de wiki kunt vinden:

  • APL in 20 minuten: een snelle blik op wat APL is en wat het kan doen.

  • APL leren: een tutorial voor beginners die de basisprincipes van coderen in APL behandelt.

  • Hallo wereld: geen programmeeropleiding zou niet compleet zijn zonder deze klassieke oefening.

  • Verdere onderwerpen in APL: als je de APL-zelfstudie hebt voltooid, is dit een geweldige volgende stap op weg naar APL-competentie.

  • Werkpraktijken: als je de vorige tutorials hebt doorlopen, heb je een basiskennis van APL, hoe je het kunt gebruiken en wat het kan doen. De volgende stap is om aan je eigen projecten te gaan werken. Lees voordat u dat doet echter de werkstroompraktijken van ervaren APL-ontwikkelaars.

APL2000 is een beetje anders dan de andere APL-implementaties en kan zelfs met een beetje extra inspanning binnen het .NET Framework worden gebruikt. Als dit je interesseert, leer dan meer over VisualAPL van APL200 met deze bronnen:

  • VisualAPL-zelfstudie in PDF-indeling

  • VisualAPL-webcasts.

Twee iconische bronnen in de APL-gemeenschap zijn onder meer een artikel geschreven door Bernard Legrand in 2006 en de praktijk van het opnieuw creëren van Conway’s Game of Life in APL.

Je kunt het artikel van Legrand lezen, APL – a Glimpse of Heaven at Vector, de website van de British APL Association.

Je kunt meer te weten komen over Conway’s Game of Life en hoe het kan worden nagebootst in een enkele regel APL-code door erover te lezen of een screencast te bekijken waarin het proces wordt uitgelegd.

Boeken

Er zijn de afgelopen vijf decennia nogal wat APL-teksten geschreven. Hier zijn zes van de beste:

  • Een programmeertaal door Kenneth E Iverson, het boek waarmee het allemaal begon

  • APL: een interactieve benadering door Gilman en Rose

  • APL2 in Depth door Thompson en Polivka

  • APL 2 in een oogopslag door Brown, Pakin en Polivka

  • APL met een wiskundig accent door Reiter en Jones

  • Mastering Dyalog APL: A Complete Introduction to Dyalog APL door Bernard Legrand, ook beschikbaar als gratis PDF.

Conclusie

APL is een wiskundig ingestelde programmeertaal waarvan de bepalende kenmerken een zeer symbolische syntaxis en ondersteuning voor geneste multidimensionale arrays omvatten.

De APL-leercurve is bijna verticaal, dus je staat voor een uitzonderlijk steile klim als je besluit om APL te leren.

De beloning is dat u op weg bent om een ​​van de krachtigste programmeertalen ooit te beheersen.

Verder lezen en bronnen

We hebben meer handleidingen, tutorials en infographics met betrekking tot codering en ontwikkeling:

  • COBOL Inleiding en bronnen: hoewel het een eerdere taal was, is COBOL bijna het tegenovergestelde van APL in termen van leesbaarheid.

  • Fortran Resources: waarschijnlijk de eerste computerprogrammeertaal op hoog niveau, de ontwikkeling op Fortran begon bijna tien jaar voor APL.

  • Assembly Language Introduction: leer computerprogrammering op het meest basale niveau.

Welke code moet je leren?

Weet u niet zeker in welke programmeertaal u moet leren coderen? Bekijk onze infographic Welke code moet u leren? Het bespreekt niet alleen verschillende aspecten van de talen, het beantwoordt belangrijke vragen zoals: “Hoeveel geld zal ik verdienen met het programmeren van Java voor de kost?”

Welke code moet je leren?
Welke code moet je leren?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map