News: |
| APL | |
|---|---|
| Paradigma | Reihe, funktionell, strukturiert, modular |
| Innen erschienen | 1964 |
| Vorbei entworfen | Kenneth E. Iverson |
| Entwickler | Kenneth E. Iverson |
| Schreibendisziplin | dynamisch |
| Hauptimplementierungen | IBM APL2, Dyalog APL, APL2000, scharfer APL |
| Dialekte | A+, Dyalog APL, APLNext |
| Vorbei beeinflußt | mathematische Darstellung |
| Beeinflußt | J, K, Nial |
APL (A PRogramming Language) ist Reihe Programmierung Sprache basiert auf einer Darstellung vorbei erfunden 1957 Kenneth E. Iverson während an Universität Harvard. Es entstand als Versuch, gleichbleibende Darstellung für den Unterricht und die Analyse der Themen zur Verfügung zu stellen, die auf der Anwendung der Computer bezogen wurden. Iverson veröffentlichte seine Darstellung 1962 in einem betitelten Buch Eine Programmiersprache. Bis zum 1965 wurde eine Teilmenge der Darstellung als Programmiersprache eingeführt, dann bekannt als IVSYS. Später vor seiner kommerziellen Freigabe, erhielt APL seinen Namen vom Titel dem Buch. Iverson empfing Turing Preis 1979 für seine Arbeit.
Darstellung Iversons wurde später benutzt, um zu beschreiben IBM System/360 bearbeiten Sie Architektur, eine Beschreibung viel kürzer und genau als die vorhandenen Unterlagen und das Aufdecken einiger vorher unbemerkter Probleme. Später a Selectric typeball war besonders entworfen, um eine lineare Darstellung dieser Darstellung zu schreiben. Dieser unterscheidende Aspekt von APL, der Gebrauch eines speziellen Zeichensatzes, der sichtlich die durchgeführt zu werden Betriebe bildlich darstellt, bleibt heute grundlegend unverändert.
Die APL Spracheneigenschaften ein reicher Satz Betriebe, die auf gesamtem arbeiten Reihen von den Daten wie dem vektorbefehlsatz von a SIMD Architektur. Während viele Computersprachen erfordern würden Wiederholung z.B. fügen Sie zwei zusammen Reihen, Funktionen APL gewöhnlich im Abkommen mit gesamten Reihen sofort hinzu. In Verbindung mit einem speziellen Zeichensatz, in dem glyphs die durchgeführt zu werden darstellen Betriebe, verringert dieses drastisch die mögliche Zahl Schleifen und läßt kleineres, kürzere und kompaktere Programme zu.
Wie mit allen Programmiersprachen, die einige Dekaden des kontinuierlichen Gebrauches gehabt haben, hat APL erheblich, im Allgemeinen in einer aufwärts-kompatiblen Weise, von seinen früheren Freigaben entwickelt. APL ist normalerweise interpretierend und wechselwirkendund kennzeichnet normalerweise lesen-auswerten-drucken Schleife (REPL) für Befehl und Ausdruck Eingang. Heute fast alle moderne Implementierungen Unterstützung strukturierte Programmierung während einige Dialekte jetzt irgendeine Form von kennzeichnen objektorientiert programmierenkonstruieren.
Inhalt |
Die erste Inkarnation von was später war, die APL Programmiersprache zu sein, war ein Buch, das eine Darstellung beschreibt, die vorbei 1957 erfunden wurde Kenneth E. Iverson während an Universität Harvard. Veröffentlicht 1962, war die Darstellung, die im Buch beschrieben wurde, erkennbar dennoch von APL entfernt.
IBM war für die Einleitung von APL zum Markt hauptsächlich verantwortlich. 1965 wurde ein Teil der Darstellung überarbeitet und einführte als Programmiersprache. APL war zuerst 1967 für vorhanden IBM 1130 wie APL \ 1130[1]. APL gewann seine Stellung auf Mainframetime-sharingsystemen von den späten sechziger Jahren durch die achtziger Jahre. Später als, Kleinteile passend war durchzuführen schließlich vorhandenes Beginnen im frühen zur Mitte der 80iger Jahre, viele Benutzer abwanderte ihre Anwendungen zum PCKlima.
Frühe IBM APL Interpreten für IBM 360 und IBM 370 durch Hardwareablauf realisiert ihr eigenes Multibenutzermanagement, anstatt, auf die Wirt Dienstleistungen zu bauen, so, waren sie Time-Sharingsysteme in ihrem eigenen Recht. Zuerst eingeführt 1966, APL \ 360 System war ein Multibenutzerinterpret. 1973 gab IBM frei APL.SV welches eine Fortsetzung des gleichen Produktes, aber waren, das anbot geteilte Variablen als ordnet Mittel, Service außerhalb des APL Systems, wie Betriebssystem zugänglich zu machen ein. In der Mitte der 70-iger Jahre wurde der IBM Mainframeinterpret sogar für Gebrauch auf angepaßt IBM 5100 Tischrechner, der eine kleine CRT und eine APL Tastatur hatte, als die meisten anderen Kleincomputer der Zeit nur BASIC anboten. In den achtziger Jahren VSAPL Programmprodukt genoß weitverbreiteten Verbrauch mit CMS, TSO, VSPCund CICS Benutzer.
Einige Time-Sharingunternehmen entstanden in die sechziger Jahre und in die siebziger Jahre, die APL Dienstleistungen mit geänderten Versionen des IBM Interpretens APL \ 360 verkauften. In Nordamerika gut-gewußten waren I. P. Scharf-Teilnehmer, Scientific Timesharing Corporationund die Computer-Firma (TCC). Mit dem Aufkommen zuerst der weniger kostspieligen Mainframes wie des IBMS 4331 und späteres PC hatte, die Time-Sharingindustrie alle als verschwunden bis zum der Mitte der 80iger Jahre.
Scharfer APL war von vorhanden I. P. Scharf-Teilnehmer, zuerst auf einer Time-Sharinggrundlage in den sechziger Jahren und später als Programmprodukt, das herum 1979 beginnt. Scharfer APL war eine vorgerückte APL Implementierung mit vielen Sprachenverlängerungen, wie Pakete (die Fähigkeit, eine oder mehrer Gegenstände in eine einzelne Variable zu setzen), nistete Dateisystem, Reihen und geteilte Variablen.
APL Interpreten waren von anderem Mainframe vorhanden und Minirechner stellt außerdem, vornehmlich her Burroughs, CDC, Daten - General, Dez, Harris, Hewlett-Packard, Siemens, Xeroxund andere.
In den frühen achtziger Jahren, IBM APL Entwicklung, unter der Führung von Dr beginnen Jim Braun, eingeführt einer neuen Version der APL Sprache, dessen als seine Primärverbesserung Konzept enthielt genistete Reihen wo eine Reihe andere Reihen enthalten kann, plus neue Spracheneigenschaften, die die Integration der genisteten Reihen in Programm Workflow erleichterten. Ken Iverson, nicht mehr in der Steuerung der Entwicklung der APL Sprache, linkes IBM und verbunden I. P. Scharf-Teilnehmer wo er unter anderem die Entwicklung scharfen APL verwies, um mehr entsprechend seinem Anblick zu sein. Iverson entwickelte später J Sprache.
Da andere Verkäufer bemüht waren sich zu entwickeln APL Interpreten für neue Kleinteile, vornehmlich Unix- gegründet Mikrocomputer, War APL2 fast immer der Standard, der für neue APL Interpretentwicklungen gewählt wurde. Sogar heute, zitieren die meisten APL Verkäufer Kompatibilität APL2, die sich nur 100% nähert, als verkaufender Punkt für ihre Produkte.
APL2 für IBM ist Zentralrechner noch vorhandener heutiger Tag, und war zuerst für vorhanden CMS und TSO herum 1980. Die Ausgabe der Workstation APL2 (Windows, OS/2, AIX, Linux und Solaris) folgte viel später in die frühen neunziger Jahre.
Die erste Mikrocomputerimplementierung von APL war auf dem MCM/70, 8008- gegründeter Prozessor, 1973. A Kleiner APL für Intel wurde 8080 benanntes EMPL 1977 und Softronics APL, mit die meisten Funktionen vollen APL freigegeben, denn 8080 gegründete CP/M Systeme wurden 1979 freigegeben.
1977 wurde ein Geschäft Niveau freigegeben APL, das als TIS APL bekannt ist, basiert auf dem Prozessor Z80. Es kennzeichnete den vollen Satz der Akte Funktionen für APL, plus einen vollen eingegebenen Schirm und Schaltung der rechten und linken Argumente für die meisten Doppeloperatoren durch das Vorstellen von ~. Präfix zu allen einzelner Buchstabe Doppelfunktionen wie - oder zu/.
Avantgarde APL war für vorhanden Z80 CP/M- gegründete Prozessoren Ende der siebziger Jahre. TCC gab APL.68000 in den frühen achtziger Jahren für Motorola frei 68000- gegründete Prozessoren, dieses System, das die Grundlage für MicroAPL begrenztes APLX Produkt ist. I. P. Scharf-Teilnehmer gaben eine Version ihres APL Interpretens für den IBM PC und das PC/370 - für den IBM PC frei, Nacheiferer wurde geschrieben, das reusing viel des IBM 370 Mainframecodes erleichterte. Diskutierbar war der bekannteste APL Interpret für IBM PC STSC's APL*Plus/PC.
In den frühen achtziger Jahren Analogic Corporation entwickelt Die APL Maschine, das war Matrixverarbeitung Computer entwarf, nur in APL programmiert zu werden. Es gab wirklich drei Verarbeitung Maßeinheiten, die Workstation des Benutzers, IBM PC, wo Programme eingetragen und redigiert wurden, Motorola 6800 Prozessor, der den APL Interpret laufen ließ und der Analogic Vektorenrechner, der die Primitiven durchführte. Zu der Zeit seiner Einleitung war die APL Maschine das schnellste vorhandene APL System wahrscheinlich. Obgleich ein technologischer Erfolg, die APL Maschine ein Marketing-Ausfall war. Die Ausgangsversion stützte einen einzelnen Prozeß hintereinander. Zu der Zeit als das Projekt eingestellt wurde, war das Design durchgeführt worden, um mehrere Benutzer zu erlauben. Als Nebenwirkung war ein ungewöhnlicher Aspekt der APL Maschine, daß der Bibliothek der Arbeitsbereiche so organisiert wurde, daß eine einzelne Funktion oder eine Variable, die durch viele Arbeitsbereiche geteilt wurden, nur einmal in der Bibliothek bestanden. Mehrere der Mitglieder des APL Maschine Projektes hatten vorher eine Anzahl von Jahren mit Burroughs dem Einführen aufgewendet APL \ 700.
Bei einem Stadium, Microsoft Corporation plante, eine Version von APL, aber diese nie verwirklichten Pläne freizugeben.
Eine frühe Publikation 1978 von Rodnay Zaks von Sybex war Eine mikroprogrammierte APL Implementierung ISBN 0895880059 welches die komplette, Gesamtquelauflistung für den Mikrobefehl für ein PDP/der Prozessor LSI-11, der APL einführt ist. Diese kann die Substanz seiner PhD These gewesen sein.
Über einem sehr breiten Satz Problemgebieten (Mathe, Wissenschaft, Technik, Computerdesign, Automatismus, Datensichtbarmachung, Versicherungsmathematik, traditionelles DP, etc.) ist APL ein extrem leistungsfähiges, ausdrucksvoll und kurze Programmiersprache, stellte gewöhnlich in ein wechselwirkendes Klima ein. Es wurde ursprünglich unter anderem als Weise, Computer zu beschreiben verursacht, indem man ausdrückte mathematische Darstellung in einer rigorosen Weise, die durch einen Computer gedeutet werden könnte. Zu erlernen ist einfach, aber einige APL Programme können einige Zeit dauern, besonders für einen Neuling zu verstehen. Wenige andere Programmiersprachen bieten die komplette Reihe Funktionalität von APL an.
Anders als traditionsgemäß strukturierte programmierensprach- sprachen wird Code in APL gewöhnlich als Ketten von strukturiert monadisch oder dyadisch Funktionen und Operatoren an fungieren Reihen. Da APL nichtstandardisierte viele hat Primitive (Funktionen und Operatoren, angezeigt durch ein einzelnes Symbol oder eine Kombination einiger Symbole), hat sie nicht Funktion oder Operatorenrangfolge. Frühe APL Implementierungen hatten nicht steuern Sie Strukturen (tun Sie oder während die Schleifen, wenn-dann-sonst), aber durch das Verwenden von Reihe Betrieben, Verbrauch von strukturierte Programmierung Konstruieren war gerechtes nicht notwendiges. Z.B., kann die Iota Funktion (die eine eindimensionale Reihe erbringt oder Vektor, von 1 zu N) Fürschleife ersetzen Wiederholung. Neuere Implementierungen von APL schließen im Allgemeinen komplette Steuerstrukturen ein, so kann Datenstruktur- und Programmsteuerfluß offenbar sein und trennte sauber sich.
Das APL Klima wird a genannt Arbeitsbereich. In einem Arbeitsbereich kann der Benutzer Programme und Daten definieren, d.h. die Datenwerte bestehen auch außerhalb der Programme, und der Benutzer kann die Daten ohne die Notwendigkeit manipulieren, um ein Programm zu definieren. Z.B.,
weist zu Vektor Werte 4 5 6 7 zu N;
fügt 4 allen Werten (8 9 10 11 gebend) hinzu und druckt sie (ein Rückholwert zugewiesen nicht am Ende einer Aussage einer Variable mit dem Anweisung Pfeil wird vom APL Interpreten angezeigt);
druckt die Summe von N, d.h. 22.
Der Benutzer kann den Arbeitsbereich mit allen Werten, Programmen und Durchführung Status speichern.
APL ist für seinen Gebrauch von einem Satz von nicht weithin bekanntASCII Symbole, die eine Verlängerung der traditionellen Arithmetik und algebraische Darstellung sind. Einzelne Buchstabe Namen für haben SIMD vektorfunktionen ist- Einweg, daß APL kompakter Formulierung der Algorithmen für Datenumwandlung wie Rechnen ermöglicht Spiel Conways des Lebens in einer Linie Code (Beispiel). In fast allen Versionen von APL, ist es theoretisch möglich, jede rekursive Funktion in einem Ausdruck, das heißt, in einer Linie Code auszudrücken.
Wegen seiner verkürzten Natur und Nicht-Standard-Buchstaben ist APL manchmal benannt worden „Write-onlysprache„und Messwert, die ein APL Programm wie die Decodierung anfangs glauben kann Ägyptische Hieroglyphen. Wegen des ungewöhnlichen Zeichensatz, Gebrauch vieler Programmierer speziell Tastaturen mit APL keytops für das Schreiben des APL Codes. Obgleich es verschiedene Weisen gibt, APL Code mit nur ASCII Buchstaben zu schreiben[2]in der Praxis wird es fast nie getan. (Dieses kann gedacht werden, um Thesen Iversons ungefähr zu stützen Darstellung als Werkzeug des Gedankens[Zitieren benötigt].) Die meisten, wenn nicht alle modernen Implementierungen Standardtastaturaufbau benutzen, mit speziellen Kartenaufnahmen oder Eingang Methode Herausgeber Zugang NichtASCII zu den Buchstaben. Historisch ist der APL Schriftkegel, mit Buchstaben des Versalienitalic und aufrechte Ziffern und Symbole unterscheidend gewesen. Die meisten Verkäufer fahren fort, den APL Zeichensatz in einem kundenspezifischen Schriftkegel anzuzeigen.
Fürsprecher von APL behaupten, daß die Beispiele des sogenannten Write-onlycodes fast unveränderlich Beispiele der schlechten programmierenpraxis- oder Anfängerfehler sind, die in jeder möglicher Sprache auftreten können. Fürsprecher von APL behaupten auch, daß sie mit APL als mit herkömmlicheren Computersprachen weites produktiveres sind und daß das Arbeits Software in weniger Zeit und mit weit wenigen Programmierern als mit anderer Technologie weit eingeführt werden kann. APL läßt eine Einzelperson härtere Probleme schneller lösen. Auch seiend kompakt und kurz, verleiht sich APL gut zur Software-Entwicklung der größeren Skala, während die Kompliziertheit, die aus vielen Linien des Codes entsteht, drastisch verringert werden kann. Viele APL Fürsprecher und Praktiker sehen die Programmierung in den Standardprogrammiersprachen, wie an COBOL und Java, wie verhältnismässig langwierig. APL wird häufig, wo Zeit-zumarkt wichtig ist, wie mit handelnde Systeme gefunden.
Iverson entwarf später J Programmiersprache welches verwendet ASCII mit Digraphe anstelle von den Sonderzeichen.
Ein sehr einfaches Beispiel, das ruhig erfordern würde, einige Linien des Codes in meisten nicht-kleiden Programmiersprachen ist ein Generator der gelegentlichen Zahl der Lotterie der Auswahl 6 (von 1-40), durchführt mit dem Garantieren keiner wiederholten Zahlen und dem Sortieren der Resultate in aufsteigender Sequenz:
↑6? 40
Der folgende Ausdruck Art eine Wortliste gespeichert in Matrix X entsprechend Wortlänge:
X [⍋X+.≠ ';]
Die folgende Funktion „das Leben“, geschrieben in Dyalog APL, nimmt eine Boolesche Matrix und errechnet das neue Erzeugung entsprechend Spiel Conways des Lebens:
Im folgenden Beispiel auch Dyalog, die erste Linie weist irgendeinen HTML Code einem variablen „txt“ zu und verwendet dann einen APL Ausdruck, um alle HTML Umbauten zu entfernen und bringt den Text nur wie in der letzten Linie gezeigt zurück.
Der folgende Ausdruck findet alle Hauptzahlen von 1 zu R (einen Indexursprung von 1 voraussetzend). in der Zeit und im Raum ist die Berechnung O (R ²).
(∼R∈R°.×R) /R←1↓ιR
Von rechts nach links bedeutet dieses:
APL war in der Geschwindigkeit einzigartig, mit der es komplizierte Matrixbetriebe durchführen könnte. Z.B. würde eine sehr große Matrixvermehrung nur einige Sekunden auf einer Maschine dauern, die viel weniger leistungsfähig als die heute war. Es gab technische und ökonomische Gründe für diesen Vorteil:
Ein weit zitiertes Papier „eine APL Maschine“ (geschrieben von Phil Abrams) verewigte den Mythus, deren APL durchdringenden Gebrauch machte faule Auswertung wo Berechnungen nicht wirklich durchgeführt würden, bis die Resultate erforderlich waren und dann nur jene Berechnungen erforderten ausschließlich. Eine offensichtliche (und einfach einzuführen) faule Auswertung ist J-Vektor : wenn ein monadisches Iota wird im Code, IS-IS angetroffen, das als a gehalten wird Darstellung anstelle von, sofort errechnet zu werden, einige Zeit sowie Gedächtnis so speichernd.
Obgleich diese Technik nicht generalisiert wurde, stellt sie die beste Einheit überleben der Sprache dar: Spezifizieren nicht des Auftrages von Skalarbetrieben. Selbst als schließlich standardisiert durch X3J10, ist APL so in hohem Grade Daten-parallel, gibt es Sprachenimplementors unermeßliche Freiheit zu den Zeitplanbetrieben so leistungsfähig, wie möglich. Als Computerinnovationen wie Cachespeicherund SIMD Durchführung wurde, die APL Programme handelsüblich, die mit wenigen Extrabemühung ausgegebenen Re-optimierenden niedrigen Details getragen wurden.
Heute findet die meiste APL Sprachentätigkeit unter dem Betriebssystem des Microsoft Windows, mit etwas Tätigkeit darunter statt Linux, Unixund Mac OS. Verhältnismässig wenig APL Tätigkeit findet heute auf Zentralrechnern statt.
APLNow (früher APL2000) bietet einen vorgerückten APL Interpret an, der unter Linux, Unix und Windows funktioniert. Es stützt Windows Automatisierung, benennt Unterstützungen zu Betriebssystem und zu verbraucherbestimmtem DLLs, hat ein vorgerücktes APL Dateisystem und stellt das gegenwärtige Niveau der APL Sprachenentwicklung dar. APL2000 Produkt ist eine vorgerückte Fortsetzung von STSC's erfolgreiches APL*Plus/PC und APL*Plus/386 Produktserie.
Dyalog APL ist ein vorgerückter APL Interpret, der unter Linux, Unix und Windows funktioniert. Dyalog hat konkurrenzfähige Verlängerungen zur APL Sprache, die neues miteinschließen objektorientiert Eigenschaften, zahlreiche Sprachenverbesserungen, plus ein gleichbleibendes namespace Modell benutzt für beide seine Microsoft Automatisierung Schnittstelle, sowie gebürtige namespaces. Für die Windows Plattform bietet Dyalog APL feste Integration mit Microsoft an. Netz, plus begrenzte Integration mit der Microsoft Sichtstudio-Entwicklung Plattform.
IBM bietet eine Version von IBM APL2 für IBM AIX, Linux, der Sonne Solaris und Windows Systeme an. Dieses Produkt ist eine Fortsetzung von APL2, das für IBM Mainframes angeboten wird. IBM APL2 war diskutierbar das einflußreichste APL System, das einen festen Implementierung Standard für den folgenden Satz von Verlängerungen zur Sprache zur Verfügung stellte und konzentrierte auf genistete Reihen.
MicroAPL begrenzte Angebote APLX, ein Vollfunktionsinterpret mit 64 Bits für Linux, Windowsund Apple Mac OS Systeme.
Soliton verbindet Angebote der SAX Interpret (scharfer APL für Unix) für Unix- und Linuxsysteme, der eine weitere Entwicklung von I. ist. P. Scharfes Produkt APL der Scharf-Teilnehmer. Anders als die meisten anderen APL Interpreten, Kenneth E. Iverson hatte etwas Einfluß in den Weise genisteten Reihen wurden eingeführt in scharfem APL und in SAX. Fast alle weiteren APL Implementierungen folgten dem Kurs, der von IBM mit APL2 eingestellt wurde, so unterscheiden sich einige wichtige Details in scharfem APL von anderen Implementierungen.
APL Programme sind normalerweise gedeutet und kleiner häufig kompiliert. In der Wirklichkeit die meisten APL Compiler übersetzt Quelle APL zu einer auf der unteren Ebenesprache wie C, den machine-specific Details den auf der unteren Ebenecompiler überlassend. Kompilation der APL Programme war ein häufig besprochenes Thema in den Konferenzen. Obgleich einige der neueren Verbesserungen zur APL Sprache wie genisteten Reihen die Sprache in zunehmendem Maße schwierig zu kompilieren gemacht haben, ist die Idee der APL Kompilation noch unter Entwicklung heute.
In der Vergangenheit wurde APL Kompilation als Mittel, die Durchführung Geschwindigkeit zu erzielen angesehen, die mit anderen Hauptströmungssprachen, besonders auf Zentralrechnern vergleichbar ist. Einige APL Compiler erzielten einige Niveaus des Erfolges, zwar verhältnismässig wenig der Entwicklung Bemühung, die auf APL über den Jahren aufgewendet wurde, einstiegen zum Vervollkommnen der Kompilation in Maschine Code.
Wie der Fall, wenn er APL Programme von einem Interpreten APL des Verkäufers auf andere verschiebt, APL Programme unveränderlich erfordert änderungen an ihrem Inhalt. Abhängig von dem Compiler konnten variable Erklärungen erforderlich sein, würden bestimmte Spracheneigenschaften entfernt werden oder vermieden werden müssen, oder die APL Programme würden herauf auf gewisse Weise gesäubert werden müssen. Einige Eigenschaften der Sprache, wie die Durchführung Funktion (ein Ausdruck Experte) und das verschiedene Reflexion und Selbstbeobachtung Funktionen von APL, wie der Fähigkeit, den Text einer Funktion zurückzubringen oder eine neue Funktion vom Text zu verwirklichen, sind einfach nicht praktisch, bei der Maschine Codekompilation einzuführen.
Ein kommerzieller Compiler wurde zum Markt vorbei geholt STSC in der Mitte der 80iger Jahre als Zusatz zum Programm-Produkt VSAPL IBMs. Anders als modernere APL Compiler produzierte dieses Produkt Maschine Code, der nur im Interpretklima durchführen würde, es war nicht möglich, um den Interpretbestandteil zu beseitigen. Der Compiler könnte viele Skalar kompilieren und vector Betriebe zum Maschine Code, aber er würde auf den Dienstleistungen des APL Interpretens beruhen, um mehr erweiterte Funktionen durchzuführen, anstatt versucht, sie zu kompilieren. Jedoch traten drastische speedups, besonders für schwer wiederholenden APL Code auf.
Um die gleiche Zeit das Buch Ein APL Compiler durch Timotheegras Budd erschienen im Druck. Dieses Buch schilderte den Aufbau eines APL übersetzers genau, innen geschrieben C, das bestimmte Optimierungen wie durchführte Schleife Schmelzverfahren Besondere zu den Notwendigkeiten einer Reihe Sprache. Die Ausgangssprache war APL-wie dadurch, daß einige Richtlinien der APL Sprache geändert wurden oder sich entspannten, um leistungsfähigere Kompilation zu ermöglichen. Der übersetzer würde C Code ausstrahlen, der dann und wohle Außenseite des Durchlaufes des APL Arbeitsbereichs kompiliert werden.
Heute ist Durchführung Geschwindigkeit weniger kritisch und viele populäre Sprachen sind eingeführtes Verwenden virtuelle Maschinen - Anweisungen, die an der Laufzeit gedeutet werden. Das Burroughs/das Unisys APLB Interpret (1982) war der erste, zum der dynamischen zusätzlichen Kompilation zu benutzen, um Code für eine APL-spezifische virtuelle Maschine zu produzieren. Es recompiled schnell, während Bezeichner ihre Funktionsbedeutungen änderten. Zusätzlich zum Entfernen Satzgliederung und etwas Fehlerprüfung vom Hauptdurchführung Weg, solche Kompilation glättet auch die wiederholte Eintragung und den Ausgang der verbraucherbestimmten Funktionsrechengrößen. Dieses vermeidet die Stapeleinstellung und Take-down für die Funktion Anrufe, die von eingebauten Operatoren APLS wie gebildet werden, verringern sich und jedes.
SPITZE, ist ein Forschung APL Compiler, von der Schlange-Insel Research Inc. vorhanden SPITZE kompiliert flachen APL (eine Teilmenge ISO N8485) in BEUTEL, läuft eine Funktionsreihe Sprache mit paralleler Semantik und z.Z. darunter Linux. Spitze-erzeugter Codegebrauch Schleife Schmelzverfahren und Reihe Kontraktion, Speziellschachtel Algorithmen nicht im Allgemeinen vorhanden für Interpreten (z.B., Aufsteigen des Permutation Vektors), ein Niveau der Leistung erzielen vergleichbar mit dem von Fortran.
Das APLNext VisualAPL System ist eine Abfahrt von einem herkömmlichen APL System dadurch, daß VisualAPL ein zutreffendes ist. Nettosprache, die mit anderer völlig Zwischen-funktionell ist . Microsoft. Netz Sprachen wie VB.Net und C#. VisualAPL ist in sich selbst objektorientiert und Unicode-gegründet. Während VisualAPL die meisten Eigenschaften der Vermächtnis APL Implementierungen enthält, verlängert die VisualAPL Sprache Vermächtnis APL, um zu sein. Netz-gefällig. VisualAPL wird im StandardMicrosoft Sichtstudio IDE bewirtet und wie so, die Kompilation hervorruft, die zu der von anderer in gewissem Sinne identisch ist. Nettosprachen. Durch das Produzieren. Nettostandardsprachelaufzeit (CLR) Code, verwendet er den Microsoft rechtzeitigen Compiler (JIT) um Bit 32 oder 64-bitkleinteile zu stützen. Erhebliche Leistung Geschwindigkeit-ups übervermächtnis APL sind berichtet worden, besonders wenn (das wahlweise freigestellte) starke Schreiben der Funktion Argumente verwendet wird.
Ein APL zu C# übersetzer ist von den Causeway-graphischen Systemen vorhanden. Dieses Produkt war entworfen, um den APL Code zu erlauben, übersetzt zu gleichwertigem C#, um außerhalb des APL Klimas vollständig zu laufen. Der Causewaycompiler erfordert eine Laufzeitbibliothek der Reihe Funktionen. Etwas speedup, manchmal drastisch, ist sichtbar, aber geschieht wegen der Optimierungen, die in Microsoft zugehörig sind . Netz Rahmen.
APL trifft eine freie Unterscheidung zwischen Funktionen und Operatoren. Funktionen nehmen Werte (Variablen oder Konstanten oder Ausdrücke) als Argumente und bringen Werte als Resultate zurück. Operatoren (aka höherer Ordnungfunktionen) arbeitet Nehmen als Argumente, und bezogene Rückkehr, abgeleitete Funktionen als Resultate. Z.B. wird die „Summe“ Funktion abgeleitet, indem man den „Verkleinerung“ Operator an der „Hinzufügung“ Funktion anwendet. Den gleichen Verkleinerung Operator an der „Decke“ anwendend, arbeiten Sie (die das größere von zwei Werten zurückbringt), verursacht eine abgeleitete „maximale“ Funktion, die das größte einer Gruppe (Vektor) Werte zurückbringt. In der J Sprache ersetzte Iverson die Bezeichnungen „Verb“ und „Adverb“ für „Funktion“ und „Operator“.
APL kennzeichnet auch jene Eigenschaften, die in die Sprache errichtet werden und durch ein Symbol oder eine örtlich festgelegte Kombination von Symbolen, wie dargestellt sind Primitive. Die meisten Primitiven sind entweder Funktionen oder Operatoren. Kodierung APL ist groß ein Prozeß des Schreibens der nicht-ursprünglichen Funktionen und (in einigen Versionen von APL) der Operatoren. Jedoch werden einige Primitive betrachtet, weder Funktionen noch Operatoren, merklich Anweisung zu sein.
APL ist immer für seine Wahl eines einzigartigen, Nicht-Standard-Zeichensatzes kritisiert worden. Die Beobachtung, daß einige, die sie erlernen, normalerweise leidenschaftlichen Anhängern stehen, zeigt, daß es etwas Gewicht nach gibt Iverson's Idee, die die Darstellung verwendete, unterscheidet. Am Anfang gab es wenige Terminalvorrichtungen, die den APL Buchstaben reproduzieren konnten - Satz - populärsten die Beschäftigung IBM Selectric Druckverfahren zusammen mit einer speziellen APL Art Element. Über Zeit mit dem Universalgebrauch von hochwertigen graphische Anzeige und Druckvorrichtungen, ist das APL Schriftartproblem groß beseitigt worden; jedoch erfordert das Problem des Eintragens der APL Buchstaben den Gebrauch Eingang Methode Herausgeber oder spezielle Tastaturkartenaufnahmen, die Anfänger frustrieren können, gewöhnten sich andere Sprachen. Mit der Popularisierung von Unicode Standard, der den APL Zeichensatz enthält, das Problem des Erreichens der erforderlichen Schriftkegel scheint balanciert, um wegzugehen.
Vom Standpunkt eines Benutzers können die zusätzlichen Buchstaben APL eine spezielle Eleganz und ein concision geben, die in anderen Sprachen mit Gedächtnislehre der Symbole sichtlich der Funktionen nicht möglich sind, die sie darstellen. Oder es kann zu einen lächerlichen Grad Kompliziertheit und unreadability führen, gewöhnlich, wenn die Symbole zusammen in eine einzelne Masse ohne irgendwelche Anmerkungen aufgereiht werden. Oder es kann unvernünftiges schwieriges sein und zeitraubend, dann hereinzukommen redigieren Sie später jene APL Aussagen.
Merken Sie die Gedächtnislehre, die einen APL Buchstaben mit einem Buchstaben verbindet: Fragezeichen auf Q, Energie auf P, Rho auf R, niedriger Wert auf B, kodieren Sie auf N, Modul auf M und so weiter. Dieses bildet es einfacher, damit ein englischsprachiger Lautsprecher APL auf einer Tastatur nicht-APL schreibt, die ein bereitstellt, hat Sichtrückgespräch auf Einerschirm. Auch Abziehbilder sind für Zubehör zu den Standardtastaturen, entweder auf der Frontseite der Schlüssel oder auf die Oberseite von ihnen produziert worden.
Ein aktuelleres Tastaturdiagramm, ein anwendbares für APL2 und andere moderne Implementierungen, ist vorhanden: Anschlußplan für Fenster.
Alle APL Symbole sind innen anwesend Unicode (obgleich einige APL Produkte möglicherweise nicht dieses noch kennzeichnen können):
| ' | ( | ) | + | , | - | . | / | : | ; | < | = | > | ? | [ | ] |
| \ | _ | ¨ | ¯ | × | ÷ | ← | ↑ | → | ↓ | ∆ | ∇ | ∘ | ∣ | ∧ | ∨ |
| ∩ | ∪ | ∼ | ≠ | ≤ | ≥ | ≬ | ⊂ | ⊃ | ⌈ | ⌊ | ⊤ | ⊥ | ⋆ | ⌶ | ⌷ |
| ⌸ | ⌹ | ⌺ | ⌻ | ⌼ | ⌽ | ⌾ | ⌿ | ⍀ | ⍁ | ⍂ | ⍃ | ⍄ | ⍅ | ⍆ | ⍇ |
| ⍈ | ⍉ | ⍊ | ⍋ | ⍌ | ⍍ | ⍎ | ⍏ | ⍐ | ⍑ | ⍒ | ⍓ | ⍔ | ⍕ | ⍖ | ⍗ |
| ⍘ | ⍙ | ⍚ | ⍛ | ⍜ | ⍝ | ⍞ | ⍟ | ⍠ | ⍡ | ⍢ | ⍣ | ⍤ | ⍥ | ⍦ | ⍧ |
| ⍨ | ⍩ | ⍪ | ⍫ | ⍬ | ⍭ | ⍮ | ⍯ | ⍰ | ⍱ | ⍲ | ⍳ | ⍴ | ⍵ | ⍶ | ⍷ |
| ⍸ | ⍹ | ⍺ | ⎕ | ○ |
Zusätzliche APL Buchstaben waren vorbei vorhanden Overstriking ein Buchstabe über anderen. Z.B. Maschinenbordbuch Symbol wurde gebildet, indem man Verschiebung overstrikingP mit VerschiebungO. Dieses erschwerte das Beheben von Fehlern und das Redigieren der Programmzeilen. Dieser kann der Grund schließlich gewesen sein, damit frühe APL Programme eine bestimmte dichte Art haben - sie waren schwierig zu redigieren.
Viele overstrikes, die in der oben genannten Tabelle gezeigt werden, obgleich gefallend benutzt, werden nicht wirklich. Neue overstrikes wurden von den Verkäufern, während sie die Versionen von APL hergestellt zu den spezifischen Kleinteilen, System Eigenschaften, Dateisystem produzierten, und so weiter eingeführt. Weiter Anschlüß und frühen APL druckend Kathodenstrahlenwaren anschlüß zum Anzeigen der willkürlichen overstrikes fähig, aber als PC ersetzte schnell Anschlüß als Dateneingabevorrichtung, APL Buchstabe, den Unterstützung jetzt als gegeben wurde APL Zeichengenerator ROM oder ein weicher Zeichensatz übertragen durch das Sichtanzeigegerät. Mit dem Aufkommen von Windows, wurden APL Buchstaben als gerade ein anderer kompletter Schriftkegel, so die Unterscheidung zwischen den overstruck Buchstaben und Standardbuchstaben definiert, die beseitigt wurden.
Neuere IBM Anschlüß, vornehmlich IBM 3270 Datensichtgeräte, hatten eine Tastaturanordnung, die die Grundlage für einigen des modernen APL Tastaturaufbaus ist, der heute gebräuchlich ist. Bessere Anschlüß, nämlich Sichtanzeigegeräte anstelle von den Druckern, regten die Entwicklung der besseren Herausgeber des vollen Schirmes an, die eine meßbare Verbesserung in der Produktivität- und Programmlesbarkeit hatten.
APL hat lang eine kleine und glühende Benutzerunterseite gehabt. Es war und ist noch in den finanziellen und Versicherung Anwendungen, in den Simulationen und in den mathematischen Anwendungen, häufig populär, wo eine Lösung häufig ändert, oder wo in einer Gemeinsprache übermäßige Kompliziertheit erbringt. APL ist in einer breiten Vielzahl von Kontexten und für viele und veränderte Zwecke verwendet worden. Ein Rundschreiben, das „das Veranschlagen-Viererkabel“ eingeweiht wird APL betitelt wird, ist seit den siebziger Jahren durch den SIGAPL Abschnitt der Verbindung für Rechneranlage veröffentlicht worden (Veranschlagen-Viererkabel ist der Name des APL Buchstabens, der für Texteingabe und Ausgang benutzt wird).
Meistens passend zu seinem Infixschreibweise und sein Hauptgewicht auf Interaktion mit dem Computer, APL kann ein ideales Klima für die schnelle Entwicklung von wechselwirkendem sein Gebiet Besondere-Sprachen. Trotz des Vorhandenseins der Nicht-Standard-Buchstaben im APL Zeichensatz, ist es für einen Benutzer einer Gebiet-spezifischen Sprache möglich, die in APL eingeführt wird, um die einfachen Programme (oder die Indexe,) zu schreiben, die nur aus Wörtern, Zahlen und vertrauter Interpunktion bestehen. Bis so spät wie die Mitte der 80iger Jahre, APL Time-Sharing Verkäufer boten die Anwendungen an, die in Form von Gebiet Besonderesprachen geliefert wurden. Auf I. P. Scharf Time-Sharingsystem, ein Arbeitsbereich benannt MAGIE 39 angebotener Zugang zu den finanziellen und Fluglinie Daten plus die hoch entwickelte (während der Zeit) graphischee Darstellung und den Bericht, in Form einer Gebiet Besonderesprache. Ein anderes Beispiel ist der GRAPHPAK Arbeitsbereich, der mit APL2 IBMs geliefert wird; eine Demonstration Version von APL2 und von GRAPHPAK kann für Windows downloadet werden.
APL ist auch in zahlreichem verwendet worden Metaprogramming Anwendungen. Gegebene externe Daten, die sich gelegentlich veränderten, APL Programme wurden verwendet, um Teile zu bestehen oder die Abschnitte des Codes durchzuführen geschrieben in andere Sprachen wie Fortran, COBOL oder Java. Eine Anwendung verwendete APL, um Fortran Code eines erheblichen linearen programmierenmodells zu erzeugen. Als solcher, wurde der Fortran Code gedacht, um zu groß zu sein, von einer einzelnen oder kleinen Gruppe Einzelpersonen bequem verstanden zu werden. Jedoch mit dieser Annäherung, warf laufende Wartung keine Sperre auf. Ähnliche Annäherungen wurden verwendet, wo Verdichtungtabellen Außenseite von APL konnten in beträchtliche COBOL Programme sofort umgewandelt werden beibehielten, die die notwendige Verdichtungberechnung durchführten. Ein langwieriger Schritt, der vorher einige Manntage erforderte, nämlich änderungen an einem langen COBOL Programm, wurde praktisch beseitigt. Ähnliche Sachen sind erfolgt worden, die im Ende Java Code ausstrahlten.
Interesse an APL ist ständig seit den achtziger Jahren gesunken. Dieses lag am Fehlen von einem Migration Weg von den performant Mainframeimplementierungen zu den frühen preiswerten PCAlternativen und zur Verwendbarkeit der rechnenden Werkzeuge des Hochproduktivität Endbenutzers wie teilweise Microsoft Excel und Microsoft Access. Diese sind passende Plattformen für, was Mainframe APL Anwendungen in den siebziger Jahren und in den achtziger Jahren gewesen sein kann. Einige APL Benutzer wanderten zu ab J Programmiersprache, das vorgerücktere Eigenschaften anbietet. Zuletzt war die Abnahme auch Schuld im Teil zum Wachstum von MATLAB, GNU Oktaveund Scilab. Diese wissenschaftlichen rechnenden kleiden-orientierten Plattformen stellen eine wechselwirkende rechnende Erfahrung, die zu APL ähnlich ist zur Verfügung, aber ähneln mehr herkömmlichen Programmiersprachen wie Fortran und verwenden Standard-ASCII.
Ungeachtet dieser Abnahme fängt APL Entdeckungen anhaltender Gebrauch in sicherem, wie Buchhaltungforschung (aufStanford Buchhaltung PhD Anforderungen)
APL ist durch standardisiert worden ANSI Arbeitsgruppe X3J10 und ISO/Iec Gemeinsame technische Arbeitsgruppe 3 des Ausschuss-1 der Unterausschuss-22. Die Kern APL Sprache wird in ISO 8485:1989 angegeben, und die ausgedehnte APL Sprache wird in ISO/IEC 13751:2001 angegeben.
|
Custom Search
|
© Copyright 2011 WorldLingo. Alle Rechte vorbehalten.