Thread Perl 6 und Nebenläufigkeit
(10 answers)
Opened by leo11 at 2009-01-02 18:35
Ja Erlang ist speziell eine Programmiersprache die auf Parallelisierbarkeit ausgelegt ist. Aber Funktionalen Sprachen wie Haskell bieten das vom Design her schon. Bzw Erlang ist ja ebenfalls eine Funktionale Programmiersprache.
Haskell im speziellen ist zum Beispiel mehr statisch Typisierter als C. Dadurch kann die Sprache selber vieles annehmen. Zum Beispiel können Funktionen in Haskell keine Nebenläufigkeit haben. Das bedeutet eine Funktion mit aufgerufenen Parameter muss absolut immer das gleiche zurück liefern. Dadurch das es so definiert ist kann auch jede Funktion Parallel ausgeführt werden in Haskell und der GHC Compiler macht davon auch gebrauch. Jedenfalls muss man nicht speziell Programmieren und die Haskell Implementierung kann automatisch mehrere CPU Kerne nutzen. In Perl ist das z.B. nicht möglich da jede Funktion ja Nebenläufigkeit haben kann und es eben nicht sichergestellt ist das eine Funktion mit den gleichen Parametern auch das gleiche zurück liefert. Ansonsten ist dies bei Funktionalen Sprachen vom Design her wohl eher der Fall als bei den Imperativen/OOP Sprachen. So das hier diese Optimierung automatisch vorgenommen werden kann. Zumindest weiß ich das bei Haskell automatisch shcon ein Teil auf mehreren Kerne ausgelagert werden kann ohne das der Programmierer speziell dafür Programmieren muss. Ansonsten gibt es soweit ich wohl gesehen habe auch für Haskell Module womit man mehrere CPU Kerne explizit ansprechen kann. Erlang wird das wohl von sich aus schon eingebaut haben. Allerdiengs kenne ich Haskell und auch Erlang nicht genau genug um da genaues zu sagen zu können. Um aber auf Perl 6 zurück zu kommen so finde ich das schon gut das bei manchen Operatoren Parallelisierbarkeit gefordert wird. Wäre aber toll wenn die Sprache noch mehr darauf ausgelegt wird. Bzw wenn soetwas auch nachher als ein Modul möglich wäre ist das Sicherlich auch volkommen okay. Ich habe bisher noch keine Sprache entworfen und kenne da nicht genau die Möglichkeiten von Parrot und/oder Rakudo. Da aber Perl 6 ja beliebig anpassbar ist von der Syntax kann man denke ich später wohl einiges nettes dazu entwickeln oder als Modul anbieten. Zumindest wäre es gut wenn man einige Sachen schon direkt in der Sprache verpflanzen könnte was Multitasking angeht. Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|