Abo
  1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › Programmiersprachen: Mono…

wieso?

  1. Thema

Neues Thema Ansicht wechseln


  1. wieso?

    Autor: einer_meiner 12.11.10 - 21:27

    >F# ist eine funktionale Programmiersprache, die vor allem für >rechenintensive Anwendungen gedacht ist, etwa für Finanz- oder >Datenanalysen, Datenmodellierung oder wissenschaftliche Anwendungen

    ich weiß dass funktionale programmierung gern in der wissenschaft genutzt wird... programmierfehler und so... aber wieso soll sie für rechenintensive anwendungen genutzt werden? ist die codeoptimierung so gut?

  2. Re: wieso?

    Autor: einer_keiner 12.11.10 - 22:24

    Bei Funktionaler Beschreibung kann der Interpreter besser die parallelen Teile erkennen und verteilen.

  3. Re: wieso?

    Autor: meiner_einer 12.11.10 - 23:04

    einer_meiner schrieb:
    --------------------------------------------------------------------------------
    > ich weiß dass funktionale programmierung gern in der wissenschaft genutzt
    > wird... programmierfehler und so... aber wieso soll sie für rechenintensive
    > anwendungen genutzt werden? ist die codeoptimierung so gut?


    ja.













    z.B. BMF, Fusion/Deforestation, Memoization, Flattening, Supercompilation mit Compile-Time Code Execution




    darüberhinaus nutzen *echte* wissenschaftler lieber technologien, die andere einfach nicht verstehen :P

  4. woid ()

    Autor: ilydotvbswarnesauerei 13.11.10 - 01:18

    es nennt sich prozedurales programmieren und eine prozedur ist genauer betrachtet ein programm. bei der funktion ist lediglich die übergabe des referenzparamters welcher ergebnisse zurückgibt bereits festgelegt/alloziert.

    genetic algorythm: open varFile for output write varprogramcontent und je nachdem exec compiler exec file.

    program attachment: always virus

  5. Re: woid ()

    Autor: Himuralibima 13.11.10 - 07:41

    ilydotvbswarnesauerei schrieb:

    > es nennt sich prozedurales programmieren und
    > eine prozedur ist genauer betrachtet ein
    > programm.

    Nein. Das ist etwas anderes.

    > bei der funktion ist lediglich die übergabe des
    > referenzparamters welcher ergebnisse zurückgibt
    > bereits festgelegt/alloziert.

    Das machen manche Compiler so, aber längst nicht alle. Die besseren geben Ergebnisse vorzugsweise als Werte zurück und nur wenn sie in den dafür vorgesehenen Registern des jeweiligen Prozessors keinen Platz haben, kommt ersatzweise eine Ergebnisreferenz zum Einsatz.

    Mit funktionaler Programmierung hat die Pascal-Eigenheit, nur Funktionen ohne Funktionswert als Prozeduren zu bezeichnen, nichts zu tun.

    Der Knackpunkt ist, daß Funktionen (oder Prozeduren) in prozeduralen Sprachen feste Abläufe beschreiben, die allenfalls zu Optimierungszwecken automatisch manipuliert werden dürfen, soweit damit der vorgesehene Effekt nicht verändert wird.

    Funktionale Programmierung benutzt Funktionen als gezielt vom Programmierer manipulierbare Objekte. Funktionen können auf verschiedene Weisen miteinander zu neuen Funktionen verknüpft werden; einzelne Parameter lassen sich substituieren, so daß nur noch die übrigen angegeben werden müssen; die Art und der Zeitpunkt der Bindung einer Funktion an ihre (statische) Umgebung („globale Variablen“) lassen sich steuern.

    Verzichtet man auf Nebeneffekte (funktionelle Programmiersprachen verbieten sie oft) und auf Zuweisungen, dann löst sich der prozedurale Ablauf vollständig auf, und es bleiben nur noch Abhängigkeiten übrig. Es ist Aufgabe des Compilers, diese Abhängigkeiten zu analysieren und daraus einen Ablauf (oder mehrere parallele Abläufe) so zu konstruieren, daß in den miteinander verknüpften Funktionen unnötige Berechnungen unterbleiben.

    Wenn allerdings ein Compiler beim Zugriff zu einer Variablen nicht erkennen kann, welche Zuweisung ihr den aktuellen Wert gegeben hat, dann bleibt er an den vorgegebenen prozeduralen Ablauf gefesselt und kann keinen schnelleren Maschinencode erzeugen.

    Der eigentliche Vorteil ist aber nicht die bessere Optimierbarkeit durch den Compiler, sondern die überschaubaren Effekte für den Programmierer. Wo es keinen sequentiellen Ablauf gibt, kann man nichts versehentlich in der falschen Reihenfolge ausführen. Der Code sieht mathematischer aus und enthält keinen Nonsens der Form I=I+1. Man macht deutlich weniger Fehler.

    Außerdem lassen sich Invarianten mit funktionalen Sprachen oft recht leicht beweisen, so daß sie nicht zur Laufzeit überwacht werden müssen. Mit geeigneten Invarianten läßt sich dann oft die Korrektheit eines Programms beweisen. Prozedurale Spaghetti-Codierer können davon nur träumen.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. Fraunhofer-Institut für Arbeitswirtschaft und Organisation IAO, Esslingen am Neckar
  2. Stadtverwaltung Kaiserslautern, Kaiserslautern
  3. ifp - Institut für Managementdiagnostik Will & Partner GmbH & Co. KG, Großraum München
  4. Modis GmbH, Berlin

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 56€ (Bestpreis!)
  2. (u. a. 20% auf ausgewählte Monitore)
  3. (u. a. Sennheiser HD 4.50R für 99€)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Atari Portfolio im Retrotest: Endlich können wir unterwegs arbeiten!
Atari Portfolio im Retrotest
Endlich können wir unterwegs arbeiten!

Ende der 1980er Jahre waren tragbare PCs nicht gerade handlich, der Portfolio von Atari war eine willkommene Ausnahme: Der erste Palmtop-Computer der Welt war klein, leicht und weitestgehend DOS-kompatibel - ideal für Geschäftsreisende aus dem Jahr 1989 und Nerds aus dem Jahr 2019.
Ein Test von Tobias Költzsch

  1. Retrokonsole Hauptverantwortlicher des Atari VCS schmeißt hin

Rabbids Coding angespielt: Hasenprogrammierung für Einsteiger
Rabbids Coding angespielt
Hasenprogrammierung für Einsteiger

Erst ein paar einfache Anweisungen, dann folgen Optimierungen: Mit dem kostenlos erhältlichen PC-Lernspiel Rabbids Coding von Ubisoft können Jugendliche und Erwachsene ein bisschen über Programmierung lernen und viel Spaß haben.
Von Peter Steinlechner

  1. Transport Fever 2 angespielt Wachstum ist doch nicht alles
  2. Mordhau angespielt Die mit dem Schwertknauf zuschlagen
  3. Bus Simulator angespielt Zwischen Bodenschwelle und Haltestelle

Rohstoffe: Lithium aus dem heißen Untergrund
Rohstoffe
Lithium aus dem heißen Untergrund

Liefern Geothermiekraftwerke in Südwestdeutschland bald nicht nur Strom und Wärme, sondern auch einen wichtigen Rohstoff für die Akkus von Smartphones, Tablets und Elektroautos? Das Thermalwasser hat einen so hohen Gehalt an Lithium, dass sich ein Abbau lohnen könnte. Doch es gibt auch Gegner.
Ein Bericht von Werner Pluta

  1. Wasserkraft Strom aus dem Strom
  2. Energie Wie Mikroben Methan mit Windstrom produzieren
  3. Erneuerbare Energien Die Energiewende braucht Wasserstoff

  1. H2.City Gold: Caetanobus stellt Brennstoffzellenbus mit Toyota-Technik vor
    H2.City Gold
    Caetanobus stellt Brennstoffzellenbus mit Toyota-Technik vor

    Damit die Luft in Städten besser wird, sollen Busse sauberer werden. Ein neuer Bus aus Portugal mit Brennstoffzellenantrieb emititiert als Abgas nur Wasserdampf.

  2. Ceconomy: Offene Führungskrise bei Media Markt und Saturn
    Ceconomy
    Offene Führungskrise bei Media Markt und Saturn

    Die Diskussion um die mögliche Absetzung von Ceconomy-Chef Jörn Werner sollte eigentlich noch nicht öffentlich werden. Jetzt wissen es alle, und es gibt keinen Nachfolger.

  3. Polizei: Hunde, die nach Datenspeichern schnüffeln
    Polizei
    Hunde, die nach Datenspeichern schnüffeln

    Spürhunde können neben Sprengstoff und Drogen auch Datenspeicher oder Smartphones erschnüffeln. Die Polizei in Nordrhein-Westfalen hat kürzlich ihre frisch ausgebildeten Speicherschnüffler vorgestellt.


  1. 18:18

  2. 18:00

  3. 17:26

  4. 17:07

  5. 16:42

  6. 16:17

  7. 15:56

  8. 15:29