J (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
J
Paradigmen: Rein funktionale Programmiersprache
Erscheinungsjahr: 1990
Entwickler: JSoftware
Aktuelle Version: 802  (2014-07-09)
Typisierung: schwach
Beeinflusst von: APL, FP und FL
Betriebssystem: Windows, Linux, Mac OS X, Pocket PC
Lizenz: GPL
Jsoftware.com

J ist eine rein funktionale Programmiersprache, welche Anfang der 1990er Jahre von Kenneth E. Iverson und Roger Hui entwickelt wurde. Sie basiert direkt auf der von Iverson entwickelten Programmiersprache APL und den von John W. Backus entworfenen Programmiersprachen FP und FL.

Da J eine im Umgang mit Arrays, und dementsprechend auch mit Matrizen, mächtige Sprache ist, ist sie besonders zur Lösung mathematischer und statistischer Probleme geeignet. Des Weiteren ist J MIMD (Multiple Instruction, Multiple Data)-fähig.

Im Gegensatz zu vielen anderen Sprachen, die objektorientierte Programmierung erlauben, wird durch das flexible, hierarchische Namensraum-Schema von J sowohl klassenbasierte als auch prototypenbasierte Programmierung ermöglicht.

Zwar basiert J auf APL, welches Sonderzeichen im Quelltext erfordert, verwendet aber nur Befehle und Operanden, die aus Zeichen im Bereich der ASCII Zeichencodes bestehen. Somit werden einige Probleme, die bei der Codierung von Sonderzeichen im Quelltext entstehen können, umgangen. Befehle die in APL über Sonderzeichen ausgeführt werden, wurden in J durch Zeichenkombinationen, welche durch einen Punkt oder ein Komma eingeleitet werden, ersetzt.

Obwohl J keine der von-Neumann-Architektur entsprechende Sprache ist, sondern der MIMD-Architektur entspricht, lässt sie sich auch wie eine von-Neumann-Sprache verwenden.

Beispielcode[Bearbeiten]

Der folgende Code berechnet den Mittelwert eines Arrays.

 avg=: +/ % # 
 avg 1 2 3 4

Ausgabe: 2.5

Die Funktion avg besteht aus den folgenden Operanden: +/ summiert alle Elemente des Arrays, % teilt den vorherigen Operand mit dem folgenden und # liefert die Anzahl an Elementen im Array. Nach der Funktionsdefinition wird avg mit dem Array als Operand aufgerufen.

Weblinks[Bearbeiten]