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. Hitschler International GmbH & Co. KG, Köln
  2. A. Menarini Research & Business Service GmbH, Berlin
  3. TenneT TSO GmbH, Bayreuth
  4. ABB AG, Mannheim

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 589,00€ (Bestpreis!)
  2. 649,99€ (Bestpreis!)
  3. 17,99€ (PC)/18,74€ (Mac)
  4. (Lenovo IdeaPad S340 für 649,00€ - Vergleichspreis: 668,00€ bei Ebay)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Asus Zephyrus G14 im Test: Ryzen-Renoir-Revolution!
Asus Zephyrus G14 im Test
Ryzen-Renoir-Revolution!

Dank acht CPU-Kernen bei nur 35 Watt schlägt Asus' Ryzen-basiertes 14-Zoll-Spiele-Notebook jegliche Konkurrenz.
Ein Test von Marc Sauter

  1. Intel MKL Matlab R2020a läuft auf Ryzen drastisch schneller
  2. DFI GHF51 Ryzen-Platine ist so klein wie Raspberry Pi
  3. Ryzen Mobile 4000 Das kann AMDs Renoir

Star Trek - Der Film: Immer Ärger mit Roddenberry
Star Trek - Der Film
Immer Ärger mit Roddenberry

Verworfene Drehbücher, unzufriedene Paramount-Chefs und ein zögerlicher Spock: Dass der erste Star-Trek-Film vor 40 Jahren schließlich doch in die Kinos kam, grenzt an ein Wunder. Dass er schön aussieht, noch mehr.
Von Peter Osteried

  1. Machine Learning Fan überarbeitet Star Trek Voyager in 4K
  2. Star Trek - Picard Hasenpizza mit Jean-Luc
  3. Star Trek Voyager Starke Frauen und schwache Gegner

Buglas: Corona-Pandemie zeigt Notwendigkeit der Glasfaser
Buglas
Corona-Pandemie zeigt Notwendigkeit der Glasfaser

Mehr Datenupload und Zunahme der Sprachtelefonie bringe die Netze unter Druck. FTTB/H-Betreiber bleiben gelassen.
Eine Exklusivmeldung von Achim Sawall

  1. Corona Lidl Connect setzt Drosselung herauf
  2. Coronakrise SPD-Chefin warnt vor Panik durch ungenaues Handytracking
  3. Coronavirus Media Markt und Saturn stoppen Mietzahlungen