Now Reading
Programmiersprache OCaml 5 hat eine Runtime zu Gunsten von Multicore-Programme

Programmiersprache OCaml 5 hat eine Runtime zu Gunsten von Multicore-Programme

Programmiersprache OCaml 5 hat eine Runtime für Multicore-Programme

[ad_1]

Die Programmiersprache OCaml ist in Version 5.0 erschienen. Dies Release zielt gen Multicore mit Konzepten zu Gunsten von die parallele Version von Identifikator und Concurrency. Dazu musste dies Team die Runtime von Grund gen umschreiben.

Insgesamt befindet sich dieser Multicore-Support seitdem acht Jahren in Weiterentwicklung, und Version 4.10 hatte schon manche vorbereitende Maßnahmen an Bord. Wegen dieser Multicore-Umstellung ist OCaml 5.0.0 jedoch laut dieser Bekanntmachung eine experimentellere Version wie bisherige OCaml-Releases. Dieser native Compiler bedient ausschließlich x86-64- und arm64-Architekturen. Im Sinne als dieser Betriebssysteme deckt dies Release Linux, macOS, BSD und Mingw-w64 gen Windows ab.

Die beiden wesentlichen Neuerungen sind Shared Memory Parallelism (SMP) und Effect Handlers. Letzteres roter Faden dient dieser nebenläufigen und ersteres dieser parallelen Programmierung. OCaml 5 unterscheidet zwischen Concurrency wie überlappende Version nebenläufiger Tasks und Parallelism wie gleichzeitige Version paralleler Tasks.

OCaml setzt zu Gunsten von parallele Programmierung gen Domains. Dies Modul Domain erlaubt dies Erstellen und Verwalten dieser Domänen. Eine mit spawn erzeugte Fachrichtung läuft parallel zu dieser aufrufenden. In diesem Fall nimmt jede verknüpfen eigenen Operating system-Thread ein. Schlankere Ansätze zum Verwalten paralleler Prozesse lagert OCaml in Libraries wie Domainslib aus. Die einzelnen Domänen können gen verknüpfen gemeinsamen Speicher zupacken.

Dieser Zugriff gen unveränderliche Werte (Immutables) ist hierbei unbesetzt möglich und ohne Risiken. OCaml bietet manche Mechanismen, die Data Races zu Gunsten von veränderliche Werte im gemeinsamen Speicher verhindern sollen. Mutexes und Semaphoren zuteilen die blockierende Synchronisation, und Atomics die nicht blockierende.

Zu Gunsten von die nebenläufige Programmierung führt OCaml 5.0.0 Effect-Handler ein, die derzeit noch wie experimentell gekennzeichnet sind. Die Handler zuteilen dies Erzeugen benutzerdefinierter Effekte. Die Dokumentation bezeichnet sie wie Generalisierung von Exception-Handlers. Dies roter Faden trennt die effektvollen Operationen von dieser eigentlichen Implementierung.

Dies roter Faden ermöglicht schlanke, benutzerdefinierte Threads, die im Unterschied zu Domains nicht 1:1 den Betriebssystems-Threads vollbringen. Finessen und Beispiele zu den Effects finden sich in dieser OCaml-Dokumentation.

OCaml 5.0.0 ist laut dieser offiziellen Bekanntmachung weitgehend rückwärtskompatibel, sodass jedes OCaml-4-Sendung mit dem aktuellen Release laufen sollte. Die Ausnahmen, die die Regel ratifizieren, sind manche Änderungen an dieser internen Runtime-API. Außerdem weit dies Release seitdem längerem wie überholt (deprecated) gekennzeichnete Funktionen und Module.

OCaml erschien erstmals 1996. Die Programmiersprache hat ihre Wurzeln in Caml, dies wiederum gen dieser Meta Language (ML) aufbaut. Letzteres bezieht sich nicht etwa gen die Metaprogrammierung, sondern bezeichnet eine Familie funktionaler Programmiersprachen mit zusätzlichen imperativen Konstrukten, zu dieser sekundär Standard ML und Microsofts Fluor# in Besitz sein von. OCaml erweitert Caml um verknüpfen objektorientierten Layer.

Die Open-Source-Sprache wurde am Institut patriotisch de recherche en informatique et en automatique (INRIA) entwickelt. Federführend zu Gunsten von die Weiterentwicklung ist Xavier Leroy. Aufgrund dieser akademischen Wurzeln ist sie in diesem Umfeld insbesondere stark, sie zielt gleichwohl sekundär gen den Sicherheit in Business-Anwendungen. Namhafte Unternehmen, die OCaml nutzen, sind Facebook, Docker und Microsoft. Die offizielle Website bezeichnet OCaml wie Allzwecksprache (Vier-Sterne-General-Purpose Language).

Dieser OCaml-Compiler kann sowohl Bytecode wie sekundär Maschinencode erzeugen. Letztere gilt zu Gunsten von funktionale Sprachen wie effizient, da dieser Compiler manche Optimierungen anwendet.

Weitere Neuerungen lassen sich dieser Bekanntmachung von OCaml 5.0.0 schlussfolgern. Dies OCaml-Team wird zu Gunsten von eine Übergangszeit zudem den OCaml-4.14-Zweig weiter pflegen und Bugfixes aus Version 5 dorthin zurückportieren; OCaml 4.14.1 ist derzeit wie Release Candidate verfügbar. Im Laufe des nächsten Jahres sollen zudem Varianten zu Gunsten von die Betriebssysteme und Architekturen erscheinen, die OCaml 4.14 abdeckt, gleichwohl Version 5 noch nicht.


(rme)

[ad_2]
View Comments (0)

Leave a Reply

Your email address will not be published.

Scroll To Top