X10.tex 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. %!TEX root = Programmierparadigmen.tex
  2. \chapter{X10}\index{X10|(}%
  3. X10 ist eine objektorientierte Programmiersprache, die 2004 bei IBM entwickelt
  4. wurde.
  5. X10 nutzt das PGAS-Modell:
  6. \begin{definition}[PGAS\footnotemark]\xindex{PGAS}%
  7. PGAS (partitioned global address space) ist ein Programmiermodell für
  8. Mehrprozessorsysteme und massiv parallele Rechner. Dabei wird der globale
  9. Adressbereich des Arbeitsspeichers logisch unterteilt. Jeder Prozessor
  10. bekommt jeweils einen dieser Adressbereiche als lokalen Speicher zugeteilt.
  11. Trotzdem können alle Prozessoren auf jede Speicherzelle zugreifen, wobei auf
  12. den lokalen Speicher mit wesentlich höherer Geschwindigkeit zugegriffen
  13. werden kann als auf den von anderen Prozessoren.
  14. \end{definition}
  15. \footnotetext{\url{https://de.wikipedia.org/wiki/PGAS}}
  16. \section{Erste Schritte}
  17. Als erstes sollte man x10 von \url{http://x10-lang.org/x10-development/building-x10-from-source.html?id=248} herunterladen.
  18. Dann kann man die \texttt{bin/x10c} zum erstellen von ausführbaren Dateien nutzen.
  19. Der Befehl \texttt{x10c HelloWorld.x10} erstellt eine ausführbare Datei namens
  20. \texttt{a.out}.
  21. \inputminted[numbersep=5pt, tabsize=4, frame=lines, label=HelloWorld.x10]{cpp}{scripts/x10/HelloWorld.x10}
  22. \section{Syntax}
  23. Genau wie Scala nutzt X10 \texttt{val}\xindex{val} und \texttt{var}\xindex{var}, wobei \texttt{val} für
  24. \enquote{value} steht und ein unveränderbarer Wert ist. \texttt{var} hingegen
  25. steht für \enquote{variable} und ist veränderbar.
  26. Eine Besonderheit sind sog. \textit{Constrianed types}\xindex{types!constrained}:
  27. \inputminted[numbersep=5pt, tabsize=4]{scala}{scripts/x10/constrained-type-example.x10}
  28. \section{Datentypen}
  29. Byte, UByte, Short, UShort, Char, Int, UInt, Long, ULong, Float, Double, Boolean,
  30. Complex, String, Point, Region, Dist, Array
  31. \subsection{struct}\xindex{struct}%
  32. In X10 gibt es, wie auch in C, den Typ \texttt{struct}. Dieser erlaubt im Gegensatz
  33. zu Objekten keine Vererbung, kann jedoch auch interfaces implementieren.
  34. Alle Felder eines X10-Structs sind \texttt{val}.
  35. Structs werden verwendet, da sie effizienter als Objekte sind.
  36. \begin{beispiel}[struct]
  37. \inputminted[numbersep=5pt, tabsize=4]{scala}{scripts/x10/x10-struct-example.x10}
  38. \end{beispiel}
  39. \section{Beispiele}
  40. \section{Weitere Informationen}
  41. \begin{itemize}
  42. \item \url{http://x10-lang.org/}
  43. \end{itemize}
  44. \index{X10|)}