„X10 (Programmiersprache)“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Einleitung erweitert, Übersetzung des entsprechenden Abschnitts der englischen Wikipedia
Einleitung überarbeitet und einen ersten Entwurf des Abschnitts Grundkonzepte erstellt.
Zeile 8: Zeile 8:
| Erscheinungsjahr = 2004
| Erscheinungsjahr = 2004
| Entwickler = Kemal Ebcioğlu, Vijay Saraswat und Vivek Sarkar ([[IBM]])
| Entwickler = Kemal Ebcioğlu, Vijay Saraswat und Vivek Sarkar ([[IBM]])
| AktuelleVersion = 2.3<ref name="Spec">{{Literatur |Autor=Vijay Saraswat, Bard Bloom, Igor Peshansky, Olivier Tardieu, David Grove,|Titel=X10 Language Specification Version 2.3|Jahr=2013|Seiten=1–282|Online=[http://x10.sourceforge.net/documentation/languagespec/x10-latest.pdf]|Zugriff=2013-08-20}}</ref>
| AktuelleVersion = 2.3
| AktuelleVersionFreigabeDatum = 15. Oktober 2012
| AktuelleVersionFreigabeDatum = 15. Oktober 2012
| Typisierung = [[Starke Typisierung|stark]], [[Statische Typisierung|statisch]]
| Typisierung = [[Starke Typisierung|stark]], [[Statische Typisierung|statisch]]
Zeile 18: Zeile 18:
| Website = http://x10-lang.org/
| Website = http://x10-lang.org/
}}
}}
'''X10''' ist eine [[Programmiersprache]] in Entwicklung bei [[IBM]] am [[Thomas_J._Watson_Research_Center|Forschungszentrum Thomas J. Watson]] als Teil des [[PERCS]] Projekt, finanziert durch das [[High Productivity Computing Systems]] (HPCS) Programm der [[DARPA]]. Seine Hauptautoren sind Kemal Ebcioğlu, Vijay Saraswat und Vivek Sarkar.<ref>http://www.aurorasoft.net/workshops/lar04/Author_Files/Papers/Vivek_Sarkar_LaR_04_Paper_V1.pdf</ref>
'''X10''' ist eine objektorientierte [[Programmiersprache]], für high-end Hardware mit bis zu 10000 Hardware-Threads<ref name="Spec" />. Sie wurde 2004 bei [[IBM]] am [[Thomas_J._Watson_Research_Center|Forschungszentrum Thomas J. Watson]] als Teil des [[PERCS]] Projekt entwickelt. Finanziert wurde das Vorhaben durch das [[High Productivity Computing Systems]] (HPCS) Programm der [[DARPA]]. Hauptautoren von X10 sind Kemal Ebcioğlu, Vijay Saraswat und Vivek Sarkar.<ref>http://www.aurorasoft.net/workshops/lar04/Author_Files/Papers/Vivek_Sarkar_LaR_04_Paper_V1.pdf</ref>


X10 wurde speziell zur parallelen Programmierung nach dem [[PGAS|Partitioned Global Address Space]] (PGAS) Modell entworfen. Eine Berechnung ist aufgeteilt auf verschiedene Bereiche, die wiederum Daten enthalten und eine oder mehrere Operationen, die mit diesen Daten arbeiten. Es hat ein beschränktes Typsystem für [[Objektorientierte Programmierung|objektorientierte Programmierung]]. Außerdem hat es noch andere Eigenschaften wie benutzerdefinierte primitive ''struct''-Typen, global verteilte [[Feld (Datentyp)|Arrays]] und strukturierten und unstrukturierten Parallelismus.<ref>{{Literatur |Autor=Vijay Saraswat, Bard Bloom, Igor Peshansky, Olivier Tardieu, David Grove,|Titel=X10 Language Specification Version 2.3|Jahr=2013|Seiten=1–282|Online=[http://x10.sourceforge.net/documentation/languagespec/x10-latest.pdf]|Zugriff=2013-08-20}}</ref>
X10 wurde speziell zur parallelen Programmierung nach dem [[PGAS|Partitioned Global Address Space]] (PGAS) Modell entworfen. Eine Berechnung ist auf verschiedene Places aufgeteilt. Diese enthalten Daten und eine oder mehrere Activities, die mit diesen Daten arbeiten. X10 hat ein beschränktes Typsystem für [[Objektorientierte Programmierung|objektorientierte Programmierung]]. Außerdem hat es noch andere Eigenschaften wie benutzerdefinierte primitive ''struct''-Typen, global verteilte [[Feld (Datentyp)|Arrays]] und strukturierten und unstrukturierten Parallelismus.<ref name="Spec" />

== Grundkonzepte ==
=== Activities und async ===
Asynchrone Activities werden durch den Befehl <syntaxhighlight lang="java">async(p)s</syntaxhighlight> erstellt. Dabei ist ''p'' der Place, an dem die Activity ausgeführt werden soll und ''s'' der Befehl (engl. Statement). Eine Aktivität wird an einem bestimmten Place erstellt und bleibt dort für die gesamte Lebensdauer.<ref name="Saraswat2005">{{Literatur|Autor=Vijay Saraswat, Radha Jagadeesan|Titel=Concurrent Clustered Programming|Sammelwerk=Lecture Notes in Computer Science|Band =3653|Verlag=Springer|Ort=Berlin Heidelberg|Jahr=2005|DOI=10.1007/11539452_28|Seiten=353-367}}</ref>

=== Places und at ===
Ein Place enthält Daten und Activities, die auf diesen Daten arbeiten. Man kann sich einen Place als eigenen Knoten einer verteilten [[Java Virtual Machine]] (JVM) mit eigenem [[Dynamischer Speicher|Heap]] und eigenen [[Thread (Informatik)|Thread]]s vorstellen.<ref name="Saraswat2005" />

=== Distributions und distributed Arrays ===
Mit Distributions werden distributed Arrays auf Places verteilt. Dabei ist die Distribution ein Objekt, die jedem Element des Arrays einen Place zuordnet. Auf welchem Place ein Element eines distributed Arrays liegen soll, muss bereits zur Array-Erstellung bekannt sein. Dabei ist zu beachten, dass auf einem Place nur auf diejenigen Elemente des distributed Arrays zugegriffen werden kann, die auch auf diesem Place liegen.<ref name="Saraswat2005" />


== Einzelnachweise ==
== Einzelnachweise ==

Version vom 20. August 2013, 14:17 Uhr

X10
Paradigmen: Objektorientierte Programmiersprache
Erscheinungsjahr: 2004
Designer: Kemal Ebcioglu, Vivek Sarkar, Vijay Saraswat
Entwickler: Kemal Ebcioğlu, Vijay Saraswat und Vivek Sarkar (IBM)
Aktuelle Version: 2.3[1]  (15. Oktober 2012)
Typisierung: stark, statisch
Beeinflusst von: Java, C++
Betriebssystem: AIX, Linux, Mac OS X, Microsoft Windows/Cygwin
Lizenz: Eclipse Public License 1.0
http://x10-lang.org/

X10 ist eine objektorientierte Programmiersprache, für high-end Hardware mit bis zu 10000 Hardware-Threads[1]. Sie wurde 2004 bei IBM am Forschungszentrum Thomas J. Watson als Teil des PERCS Projekt entwickelt. Finanziert wurde das Vorhaben durch das High Productivity Computing Systems (HPCS) Programm der DARPA. Hauptautoren von X10 sind Kemal Ebcioğlu, Vijay Saraswat und Vivek Sarkar.[2]

X10 wurde speziell zur parallelen Programmierung nach dem Partitioned Global Address Space (PGAS) Modell entworfen. Eine Berechnung ist auf verschiedene Places aufgeteilt. Diese enthalten Daten und eine oder mehrere Activities, die mit diesen Daten arbeiten. X10 hat ein beschränktes Typsystem für objektorientierte Programmierung. Außerdem hat es noch andere Eigenschaften wie benutzerdefinierte primitive struct-Typen, global verteilte Arrays und strukturierten und unstrukturierten Parallelismus.[1]

Grundkonzepte

Activities und async

Asynchrone Activities werden durch den Befehl

async(p)s

erstellt. Dabei ist p der Place, an dem die Activity ausgeführt werden soll und s der Befehl (engl. Statement). Eine Aktivität wird an einem bestimmten Place erstellt und bleibt dort für die gesamte Lebensdauer.[3]

Places und at

Ein Place enthält Daten und Activities, die auf diesen Daten arbeiten. Man kann sich einen Place als eigenen Knoten einer verteilten Java Virtual Machine (JVM) mit eigenem Heap und eigenen Threads vorstellen.[3]

Distributions und distributed Arrays

Mit Distributions werden distributed Arrays auf Places verteilt. Dabei ist die Distribution ein Objekt, die jedem Element des Arrays einen Place zuordnet. Auf welchem Place ein Element eines distributed Arrays liegen soll, muss bereits zur Array-Erstellung bekannt sein. Dabei ist zu beachten, dass auf einem Place nur auf diejenigen Elemente des distributed Arrays zugegriffen werden kann, die auch auf diesem Place liegen.[3]

Einzelnachweise

  1. a b c Vijay Saraswat, Bard Bloom, Igor Peshansky, Olivier Tardieu, David Grove,: X10 Language Specification Version 2.3. 2013, S. 1–282 ([1] [PDF; abgerufen am 20. August 2013]).
  2. http://www.aurorasoft.net/workshops/lar04/Author_Files/Papers/Vivek_Sarkar_LaR_04_Paper_V1.pdf
  3. a b c Vijay Saraswat, Radha Jagadeesan: Concurrent Clustered Programming. In: Lecture Notes in Computer Science. Band 3653. Springer, Berlin Heidelberg 2005, S. 353–367, doi:10.1007/11539452_28.

Weblinks