Concurrent ML

Concurrent ML
ParadigmsMulti-paradigm: functional, imperative, modular, concurrent
FamilyML: Standard ML
First appeared1991; 33 years ago (1991)[1]
Websitecml.cs.uchicago.edu
Major implementations
SML/NJ,[2] MLton,[3] Manticore[4]
Influenced by
ML, Standard ML

Concurrent ML (CML) is a multi-paradigm, general-purpose, high-level, functional programming language. It is a dialect of the programming language ML which is a concurrent extension of the Standard ML language, characterized by its ability to allow creating composable communication abstractions that are first-class rather than built into the language. The design of CML and its primitive operations have been adopted in several other programming languages, such as GNU Guile,[5] Racket,[6] and Manticore.[4]

Concepts

Many programming languages that support concurrency offer communication channels that allow the exchange of values between processes or threads running concurrently in a system. Communications established between processes may follow a specific protocol, requiring the programmer to write functions to establish the required pattern of communication. Meanwhile, a communicating system often requires establishing multiple channels, such as to multiple servers, and then choosing between the available channels when new data is available. This can be accomplished using polling, such as with the select operation on Unix systems.

Combining both application-specific protocols and multi-party communication may be complicated due to the need to introduce polling and checking for blocking within a pre-existing protocol. Concurrent ML solves this problem by reducing this coupling of programming concepts by introducing synchronizable events.[7] Events are a first-class abstraction that can be used with a synchronization operation (called sync in CML and Racket) in order to potentially block and then produce some value resulting from communication (for example, data transmitted on a channel).

In CML, events can be combined or manipulated using a number of primitive operations. Each primitive operation constructs a new event rather than modifying the event in-place, allowing for the construction of compound events that represent the desired communication pattern. For example, CML allows the programmer to combine several sub-events in order to create a compound event that can then make a non-deterministic choice of one of the sub-events. Another primitive creates a new event that will modify the value resulting from synchronization to the original event. These events embody patterns of communication that, in a non-CML language, would typically be handled using a polling loop or function with handlers for each kind of event.

Hello world

Here is a "Hello, World!" program that prints to the system console. It spawns one thread with a channel for strings, and another thread which prints a string received on the channel. It uses Standard ML of New Jersey (SML/NJ) and CML. (On non linux-x86 platforms, the heap name will differ; the line with "cml_test.x86-linux" may need changing to something different.)

cml_test.cm
Library
    structure Hello
is
    $cml/basis.cm
    $cml/cml.cm
    cml_test.sml
cml_test.sml
structure Hello = struct
    open CML

    fun hello () = let
        val c : string chan = channel ()
        in
            spawn (fn () => TextIO.print (recv c));
            send (c, "Hello, world!\n");
            exit ()
        end

    fun main (_, argv) =
        RunCML.doit (fn () => ignore (spawn hello), NONE)
end
bash
$ ml-build cml_test.cm Hello.main
Standard ML of New Jersey v110.60 [built: Mon Nov 27 14:19:21 2006]
[scanning cml_test.cm]
[library $cml/basis.cm is stable]
[library $cml/cml.cm is stable]
[parsing (cml_test.cm):cml_test.sml]
[creating directory .cm/SKEL]
[library $cml/cml-internal.cm is stable]
[library $cml/core-cml.cm is stable]
[library $SMLNJ-BASIS/basis.cm is stable]
[compiling (cml_test.cm):cml_test.sml]
[creating directory .cm/GUID]
[creating directory .cm/x86-unix]
[code: 2170, data: 42, env: 2561 bytes]
[scanning 18518-export.cm]
[scanning (18518-export.cm):cml_test.cm]
[parsing (18518-export.cm):18518-export.sml]
[compiling (18518-export.cm):18518-export.sml]
[code: 309, data: 37, env: 42 bytes]
$ heap2exec cml_test.x86-linux cml_test
$ ./cml_test
Hello, world!

References

  1. ^ Reppy, John H. (June 1991). CML: a Higher-Order Concurrent Language. PLDI.
  2. ^ "What is Standard ML of New Jersey?". Retrieved April 5, 2021.
  3. ^ "ConcurrentMLImplementation". Retrieved April 5, 2021.
  4. ^ a b Fluet, Matthew; Bergstrom, Lars; Ford, Nic; Rainey, Mike; Reppy, John; Shaw, Adam; Xiao, Yingqi (May 2009). "Programming in Manticore, a Heterogenous Parallel Functional Language" (PDF). Retrieved July 11, 2018.
  5. ^ Wingo, Andy (June 29, 2017). "A New Concurrent ML". Retrieved July 11, 2018.
  6. ^ Flatt, Matthew; Findler, Robert Bruce (2004). "Kill-safe synchronization abstractions". Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation. Vol. 39. pp. 47–58. doi:10.1145/996841.996849. ISBN 1581138075. S2CID 5547460.
  7. ^ Reppy, John H. (1993). "Concurrent ML: Design, application and semantics". Functional Programming, Concurrency, Simulation and Automated Reasoning. Lecture Notes in Computer Science. Vol. 693. pp. 165–198. CiteSeerX 10.1.1.50.7965. doi:10.1007/3-540-56883-2_10. ISBN 978-3-540-56883-4.

Read other articles:

Hotel and casino in Paradise, Nevada Luxor Hotel redirects here. For the New York City hotel, see Luxor Hotel (New York City). Luxor Las VegasShow map of Las Vegas StripShow map of Nevada Location Paradise, Nevada, U.S. Address 3900 South Las Vegas BoulevardOpening dateOctober 15, 1993; 30 years ago (October 15, 1993)ThemeAncient EgyptNo. of rooms4,407Total gaming space65,214 sq ft (6,058.6 m2)Permanent showsAmerica's Got Talent Presents Superstars LiveBlue Man Gro...

 

 

Aeromonas Aeromonas hydrophilaPewarnaan GramGram-negatif TaksonomiSuperdomainBiotaDomainBacteriaKerajaanPseudomonadatiFilumPseudomonadotaKelasGammaproteobacteriaOrdoAeromonadalesFamiliAeromonadaceaeGenusAeromonas Roger Stanier, 1943 Tipe taksonomiAeromonas hydrophila Tata namaStatus nomenklaturnomen conservandum SpesiesA. aquariorum A. allosaccharophila A. aquatica[1] A. australiensis A. bestiarum A. bivalvium A. caviae A. dhakensis[1] A. diversa A. encheleia A. enteropelogene...

 

 

Совместное заседание ВБР и Центральной белорусской войсковой рады, 1917 год Великая белорусская рада (ВБР; белор. Вялікая беларуская рада) — координационный центр белорусского национального движения в октябре-декабре 1917 года. Великая белорусская рада была создана на II...

artikel ini perlu dirapikan agar memenuhi standar Wikipedia. Tidak ada alasan yang diberikan. Silakan kembangkan artikel ini semampu Anda. Merapikan artikel dapat dilakukan dengan wikifikasi atau membagi artikel ke paragraf-paragraf. Jika sudah dirapikan, silakan hapus templat ini. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Chester Alan Arthur Presiden Amerika Serikat 21Masa jabatan19 September 1881 – 4 Maret 1885Wakil PresidenTidak ada PendahuluJames A...

 

 

Les' Copaque Production Sdn BhdJenisPribadi TerbatasIndustriHiburan, mediaGenreAnimasiDidirikan12 Desember 2005; 18 tahun lalu (2005-12-12)PendiriHaji Burhanuddin Mohd RadziHajah Ainon AriffKantorpusatNo. 1, Jalan Boling Padang G13/G,Seksyen 13, 40100 Shah Alam,Selangor Darul Ehsan.Tokohkunci Haji Burhanuddin Mohd Radzi (Pengarah Urusan) Hajah Ainon Ariff (Ketua Pengarah Isi Kandungan) Nur Naquyah Burhanuddin (Pengarah Isi Kandungan) Adam Amiruddin (Pengarah Kreatif) Razuri Ajmain (Penga...

 

 

The Industrial Workers of the World (IWW) is a union of wage workers which was formed in Chicago in 1905. The IWW experienced a number of divisions and splits during its early history. When the office of the IWW president was abolished at the convention in 1906, deposed President Sherman and his supporters, many from the Socialist Party and the Western Federation of Miners, formed a rump IWW, which ceased to exist after about a year.[1] After the 1908 convention of the original IWW, a...

Keseluruhan atau sebagian dari artikel ini membutuhkan perhatian dari ahli subyek terkait. Jika Anda adalah ahli yang dapat membantu, silakan membantu perbaiki kualitas artikel ini. Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Neraka – berita · surat kabar · buku&#...

 

 

VH1

Pour les articles homonymes, voir VH1 (homonymie). VH1CaractéristiquesCréation 1er janvier 1985Propriétaire Paramount Media NetworksFormat d'image 480i, 1080iLangue AnglaisPays États-UnisStatut Thématique nationale privéeSiège social New YorkSite web www.vh1.comDiffusionDiffusion Satellite, câble, IPTVmodifier - modifier le code - modifier Wikidata VH1 est une chaîne de télévision musicale américaine appartenant à Paramount Global. Le but initial de la chaîne était de faire co...

 

 

Town in Slovakia Town in SlovakiaKremnicaTownWinter in Kremnica Coat of armsKremnicaLocation of Kremnica in the Banská Bystrica RegionShow map of Banská Bystrica RegionKremnicaKremnica (Slovakia)Show map of SlovakiaCoordinates: 48°41′59″N 18°54′57″E / 48.69972°N 18.91583°E / 48.69972; 18.91583Country SlovakiaRegionBanská BystricaDistrictŽiar nad HronomFirst mentioned1328Government • MayorMartin Novodomec (KDH)Area[1] •...

Sabit DamollaSabit Damolla ppada usia 20an-30an tahun Perdana MenteriRepublik Islam Turkestan TimurMasa jabatan12 November 1933 – 6 April 1934PendahuluJabatan didirikanPenggantiJabatan ditiadakan Informasi pribadiLahirJuni 1883Atush, QingMeninggalTanggal tidak diketahui, 1934, 1941?Penjara di Ürümqi, Republik TiongkokPartai politik Komite untuk Revolusi Nasional/ Partai Nasionalis Turkistan Timur[1]Sunting kotak info • L • B Sabit Damolla (Uighur: سابىت...

 

 

Location on an airframe designed to carry an external or internal load This article is about aircraft hardpoints. For wooden workbench hardpoints, see Workbench (woodworking). For the anti-ballistic missile, see Hardpoint (missile defense). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Hardpoint – news · newspapers · ...

 

 

State park in Oregon, United States Washburne State WaysideGrove of Douglas firs at the rest stopShow map of OregonShow map of the United StatesTypePublic, stateLocationBenton and Lane counties, OregonNearest cityEugeneCoordinates44°16′53″N 123°14′42″W / 44.281512°N 123.2450951°W / 44.281512; -123.2450951[1]Area37.3 acres (15.1 ha)[2]Operated byOregon Parks and Recreation DepartmentVisitorsabout 131,000 a yearOpenyear-roundSta...

Association football stadium in Al Rayyan, Qatar Education City Stadiumاستاد المدينة التعليمية (Arabic)Interior view of the stadium before the 2022 FIFA World Cup Group H match between South Korea and Portugal.Full nameEducation City StadiumLocationEducation City,Al Rayyan, QatarCoordinates25°18′39″N 51°25′28″E / 25.3108°N 51.4244°E / 25.3108; 51.4244Public transit Education City (المدينة التعليمية)OwnerQatar Founda...

 

 

Proposed project site Dossier (11 10) The Bell Bay Pulp Mill, also known as the Tamar Valley Pulp Mill or Gunns Pulp Mill, was a proposed $2.3 billion[1] pulp mill in which the former Gunns Limited was planning to build in the Tamar Valley, near Launceston, Tasmania.[2][3][4] Gunns Limited went into voluntary administration in 2012,[5] and on 30 August 2017, the permits for the proposed building lapsed, signalling the end of the project. A Gunns s...

 

 

Questa voce sull'argomento titoli cardinalizi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Sant'EustachioDiaconia Basilica di Sant'Eustachio Titolarevacante Istituzione600 istituita da papa Gregorio I Dati dall'Annuario pontificio Manuale La diaconia di Sant'Eustachio (in latino: Diaconia Sancti Eustachii) fu eretta da papa Gregorio I intorno al 600, sul luogo dove sorgevano le terme Neroniane-Alessandrine, nella IX regione di Roma. La diaconia pre...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018) محمد البوساتي معلومات شخصية الميلاد سنة 1955 (العمر 68–69 سنة)  القنيطرة  مواطنة المغرب  الحياة الع...

 

 

See also: Government and intergovernmental reactions to the Russian invasion of Ukraine For broader coverage of this topic, see Reactions to the Russian invasion of Ukraine. vteRusso-Ukrainian War (outline) Background Dissolution of the Soviet Union Russia–Ukraine relations Budapest Memorandum 2003 Tuzla Island conflict Orange Revolution 2007 Munich speech of Vladimir Putin Russia–Ukraine gas disputes Euromaidan Revolution of Dignity Crimea Annexation Timeline Little green men Krymnash C...

 

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Literature of Kosovo – news · newspapers · books · scholar · JSTOR (August 2013) (Learn how and when to remove this message) Part of a series on theCulture of Kosovo History People Languages Mythology and folklore Cuisine Festivals Religion Art Literature Musi...

داني أينج معلومات شخصية الميلاد 17 مارس 1959 (العمر 65 سنة)يوجين الطول 6 قدم 5 بوصة (2.0 م) مركز اللعب هجوم خلفي،  ومدافع مسدد الهدف،  وقاعدي ثاني  [لغات أخرى]‏  الإقامة يوجينويليسلي  الجنسية  الولايات المتحدة الوزن 91 كيلوغرام  المدرسة الأم ثانوية شما...

 

 

Albanian daily newspaper Zëri i PopullitThe Voice of PeopleHeadquarters of Zëri i Popullit in the 1980s.TypeDaily newspaperFormatBroadsheetOwner(s)Party of Labour of Albania (1944–1992),Socialist Party of Albania (1992–2015)Editor-in-chiefAldrin DalipiFounded25 August 1942; 82 years ago (1942-08-25)Political alignmentMarxism–Leninism (historically)Social democracy (currently)LanguageAlbanianCeased publication13 November 2015 (print)HeadquartersTiranaCirculation5,167 ...