Top 10 artikelenGooleKoreaanse thee nasza-klasa.pl Creditcardfraude Het zingen Misbruik Muziek van Indonesië Tchiluba De Provincie van Balkh Provincie van Balkh Thermische straling |
News: |
| APL | |
|---|---|
| Paradigma | serie, functioneel, gestructureerd, modulair |
| Binnen verschenen | 1964 |
| Langs ontworpen | Kenneth E. Iverson |
| Ontwikkelaar | Kenneth E. Iverson |
| Het typen discipline | dynamisch |
| Belangrijke implementaties | IBM APL2, Dyalog APL, APL2000, Scherpe APL |
| Dialecten | A+, Dyalog APL, APLNext |
| Langs beïnvloed | wiskundige aantekening |
| Beïnvloed | J, K, Nial |
APL (A Phet rogramming Language) is serie programmering taal die op een aantekening wordt gebaseerd die in 1957 langs wordt uitgevonden Kenneth E. Iverson terwijl bij De Universiteit van Harvard. Het kwam voort als poging om verenigbare aantekening voor het onderwijs en de analyse van onderwerpen te verstrekken met betrekking tot de toepassing van computers. Iverson publiceerde zijn aantekening in 1962 in een titled boek Een programmeertaal. Tegen 1965, werd een ondergroep van de aantekening uitgevoerd als programmeertaal, dan genoemd werd IVSYS. Later, voorafgaand aan zijn commerciële versie, kreeg APL zijn naam van de titel van het boek. Iverson ontving De Toekenning van Turing in 1979 voor zijn werk.
Aantekening van Iverson werd later gebruikt om te beschrijven IBM System/360 machine architectuur, een beschrijving beknopter en nauwkeurig dan de bestaande documentatie en het openbaren van verscheidene eerder ongemerkte problemen. Later, a Selectric typeball speciaal werd ontworpen om een lineaire vertegenwoordiging van deze aantekening te schrijven. Dit distinctieve aspect van APL, het gebruik van een speciaal karakter - reeks die visueel de handelingen de afschildert die moeten worden uitgevoerd, blijft fundamenteel onveranderd vandaag.
De APL taaleigenschappen een rijke reeks verrichtingen die aan volledig werken series van gegevens, zoals de vectorinstructiereeks van a SIMD architectuur. Terwijl vele computertalen zouden vereisen herhaling aan, bijvoorbeeld, voeg twee series toe samen, meteen behandelen de functies in APL typisch volledige series. Samen met een speciaal karakter - plaats waar glyphs handelingen die moeten worden uitgevoerd vertegenwoordig, vermindert dit drastisch het potentiële aantal lijnen en staat voor kleinere, beknoptere en compacte programma's toe.
Zoals met alle programmeertalen die verscheidene decennia van voortdurend gebruik hebben gehad, heeft APL beduidend, over het algemeen op een naar omhoog-compatibele manier, van zijn vroegere versies geëvolueerde. APL is gewoonlijk interpretive en interactief, en kenmerkt normaal een belezen-evalueren-druklijn (REPL) voor bevel en uitdrukkingsinput. Vandaag, bijna al moderne implementatiessteun gestructureerde programmering terwijl verscheidene dialecten nu één of andere vorm van kenmerken georiënteerd voorwerp - programmerings concepten.
Inhoud |
De eerste incarnatie van wat later de APL programmeertaal moest zijn was een boek beschrijvend een aantekening die in 1957 langs wordt uitgevonden Kenneth E. Iverson terwijl bij De Universiteit van Harvard. Gepubliceerd in 1962, was de aantekening die in het boek wordt beschreven herkenbaar maar toch ver van APL.
IBM was voornamelijk de oorzaak van de introductie van APL aan de markt. In 1965, werd een gedeelte van de aantekening herwerkt en werd uitgevoerd als programmeertaal. APL was eerst beschikbaar in 1967 voor IBM 1130 zoals APL \ 1130[1]. APL bereikte zijn steunpunt op de systemen van het centrale verwerkingseenheidstime-sharing van de recente jaren '60 door de jaren '80. Later, toen geschikt het uitvoeren van hardware was definitief beschikbare aanvang in vroeg aan de medio-jaren '80, migreerden vele gebruikers hun toepassingen aan het personal computermilieu.
De vroege tolken van IBM APL voor IBM 360 en IBM 370 de hardware voerde hun eigen beheer voor meerdere gebruikers in plaats van het vertrouwen op de gastheerdiensten uit, dus waren zij time-sharingsystemen in hun eigen recht. Eerst geïntroduceerdo in 1966, APL \ 360 het systeem was een tolk voor meerdere gebruikers. In 1973, IBM bevrijd APL.SV welke een voortzetting van het zelfde product was, maar dat aanbood gedeelde variabelen als middel om tot faciliteiten buiten het APL systeem, zoals werkend systeemdossiers toegang te hebben. In het midden van de jaren '70, werd de de centrale verwerkingseenheidstolk van IBM zelfs aangepast voor gebruik op IBM 5100 bureaucomputer, die een kleine CRT en APL toetsenbord had, toen de meeste andere kleine computers van de tijd slechts BASIC aanboden. In de jaren '80, VSAPL het programma product genoot van wijdverspreid gebruik met CMS, TSO, VSPC, en CICS gebruikers.
Verscheidene time-sharingfirma's sprongen in de jaren '60 en de jaren '70 op die APL de diensten gebruikend gewijzigde versies van de tolk van IBM APL \ 360 verkochten. In Noord-Amerika, waren de beter-gekende I. P. Scherpe Vennoten, Het wetenschappelijke Bedrijf van het Time-sharing, en het Bedrijf van de Computer (TCC). Met de komst eerst van minder dure centrale verwerkingseenheden zoals IBM 4331 en later de personal computer, had de time-sharingindustrie alles behalve verdween door het midden van de jaren '80.
Scherpe APL was beschikbaar bij I. P. Scherpe Vennoten, eerst op een time-sharingbasis in de jaren '60, en later als programmaproduct dat rond 1979 begint. Scherpe APL was een geavanceerde APL implementatie met vele taaluitbreidingen, zoals pakketten (de capaciteit om één of meerdere voorwerpen in één enkele variabele te zetten), nestelde het dossiersysteem, series, en gedeelde variabelen.
APL tolken waren eveneens beschikbaar bij andere centrale verwerkingseenheid en minicomputervervaardiging, in het bijzonder Burroughs, CDC, Algemene gegevens -, Dec, Harris, Hewlett-Packard, Siemens, Xerox, en anderen.
Beginnend in de vroege jaren '80, de ontwikkeling van IBM APL, onder de leiding van Dr. Jim Brown, voerde een nieuwe versie van de APL taal uit die als zijn primaire verhoging het concept van bevatte genestelde series waar een serie andere series kan bevatten, plus nieuwe taaleigenschappen die de integratie van genestelde series in programmawerkschema vergemakkelijkten. Ken Iverson, niet meer in controle van de ontwikkeling van de APL taal, linkerIBM en toegetreden I. P. Scherpe Vennoten waar hij, onder andere, aan de evolutie van Scherpe APL om opdracht gaf te zijn meer volgens zijn visie. Iverson ontwikkelde later J taal.
Aangezien andere verkopers bezig waren het ontwikkelen van APL tolken voor nieuwe hardware, in het bijzonder Unix- gebaseerd microcomputers, Was APL2 bijna altijd de norm die voor nieuwe APL tolkenontwikkelingen wordt gekozen. Zelfs vandaag, halen de meeste APL verkopers APL2 verenigbaarheid aan, die slechts 100%, als verkopend punt voor hun producten nadert.
APL2 voor IBM is de centrale verwerkingseenheidscomputers nog vandaag beschikbaar, en waren eerst beschikbaar voor CMS en TSO rond 1980. De APL2 uitgave van het Werkstation (Vensters, OS/2, AIX, Linux, en Solaris) volgde veel later in de vroege jaren '90.
De eerste microcomputerimplementatie van APL was op MCM/70, 8008- gebaseerde bewerker, in 1973. A Kleine APL voor Intel riepen 8080 EMPL werden bevrijd in 1977, en Softronics APL, met de meeste functies van volledige APL, want 8080 gebaseerde systemen CP/M in 1979 werden vrijgegeven.
In 1977, een bedrijfsniveau APL vrijgegeven werd dat als TIS APL wordt bekend, die op de Z80 bewerker wordt gebaseerd. Het kenmerkte de volledige reeks dossierfuncties voor APL, plus het volledig scherm die en omschakeling van juiste en linkerargumenten voor de meeste tweevoudige exploitanten door ~ wordt ingevoerd te introduceren. prefix aan alle enige karakter tweevoudige functies zoals - of/.
De voorhoede APL was beschikbaar voor Z80 CP/M- gebaseerde bewerkers in de recente jaren '70. TCC vrijgegeven APL.68000 in de vroege jaren '80 voor Motorola 68000- gebaseerde bewerkers, dit systeem dat de basis voor MicroAPL Beperkt product APLX zijn. I. P. De scherpe Vennoten gaven een versie van hun APL tolk voor PC en PC/370 van IBM - voor PC van IBM vrij, mededinger werd geschreven wat het opnieuw gebruiken van veel van IBM 370 centrale verwerkingseenheidscode vergemakkelijkte. Betwistbaar, was de bekendste APL tolk voor de Personal computer van IBM STSC's APL*Plus/PC.
In de vroege jaren '80, het ontwikkelde Bedrijf Analogic De APL Machine, wat was serie verwerking computer die wordt ontworpen om slechts in APL worden geprogrammeerd. Er waren eigenlijk drie verwerkingseenheidën, het werkstation van de gebruiker, PC VAN IBM, waar de programma's waren ingegaan en, Motorola werden uitgegeven 6800 bewerker die de APL tolk in werking stelden, en de Analogic seriebewerker die de primitieven uitvoerden. Op het tijdstip van zijn inleiding was de APL Machine waarschijnlijk het snelste APL beschikbare systeem. Hoewel een technologisch succes, was de APL Machine een marketing mislukking. De aanvankelijke versie steunde tegelijkertijd één enkel proces. Tegelijkertijd werd het project beëindigd, was het ontwerp voltooid om veelvoudige gebruikers toe te staan. Als terloopse opmerking, was een ongebruikelijk aspect van de APL Machine dat de bibliotheek van werkruimten werd georganiseerd dusdanig dat een één enkele functie of variabele die door vele werkruimten werden gedeeld slechts eenmaal in de bibliotheek bestond. Verscheidene van de leden van het APL project van de Machine hadden eerder een aantal jaren met het uitvoeren Burroughs doorgebracht APL \ 700.
In één stadium, Microsoft Corporation gepland om een versie van APL, maar deze plannen vrij te geven materialiseerde nooit.
Een begin publicatie van 1978 van Rodnay Zaks van Sybex was A microprogrammed APL implementatie ISBN 0895880059 welke de volledige is, totale bronlijst voor de microcode voor een bewerker PDP die/lsi-11 APL uitvoeren. Dit kan de substantie van zijn PhD thesis geweest zijn.
Meer dan een zeer brede reeks probleemdomeinen (math, wetenschap, techniek, computerontwerp, robotica, gegevensvisualisatie, actuariële wetenschap, traditioneel DP, enz.) APL is uiterst krachtig, expressief en de beknopte programmeertaal, plaatste typisch in een interactief milieu. Het werd oorspronkelijk, onder andere, als manier gecre�ërd om computers te beschrijven, door uit te drukken wiskundige aantekening op een strenge manier dat door een computer zou kunnen worden geïnterpreteerdg. Het is gemakkelijk te leren maar sommige APL programma's kunnen wat tijd vergen om, vooral voor een nieuwkomer te begrijpen. Weinig andere programmeertalen bieden de uitvoerige seriefunctionaliteit van APL aan.
In tegenstelling tot traditioneel gestructureerde programmeertalen, is de code in APL typisch gestructureerd als kettingen van monadic of tweevoudig functies en exploitanten acteren op series. Aangezien APL niet genormaliseerd velen heeft primitieven (functies en exploitanten, die door één enkel symbool of een combinatie een paar symbolen worden vermeld), heeft het geen functie of exploitant belangrijkheid. De vroege APL implementaties hadden niet controle structuren (doe of terwijl als-toen-anders lijnen,), maar door serieverrichtingen te gebruiken, gebruik van gestructureerde programmering de concepten waren enkel niet noodzakelijk. Bijvoorbeeld, kan de jotafunctie (die een ééndimensionale serie opbrengen, of de vector, van 1 aan N) voor-lijn vervangen herhaling. De recentere implementaties van APL omvatten over het algemeen uitvoerige controlestructuren, dus kunnen de gegevensstructuur en de stroom van de programmacontrole duidelijk en proper worden gescheiden.
Het APL milieu wordt genoemd a werkruimte. In een werkruimte kan de gebruiker programma's en gegevens bepalen, d.w.z. de gegevenswaarden bestaan ook buiten de programma's, en de gebruiker kan de gegevens zonder de noodzaak manipuleren om een programma te bepalen. Bijvoorbeeld,
wijst toe vector waarden 4 5 6 7 aan N;
voegt 4 aan alle waarden die (8 9 10 11 geven) toe en drukt hen (een terugkeerwaarde niet die aan het eind van een verklaring aan een variabele wordt toegewezen die de taakpijl gebruikt wordt getoond door de APL tolk);
drukt de som van N, d.w.z. 22.
De gebruiker kan de werkruimte met al waarden, programma's en de uitvoeringsstatus bewaren.
APL is niet bekend voor zijn gebruik van een reeks vanASCII symbolen die een uitbreiding van traditionele rekenkundige en algebraïsche aantekening zijn. Het hebben van enige karakternamen voor SIMD de vector functies is unidirectioneel dat APL compacte formulering van algoritmen voor gegevenstransformatie zoals gegevensverwerking toelaat Het Spel van Conway van het Leven in één lijn van code (voorbeeld). In bijna alle versies van APL, is het theoretisch mogelijk om om het even welke berekenbare functie in één uitdrukking, namelijk in één lijn van code uit te drukken.
Wegens zijn gecondenseerde aard en niet genormaliseerde karakters, is APL soms genoemd „schrijven-slechts taal„, en lezing kan een APL programma eerst als het decoderen voelen Egyptische hieroglyphics. Wegens ongebruikelijk karakter - reeks, vele speciaal programmeursgebruik toetsenborden met APL keytops voor auteursAPL code. Hoewel er diverse manieren zijn om APL te schrijven code die slechts de karakters van ASCII gebruikt[2], in de praktijk, wordt het bijna nooit gedaan. (Dit kan worden verondersteld om de theses van Iverson ongeveer te steunen aantekening als hulpmiddel van gedachte[nodig citaat].) De meesten als niet alle moderne implementaties standaardtoetsenbordlay-outs, met speciale afbeeldingen gebruiken of De Redacteurs van de Methode van de input aan de karakters van toegangs niet-ASCII. Historisch, APL is font distinctief, met cursieve alfabetische karakters in hoofdletters en rechte cijfers en symbolen geweest. De meeste verkopers blijven het APL karakter - tonen dat in douanefont wordt geplaatst.
De verdedigers van APL beweren dat de voorbeelden van zogenaamde schrijven-slechts code bijna onveranderlijk voorbeelden van slechte programmeringspraktijk of novice fouten zijn, die in om het even welke taal kunnen voorkomen. De verdedigers van APL beweren ook dat zij veel productiever zijn met APL dan met conventionelere computertalen, en dat werken van software in veel minder tijd en met veel minder programmeurs kan worden uitgevoerd dan gebruikend andere technologie. APL laat een individu hardere problemen sneller oplossen. Ook, zijnd compact en bruusk, leent APL zich goed aan de ontwikkeling van de grotere schaalsoftware aangezien de ingewikkeldheid die van een groot aantal lijnen van code het gevolg is dramatisch kan worden verminderd. Vele APL verdedigers en vaklieden bekijken programmering in standaard programmeertalen, zoals COBOL en Java, zoals betrekkelijk vervelend. APL wordt vaak gevonden waar de tijd-aan-markt, zoals met handelssystemen belangrijk is.
Iverson ontwierp later J programmeertaal welk gebruik ASCII met digraphs in plaats van speciale symbolen.
Een zeer eenvoudig voorbeeld dat nog verscheidene lijnen van code in de meeste niet-serie programmeertalen zou vereisen is een Oogst 6 (van 1-40) de generator van het loterij random number, volledig met het waarborgen van geen herhaalde aantallen, en het sorteren van de resultaten in het stijgen orde:
↑6? 40
De volgende uitdrukking soorten een woordlijst die in matrijs X volgens woordlengte wordt opgeslagen:
X [⍋X+.≠ ';]
De volgende functie het „leven“, geschreven in Dyalog APL, neemt een matrijs van Boole en berekent de nieuwe generatie volgens Het Spel van Conway van het Leven:
In het volgende voorbeeld, ook Dyalog, wijst de eerste lijn één of andere code van HTML aan een veranderlijke „txt toe“ en gebruikt dan een APL uitdrukking om alle markeringen van HTML te verwijderen, terugkerend de tekst slechts zoals aangetoond in de laatste lijn.
De volgende uitdrukking vindt allen eerste aantallen van 1 aan R dat (een indexoorsprong van 1 veronderstelt). In zowel tijd als ruimte, is de berekening O (R ²).
(∼R∈R°.×R) /R←1↓ιR
Van rechts naar links, betekent dit:
APL was uniek in de snelheid waarmee het complexe matrijshandelingen kon uitvoeren. Bijvoorbeeld, zou een zeer grote matrijsvermenigvuldiging slechts een paar seconden op een machine vergen die dan die vandaag veel minder krachtig was. Er waren zowel technische als economische redenen voor dit voordeel:
Een wijd aangehaald document een „APL Machine“ (authored door Phil Abrams) bestendigde de mythe dat APL doordringend gebruik van maakte luie evaluatie waar de berekeningen niet echt tot de resultaten nodig waren zouden uitgevoerd worden en toen slechts die berekeningen strikt vereist. Een duidelijke (en gemakkelijk uit te voeren) luie evaluatie is J-vector : wanneer monadic jota wordt ontmoet in de code, is wordt gehouden als a vertegenwoordiging in plaats van meteen wordt berekend, waarbij wat tijd evenals geheugen worden bespaard.
Hoewel deze techniek niet veralgemeend was, neemt het het beste de overlevingsmechanisme op van de taal: specificerend niet de orde van scalaire verrichtingen. Zelfs zoals uiteindelijk gestandaardiseerd door X3J10, zo hoogst is APL gegeven-parallel, geeft het taalimplementors immense vrijheid verrichtingen zo efficiënt mogelijk te plannen. Als computerinnovaties zoals voorgeheugen, en SIMD de uitvoering werd commercieel beschikbaar, APL ported de programma's met weinig extra inspanning bestede re-optimaliseert lage details.
Vandaag, vindt de meeste APL taalactiviteit onder het werkende systeem van het Microsoft Windows, met wat onder activiteit plaats Linux, Unix, en MAC OS. Betrekkelijk weinig APL activiteit vindt vandaag op centrale verwerkingseenheidscomputers plaats.
APLNow (vroeger APL2000) biedt een gevorderde APL tolk aan wat onder Linux, Unix, en Vensters opereert. Het steunt de automatisering van Vensters, steunt vraag aan werkend systeem en gebruiker - bepaalde DLLs, heeft een geavanceerd APL Systeem van het Dossier, en vertegenwoordigt het huidige niveau van APL taalontwikkeling. APL2000 het product is een geavanceerde voortzetting van STSC'de lijn van het sproduct succesvolle APL*Plus/PC en APL*Plus/386.
Dyalog APL is een gevorderde APL tolk wat onder Linux, Unix, en Vensters opereert. Dyalog heeft agressieve uitbreidingen aan de APL taal die nieuw omvatten georiënteerd voorwerp - eigenschappen, talrijke taalverhogingen, plus verenigbaar namespace model die voor zowel zijn interface van de Automatisering van Microsoft wordt gebruikt, evenals inwoner namespaces. Voor het platform van Vensters, de aanbiedingen strakke integratie van Dyalog APL met Microsoft. Netto, plus beperkte integratie met het de ontwikkelingsplatform van de Studio van Microsoft Visuele.
IBM biedt een versie van IBM APL2 voor IBM AIX, Linux, Zon Solaris en de systemen van Vensters aan. Dit product is een voortzetting van APL2 die voor de centrale verwerkingseenheden van IBM wordt aangeboden. IBM APL2 was betwistbaar het invloedrijkste APL systeem, dat een stevige implementatienorm voor de volgende reeks uitbreidingen aan de taal verstrekte, die zich op genestelde series concentreert.
MicroAPL Beperkte aanbiedingen APLX, een volledig-gekenmerkte tolk met 64 bits voor Linux, Vensters, en Apple MAC OS systemen.
De Vennoten van Soliton biedt de tolk SAX (Scherpe APL voor Unix) voor Unix en systemen Linux aan, wat een verdere ontwikkeling van I. is. P. Scherp APL van scherpe Vennoten product. In tegenstelling tot de meeste andere APL tolken, Kenneth E. Iverson had wat invloed in de manier genestelde series werden uitgevoerd in Scherpe APL en SAX. Bijna volgden alle andere APL implementaties de cursus die door IBM met APL2 wordt geplaatst, dus verschillen sommige belangrijke details in Scherpe APL van andere implementaties.
APL de programma's zijn normaal geïnterpreteerdh en minder vaak gecompileerd. In werkelijkheid, de meeste APL compilers vertaald bron APL aan een lagere niveautaal zoals C, verlatend de machine-specifieke details aan de lagere niveaucompiler. De compilatie van APL programma's was een vaak besproken onderwerp in conferenties. Hoewel enkele nieuwere verhogingen aan de APL taal zoals genestelde series de taal meer en meer moeilijk hebben gemaakt te compileren, is het idee van APL compilatie nog in ontwikkeling vandaag.
In het verleden, APL werd de compilatie als middel beschouwd om uitvoeringssnelheid te bereiken vergelijkbaar met andere heersende stromingstalen, vooral op centrale verwerkingseenheidscomputers. Verscheidene APL compilers bereikten sommige niveaus van succes, hoewel betrekkelijk weinig van de ontwikkelingsinspanning besteed aan APL in de loop van de jaren naar het perfectioneren van compilatie in machinecode ging.
Zoals het geval wanneer het bewegen van APL programma's van één APL van de verkoper tolk aan een andere is, APL programma's onveranderlijk veranderingen in hun inhoud zal vereisen. Afhankelijk van de compiler, zouden de veranderlijke verklaringen kunnen worden vereist, zouden bepaalde taaleigenschappen moeten worden verwijderd of worden vermeden, of de APL programma's zouden moeten op één of andere manier worden schoongemaakt. Sommige eigenschappen van de taal, zoals voeren functie (een uitdrukkingsbeoordelaar) en divers uit bezinning en introspection de functies van APL, zoals de capaciteit om de tekst van een functie terug te keren of een nieuwe functie van tekst te materialiseren, zijn eenvoudig niet praktisch om in de compilatie van de machinecode uit te voeren.
Een commerciële compiler werd langs gebracht aan markt STSC in het midden van de jaren '80 als rand aan Van IBM het Product van het vsapl- Programma. In tegenstelling tot modernere APL compilers, veroorzaakte dit product machinecode die slechts in het tolkenmilieu zou uitvoeren, was het niet mogelijk om de tolkencomponent te elimineren. De compiler kon vele scalaire en vectorverrichtingen aan machinecode compileren, maar het zou op de APL diensten van de tolk vertrouwen om wat meer geavanceerde functies uit te oefenen, eerder dan proberen om hen te compileren. Nochtans, kwamen dramatische speedups, vooral voor zwaar herhaalde APL code voor.
Rond de zelfde tijd, het boek Een APL Compiler door Timoteegras Budd verschenen in druk. Dit boek detailleerde de binnen geschreven bouw van een APL vertaler, C, wat bepaalde optimalisering zoals uitvoerde lijn fusie specifiek voor de behoeften van een serietaal. De brontaal was aPL-als in die zin dat een paar regels van de APL taal of werden veranderd werden ontspannen om efficiëntere compilatie toe te laten. De vertaler zou de code uitzenden van C die dan wordt gecompileerd en goed buiten de APL werkruimte loopt.
Vandaag, is de uitvoeringssnelheid minder kritiek en vele populaire talen zijn het uitgevoerde gebruiken virtuele machines - instructies die bij runtime worden geïnterpreteerd. Burroughs/Unisys APLB de tolk (1982) was de eerste om dynamische stijgende compilatie te gebruiken om code voor een aPL-Specifieke virtuele machine te veroorzaken. Het recompiled tijdens de vlucht als herkenningstekens veranderd hun functionele betekenissen. Naast het verwijderen het ontleden en wat fout het controleren van de belangrijkste uitvoeringsweg, dergelijke compilatie stroomlijnt ook de herhaalde ingang en de uitgang van user-defined functionele operands. Dit vermijdt de stapelopstelling en opbrengst-verslaat voor functievraag die door APL ingebouwde exploitanten zoals Reduce en elk wordt gemaakt.
TOP, is een onderzoekAPL compiler, beschikbaar bij het Eiland Research Inc. van de Slang De TOP compileert vlakke APL (een ondergroep van ISO N8485) in ZAK, onder loopt een functionele serietaal met parallelle semantiek, en momenteel Linux. Top-geproduceerd codegebruik lijn fusie en seriesamentrekking, speciaal-gevalalgoritmen niet over het algemeen beschikbaar aan tolken (b.v., verbetering van permutatievector), om een niveau van prestaties te bereiken vergelijkbaar met dat van Fortran.
APLNext VisualAPL het systeem is een vertrek van een conventioneel APL systeem in zoverre dat VisualAPL waar is. Netto taal die met andere volledig interoperabel is . Microsoft. Netto talen zoals VB.Net en C#. VisualAPL is inherent georiënteerd en op unicode-Gebaseerd voorwerp -. Terwijl VisualAPL de meeste eigenschappen van erfenisAPL implementaties opneemt, breidt de taal VisualAPL erfenis APL uit om te zijn. Netto-volgzaam. VisualAPL wordt ontvangen in standaardwinde van de Studio van Microsoft Visuele en als dusdanig, haalt compilatie op een manier identiek aan dat van andere aan. Netto talen. Door te produceren. De netto gemeenschappelijke taalruntime (CLR) code, het gebruikt de just-in-timecompiler van Microsoft (JIT) om hardware met 32 bits of met 64 bits te steunen. De wezenlijke prestaties snelheid-UPS over erfenis APL zijn gemeld, vooral wanneer (het facultatieve) sterke typen van functieargumenten wordt gebruikt.
APL aan C# de vertaler is beschikbaar bij de Grafische Systemen van de Verhoogde weg. Dit product werd ontworpen om de APL code toe te staan, die aan gelijkwaardige C# wordt vertaald, om volledig buiten het APL milieu te lopen. De compiler van de Verhoogde weg vereist een run-time bibliotheek van seriefuncties. Wat dramatische speedup, soms, is zichtbaar, maar gebeurt wegens de optimalisering inherent aan Microsoft . Netto kader.
APL maakt een duidelijk onderscheid tussen functies en exploitanten. De functies nemen waarden (variabelen of constanten of uitdrukkingen) als argumenten, en terugkeerwaarden zoals resultaten. Exploitanten (aka hoog-orde functies) neem functies als argumenten, en keer verwante, afgeleide functies terug zoals resultaten. Bijvoorbeeld wordt de „som“ functie afgeleid door de „verminderings“ exploitant op de „toevoegings“ functie toe te passen. Het toepassen van de zelfde verminderingsexploitant op de „plafond“ functie (die groter van twee waarden) terugkeert leidt tot een afgeleide „maximum“ functie, die grootst van een groep (vector) waarden terugkeert. In de taal van J, substitueerde Iverson de termen „werkwoord“ en „bijwoord“ voor „functie“ en „exploitant“.
APL identificeert ook die eigenschappen die in de taal worden gebouwd, en die door een symbool, of een vaste combinatie symbolen worden vertegenwoordigd, zoals primitieven. De meeste primitieven zijn of functies of exploitanten. De codage APL is grotendeels een proces om nietprimitieve functies en (in sommige versies van APL) exploitanten te schrijven. Nochtans worden een paar primitieven beschouwd als om noch functies noch exploitanten, merkbaarst taak.
APL is altijd gekritiseerd voor zijn keus van een uniek, niet genormaliseerd karakter - reeks. De observatie dat wat wie het gewoonlijk leren vurige aanhangers worden toont aan dat er erachter wat gewicht is Iverson'sidee dat de gebruikte aantekening een verschil maakt. In het begin, waren er weinig eindapparaten die het APL karakter - reeks konden reproduceren - het populairste degenen tewerkstellen IBM Selectric druk mechanisme samen met een speciaal APL type element. In tijd, met het universele gebruik van grafische vertoning en drukapparaten de van uitstekende kwaliteit, is het APL karakterfont probleem grotendeels geëlimineerdo; nochtans, vereist het probleem om APL karakters in te gaan het gebruik van de redacteurs van de inputmethode of speciale toetsenbordafbeeldingen, die beginners kunnen frustreren gebruikelijk aan andere talen. Met de popularisering van Unicode de norm, die het APL karakter bevat - plaatste, schijnt het probleem om vereiste fonts te verkrijgen in evenwicht gehouden om weg te gaan.
Van het standpunt van een gebruiker, kunnen de extra karakters APL een speciale elegantie en concision niet geven mogelijk in andere talen, gebruikend symbolen visueel mnemonic van de functies die zij hebben vertegenwoordigd. Of het kan tot een belachelijke graad van ingewikkeldheid en unreadability leiden, typisch wanneer de symbolen samen in één enkele massa zonder enige commentaren worden vastgebonden. Of het kan onredelijk moeilijk zijn en tijdrovend om dan binnen te gaan geef later die APL verklaringen uit.
Neem nota van mnemonics associërend een APL karakter met een brief: vraag teken op Q, macht op P, rho op R, basis waarde op B, codeer op N, modulus op M etc. Dit maakt het voor een Engelstalige spreker gemakkelijker om APL op een toetsenbord te typen niet-APL die men visueel heeft op het zijn scherm terugkoppelen verstrekt. Ook, zijn decals geproduceerd voor gehechtheid aan standaardtoetsenborden, of op de voorzijde van de sleutels of op de bovenkant van hen.
Een meer bijgewerkt toetsenborddiagram, toepasselijk voor APL2 en andere moderne implementaties, is beschikbaar: De lay-out van de Unie voor vensters.
Alle APL symbolen zijn binnen aanwezig Unicode (hoewel sommige APL producten dit) kunnen nog niet kenmerken:
| ' | ( | ) | + | , | - | . | / | : | ; | < | = | > | ? | [ | ] |
| \ | _ | ¨ | ¯ | × | ÷ | ← | ↑ | → | ↓ | ∆ | ∇ | ∘ | ∣ | ∧ | ∨ |
| ∩ | ∪ | ∼ | ≠ | ≤ | ≥ | ≬ | ⊂ | ⊃ | ⌈ | ⌊ | ⊤ | ⊥ | ⋆ | ⌶ | ⌷ |
| ⌸ | ⌹ | ⌺ | ⌻ | ⌼ | ⌽ | ⌾ | ⌿ | ⍀ | ⍁ | ⍂ | ⍃ | ⍄ | ⍅ | ⍆ | ⍇ |
| ⍈ | ⍉ | ⍊ | ⍋ | ⍌ | ⍍ | ⍎ | ⍏ | ⍐ | ⍑ | ⍒ | ⍓ | ⍔ | ⍕ | ⍖ | ⍗ |
| ⍘ | ⍙ | ⍚ | ⍛ | ⍜ | ⍝ | ⍞ | ⍟ | ⍠ | ⍡ | ⍢ | ⍣ | ⍤ | ⍥ | ⍦ | ⍧ |
| ⍨ | ⍩ | ⍪ | ⍫ | ⍬ | ⍭ | ⍮ | ⍯ | ⍰ | ⍱ | ⍲ | ⍳ | ⍴ | ⍵ | ⍶ | ⍷ |
| ⍸ | ⍹ | ⍺ | ⎕ | ○ |
De extra APL karakters waren langs beschikbaar het overstriking één karakter over een andere. Bijvoorbeeld, logboek het symbool werd gevormd door verschuiving overstrikingP met verschuivingO. Dit ingewikkelde het verbeteren fouten en het uitgeven programmalijnen. Dit kan uiteindelijk de reden voor vroege APL programma's geweest zijn om een bepaalde dichte stijl te hebben - zij waren moeilijk uit te geven.
Vele overstrikes die in de bovengenoemde lijst wordt getoond, hoewel het een beroep doen, worden niet echt gebruikt. Nieuwe overstrikes werden geïntroduceerdt door verkopers aangezien zij versies van APL veroorzaakten die aan specifieke hardware, systeemeigenschappen, dossiersysteem worden aangepast, etc. Verder, konden de drukterminals en de vroege APL kathodestraalterminals willekeurige overstrikes tonen, maar als personal computers snel vervangen terminals als opnemings van gegevensapparaat, APL werd de karaktersteun nu verleend als APL ROM van de Generator van het Karakter of een zacht karakter - reeks die door het vertoningsapparaat wordt teruggegeven. Met de komst van Vensters, APL werden de karakters gedefini�ërd als enkel een andere volledige font, dus het onderscheid tussen overstruckkarakters en standaardkarakters die hebben geëlimineerdd.
De recentere terminals van IBM, in het bijzonder IBM 3270 de vertonings posten, hadden een afwisselende toetsenbordregeling die de basis vandaag voor enkele moderne APL toetsenbordlay-outs in gebruik is. De betere terminals, namelijk vertoningsapparaten in plaats van printers, bevorderden de ontwikkeling van betere volledige het schermredacteurs, die een meetbare verbetering van productiviteit en programmaleesbaarheid had.
APL heeft lang een kleine en fervente basis van gebruikers gehad. Het was en nog is populair in financiële en verzekeringstoepassingen, in simulaties, en in wiskundige toepassingen, vaak waar een oplossing vaak verandert of waar in een standaard bovenmatige ingewikkeldheid van taalopbrengsten. APL is gebruikt in een grote verscheidenheid van contexten en voor velen en gevari�ërde doeleinden. Een bulletin titled „citaat-Quad“ gewijd aan APL is gepubliceerd sinds de jaren '70 bij Sigapl- sectie van de Vereniging voor de Machines van de Gegevensverwerking (het citaat-Quad is de naam van het APL karakter dat voor tekstinput en output wordt gebruikt).
Meestal wegens zijn tussenvoegsel aantekening en zijn nadruk op interactie met de computer, APL kan een ideaal milieu voor de snelle plaatsing van interactief zijn Aan het vakgebied verbonden Talen. Ondanks de aanwezigheid van niet genormaliseerde karakters in het APL karakter - plaats, is het mogelijk voor een gebruiker van een aan het vakgebied verbonden taal die in APL wordt uitgevoerd eenvoudige programma's (of manuscripten die) te schrijven alleen uit woorden, aantallen, en vertrouwde punctuatie bestaan. Tot zo laat zoals de medio-jaren '80, APL time-sharing verkopers aangeboden toepassingen die in de vorm van aan het vakgebied verbonden talen worden geleverd. Op I. P. Scherp time-sharing systeem, een geroepen werkruimte 39 MAGISCH aangeboden toegang tot financiële en luchtvaartlijngegevens plus het verfijnde (voor de tijd) grafisch voorstellen en rapportering, in de vorm van een aan het vakgebied verbonden taal. Een ander voorbeeld is de werkruimte GRAPHPAK die van APL2 van IBM wordt voorzien; een demonstratieversie van zowel APL2 als GRAPHPAK kan voor Vensters worden gedownload.
APL is ook gebruikt in talrijk het metaprogramming toepassingen. Gezien externe gegevens die, APL programma's van tijd tot tijd vari�ërden werden gebruikt om gedeelten of volledige secties van code samen te stellen die in andere talen zoals Fortran, COBOL, of Java worden geschreven. Één toepassing gebruikte APL om de code van Fortran van een wezenlijk lineair programmeringsmodel te produceren. Als dusdanig, werd de code van Fortran verondersteld om te groot te zijn zich comfortabel om door een enige of kleine groep individuen te begrijpen. Nochtans, met deze benadering, stelde het routineonderhoud geen barrière. De gelijkaardige benaderingen werden gebruikt waar de consolidatielijsten die buiten APL worden gehandhaafd onmiddellijk in de aanzienlijke programma's van COBOL zouden kunnen worden omgezet die de noodzakelijke consolidatieberekeningen uitvoerden. Een vervelende stap die eerder verscheidene man-dagen vereiste werd, namelijk wijzigingen aan een lang programma van COBOL, praktisch overbodig gemaakt. De gelijkaardige dingen zijn gedaan die uiteindelijk de code van Java uitzonden.
De rente in APL is regelmatig sinds de jaren '80 gedaald. Dit was gedeeltelijk toe te schrijven aan het gebrek aan een migratieweg van performant centrale verwerkingseenheidsimplementaties aan vroege goedkope personal computeralternatieven en de beschikbaarheid van hoog-productiviteitseindgebruiker gegevensverwerkingshulpmiddelen zoals Microsoft Excel en Microsoft Access. Dit zijn aangewezen platforms voor wat centrale verwerkingseenheidsAPL toepassingen in de jaren '70 en de jaren '80 kan geweest zijn. Sommige APL gebruikers migreerden aan J programmeertaal, wat geavanceerdere eigenschappen aanbiedt. Ten slotte, was de daling ook gepast voor een deel aan de groei van MATLAB, De Octaaf van GNU, en Scilab. Deze wetenschappelijke gegevensverwerking serie-georiënteerde platforms verstrekken meer een interactieve gegevensverwerkingservaring gelijkend op APL, maar lijken op conventionele programmeertalen zoals Fortran, en gebruiks standaardASCII.
Niettegenstaande deze daling, vindt APL voortdurend gebruik op bepaalde gebieden, zoals boekhoudingsonderzoek (PhD van de Boekhouding van Stanford vereisten)
APL is gestandaardiseerd door ANSI werkgroep X3J10 en ISO/CEI Paritair Technisch Comité 1 Subcomité 22 Werkgroep 3. De APL van de Kern taal wordt gespecificeerd in ISO 8485:1989, en de Uitgebreide APL taal wordt gespecificeerd in ISO/IEC 13751:2001.
|
Custom Search
|
© Copyright 2011 WorldLingo. Alle rechten voorbehouden.