„X10 (Programmiersprache)“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
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]] |
'''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 |
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
- ↑ 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]).
- ↑ http://www.aurorasoft.net/workshops/lar04/Author_Files/Papers/Vivek_Sarkar_LaR_04_Paper_V1.pdf
- ↑ 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.