Concurrent ML

Concurrent ML
Семантика Синхронная передача сообщений
Класс языка функциональный, конкурентный
Тип исполнения встраиваемый
Автор John H. Reppy
Выпуск
Система типов Хиндли—Милнера
Испытал влияние Standard ML
Повлиял на конкурентные расширения для[2]
OCaml, Haskell, Scheme, Java
Лицензия открытая
Сайт cml.cs.uchicago.edu
Платформа Standard ML
ОС кроссплатформенный

Concurrent ML (CML) — статически типизированный язык конкурентного программирования высшего порядка, встраиваемый в язык общего назначения[англ.] Standard ML[3][2].

Реализован в виде библиотеки. Входит в стандартную поставку компиляторов SML/NJ[англ.] и MLton. С минимальными изменениями CML планируется ввести в стандарт будущего языка successor ML.

Подробности

CML воплощает модель синхронной передачи сообщений, расширяя SML типизированными каналами и синхронными абстракциями первого класса, которые называются событиями. Этот механизм позволяет инкапсулировать сложные протоколы взаимодействия и синхронизации в виде объектов первого класса, поощряя сокрытие действительных каналов взаимодействия под абстрактными типами данных и улучшая за счёт этого модульность.[3][2]

CML разработан во времена, когда процессоры с поддержкой аппаратного параллелизма были роскошью, так что его ранние реализации ориентировались на физически последовательное исполнение. Впоследствии был разработан «Parallel Concurrent ML»[2], исполняемый на современных процессорах более эффективно.

Своим созданием и развитием CML в основном обязан Джону Реппи (англ. John Reppy)[4].

Реализация

Concurrent ML выделяется среди большинства встраиваемых языков тем, что имеет не единственную реализацию, а две принципиально различные. Это обусловлено различиями между реализациями Standard ML по назначению и применяемым стратегиям компиляции:

  • В компиляторе Standard ML of New Jersey[англ.] (SML/NJ) язык CML реализован посредством продолжений, то есть предоставляет платформенно-независимую многопоточность. Поскольку SML/NJ использует при компиляции стратегию программирование в стиле передачи продолжений (англ. Continuation-passing style, CPS), а сам язык SML гарантирует оптимизацию хвостовых вызовов (Tail Call Optimisation, TCO), то из результирующего кода полностью устраняется динамический стек, и распараллеленные программы получаются весьма эффективными.
  • MLton использует значительно более агрессивную оптимизацию, изначально ориентируясь на производительность программ уровня Си/C++. При таких требованиях CPS-стратегия оказывается неприменима. Но без неё каждый вызов callcc требует временных затрат, пропорциональных размеру стека, что в данном случае тем более неприемлемо. Поэтому при портировании реализация CML была переключена с продолжений на «тонкие» потоки MLton, основанные на потоках операционные системы. Как следствие, исходный код на CML под MLton портируем за счёт абстракции, но скомпилированный код уже получается специфичным для данной платформы. Потоки MLton несколько тяжеловеснее, чем продолжения в SML/NJ, но разработчики полагают, что это исправимо. MLton предоставляет базовую функциональность CML, в основном повторяющую поведение имеющейся в SML/NJ[англ.], но не реализует потоко-безопасную обёртку над Базисной библиотекой и реактивные эквиваленты функциональности модулей IO и OS.

Применение

На CML написана библиотека eXene[5], реализующая параллельную реактивную модель графического интерфейса пользователя под X Window System.

Пример кода

Программа «Hello, world!» для консоли. Здесь порождается поток, который создаёт строковый канал. Этот поток сперва порождает другой поток, который напечатает в консоль первую строку, полученную на канале, а затем посылает на этот порождённый канал строку «hello, world!».

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 (name, argv) =
         RunCML.doit ( fn () => ignore (spawn hello), NONE )
   end

Примечания

  1. 110.79 Distribution Files (англ.)
  2. 1 2 3 4 Reppy, 2009.
  3. 1 2 Reppy, Xiao, 2007.
  4. John Reppy’s homepage. Дата обращения: 24 июля 2015. Архивировано 27 июля 2015 года.
  5. eXene — multi-threaded X-Window System toolkit written in ConcurrentML. Дата обращения: 24 июля 2015. Архивировано 22 февраля 2012 года.

Литература

  • John Reppy, Claudio V. Russo, Yingqi Xiao. Parallel Concurrent ML. — International Conference on Functional Programming (ICFP), 2009.

Ссылки

Norman Ramsey. Concurrent Programming in ML // Technical Report CS-TR-262-90. — Princeton University, 1990.


Read other articles:

Untuk kegunaan lain, lihat Hampden Park (disambiguasi). Hampden ParkUEFAInformasi stadionPemilikQueen's Park F.C.OperatorHampden Park LimitedLokasiLokasiKing's Park, Glasgow SkotlandiaKonstruksiDibuka1903Direnovasi1999Data teknisPermukaanRumputKapasitas52.103PemakaiQueen's Park F.C. (1903–sekarang)Glasgow Tigers (1969–1972)Celtic (1994–1995)Scottish Claymores (1998–2004)Asosiasi Sepak Bola SkotlandiaScottish Football LeagueTim nasional sepak bola Hampden Park adalah sebuah kompleks ol...

 

Вулиця СвободиКонотоп Школа № 11 (вул. Свободи, 8)Школа № 11 (вул. Свободи, 8)Колишні назви ВокзальнаЗагальні відомостіПротяжність 1 335 мТранспортРух двостороннійПокриття асфальтЗовнішні посиланняУ проєкті OpenStreetMap пошук у NominatimМапа  Вулиця Свободи у Вікісховищі У Вікіпе...

 

Ikon Maksimus Pengaku Iman Riwayat Hidup Sang Perawan adalah karya tulis biografis tertua mengenai Santa Perawan Maria. Salinan satu-satunya dari karya tulis ini adalah terjemahan bahasa Georgia yang dinisbatkan kepada Maksimus Pengaku Iman, orang suci yang hidup pada abad ke-7, meskipun penisbatan ini tidak sepenuhnya dianggap pasti benar.[1][2] Maksimus, atau orang yang bernama samaran Maksimus, menyatakan bahwa ia menyusun biografi Santa Perawan Maria dengan memadukan berba...

Luchtopname van de campus (2017) De Campus Geesseknäppchen is een campus in het zuidwesten van Luxemburg-Stad. De campus ligt langs de Autoroute d'Esch, grotendeels in het stadsdeel Hollerich en deels in Merl. Op de campus zijn de volgende scholen gevestigd. Athénée de Luxembourg (AL) Conservatoire de Musique de la Ville de Luxembourg École de commerce et de gestion (ECG) École internationale Gaston Thorn (EIGT) École nationale pour adultes (ENAD) International School of Luxembourg (ISL...

 

Este artigo não cita fontes confiáveis. Ajude a inserir referências. Conteúdo não verificável pode ser removido.—Encontre fontes: ABW  • CAPES  • Google (N • L • A) (Novembro de 2022) NGC 1658 NGC 1658NGC 1658 Descoberto por John Herschel Data de descoberta 1 de Dezembro de 1837 Dados observacionais (J2000) Constelação Caelum Tipo espiral (Sbc) Asc. reta 04h 44m 01,1s Declinação -41° 27' 49 Distância anos-luz (kpc) Re...

 

Jazz double album For the form of gait abnormality, see High stepping gait. High StepCompilation album by Paul Chambers andJohn ColtraneReleased1975RecordedMarch 1 or 2, 1956 (1–6)April 20, 1956 (11–13)September 21, 1956 (7–10)GenreJazzLabelBlue Note Records High Step is a jazz double album credited to bassist Paul Chambers and saxophonist John Coltrane, issued in 1975 on Blue Note Records, catalogue BN-LA451. It is a compilation taken from the 1956 Chambers' Music on the Jazz West ...

2013 American film21 & OverTheatrical release posterDirected byJon LucasScott MooreWritten byJon LucasScott MooreProduced byDavid HobermanRyan KavanaughTodd LiebermanStarringMiles TellerSkylar AstinJustin ChonSarah WrightCinematographyTerry StaceyEdited byJohn RefouaMusic byLyle WorkmanProductioncompaniesVirgin ProducedMandeville FilmsSkyLand EntertainmentDistributed byRelativity MediaRelease date March 1, 2013 (2013-03-01) Running time93 minutes[1]CountryUnited Sta...

 

Cabonne Shire Council Local Government Area van Australië Locatie van Cabonne Shire Council in Nieuw-Zuid-Wales Situering Staat Nieuw-Zuid-Wales Hoofdplaats Molong Coördinaten 33°6'ZB, 148°51'OL Algemene informatie Oppervlakte 6.026,0[1] km² Inwoners 12.940 (juni 2007)[2] Overig Wards 6 Website https://www.cabonne.nsw.gov.au/ (en) Portaal    Australië Cabonne Shire Council is een Local Government Area (LGA) in Australië in de staat Nieuw-Zuid-Wales. Cabonne Sh...

 

Sello de la Diputación del General del Principado de Cataluña de finales del siglo XV que representa a su patrón portando el escudo de la Cruz de San Jorge que eran las armas de la Generalidad de Cataluña. En torno la leyenda: S(igillum) : CORTIUM : ET : PARLAMENTORUM : GENERALIUM : PRINCIPATUS : CATHALONIE ('Sello de las Cortes y el Parlamento del General del Principado de Cataluña').[1]​ La Diputación del General del Principado de Cataluña fue...

麥可·契訶夫契訶夫於1910年代男演员原文名Михаил Чехов出生米哈伊爾·亞歷山德羅維奇·契訶夫(Михаил Александрович Чехов)(1891-08-29)1891年8月29日俄羅斯圣彼得堡逝世1955年9月30日(1955歲—09—30)(64歲)美國加利福尼亚州比佛利山配偶奧爾加·契訶夫(英语:Olga Chekhova)(1914年结婚—1917年離婚)齊尼婭·卡洛芙娜·齊勒(1918年结婚)儿女阿達·切喬瓦(英语...

 

Comic book character For the Marvel Comics character, see Presence (Marvel Comics). Comics character The PresenceThe Presence in human form, from Lucifer #68 (January 2006); art by Peter Gross.Publication informationPublisherDC ComicsFirst appearanceMore Fun Comics #52 (February 1940)Created byJerry Siegel (writer)Bernard Baily (artist)In-story informationNotable aliasesYahweh, Jehovah, ElohimAbilities Omnipotence Omnipresence Omniscience Absolute immortality The Presence is a fictional chara...

 

Smartwatch by Samsung This article is about the smartwatch introduced in 2018. For later devices, see Samsung Galaxy Watch series. For the mobile phone known as SCH-R810, see Samsung R810 Finesse. Samsung Galaxy Watch (SM-R800/R810)DeveloperSamsung ElectronicsManufacturerSamsung ElectronicsProduct familySamsung Galaxy Watch seriesTypeSmartwatchRelease date9 August 2018 (US)PredecessorSamsung Gear S3 Samsung Gear SportSuccessorSamsung Galaxy Watch 3RelatedSamsung Galaxy Watch ActiveWebsiteOffi...

1998 single by Janet Jackson Every TimeU.S. promotional coverSingle by Janet Jacksonfrom the album The Velvet Rope B-sideAccept MeReleasedMarch 25, 1998 (1998-03-25)GenrePopLength4:17LabelVirginSongwriter(s) Janet Jackson James Harris III Terry Lewis René Elizondo Jr. Producer(s) Janet Jackson Jimmy Jam and Terry Lewis Janet Jackson singles chronology You (1998) Every Time (1998) What's It Gonna Be?! (1999) Music videoEvery Time on YouTube Every Time is a song by American sing...

 

Douglas College Fundação 1970 Tipo de instituição colégio, universidade pública Localização New Westminster, CoquitlamCanadá Website oficial [edite no Wikidata] O Douglas College é a maior instituição universitária de graduação universitária na Colúmbia Britânica, Canadá. Perto de 17.000 estudantes de crédito, 8.500 estudantes de educação continuada e 4.210 estudantes internacionais estão matriculados lá. O Douglas College oferece bacharelado e cursos universitári...

 

Italian-American restaurant located in Dallas, Texas, US 32°50′11″N 96°46′18″W / 32.836338°N 96.771688°W / 32.836338; -96.771688 Campisi's Egyptian RestaurantRestaurant informationEstablished1946CityDallasStateTexasCountryU.S.WebsiteCampisi's Restaurant Campisi's Restaurant is an Italian-American restaurant located on Mockingbird Lane in Dallas, Texas,[1] USA offering a self-described Roman cuisine. Carlos Campisi and his wife, Antonina Cammarata, e...

Vyacheslav VoroninBornVyacheslav Anatolyevich Voronin(1934-11-07)November 7, 1934Zherdevsky District, Tambov Oblast, RSFSR, Soviet UnionDiedOctober 7, 2016(2016-10-07) (aged 81)Kyiv, UkraineOccupationactorYears active1957—2016AwardsMerited Artist of Ukraine (2003) Vyacheslav Anatolyevich Voronin (Russian: Вячеслав Анатольевич Воронин, Ukrainian: В'ячеслав Анатолійович Воронін); November 7, 1934, Zherdevsky District, Tambov Oblas...

 

Гімнастикана XXXI Олімпійських іграх Місце проведення Олімпійська арена Ріо, Ріо-де-ЖанейроДати6 серпня 2016 — 21 серпня 2016← 20122020 → Гімнастика налітніх Олімпійських іграх 2016 Спортивна гімнастика Кваліфікаційний раунд чоловіки жінки Командна першість чоловіки жін...

 

Fictional character appearing in American comic books published by Marvel Comics Comics character BeastThe different forms of Beast on the cover of Powers of X #2 (August 2019)Art by Patrick ZircherPublication informationPublisherMarvel ComicsFirst appearanceX-Men #1 (September 1963)Created byStan Lee (writer/editor)Jack Kirby (artist/co-plotter)In-story informationAlter egoHenry Philip Hank McCoySpeciesHuman mutantTeam affiliationsX-MenAvengersDefendersX-FactorIlluminatiSecret AvengersNotabl...

Sharjah FC نادي الشارقة لكرة القدمNama lengkapSharjah Football ClubJulukanAl Malek (The King)Berdiri1966[1]StadionSharjah Stadium(Kapasitas: 20,000[2])PemilikSultan Al QasimiKetuaSalim Obaid Al ShamsiManajerAbdulaziz Al YassiLigaUAE Pro League2022–23ke-7Situs webSitus web resmi klub Kostum kandang Kostum tandang Musim ini Sharjah FC[3] adalah klub sepak bola Uni Emirat Arab yang bermain di UAE Arabian Gulf League. Berbasis di kota Sharjah. Pa...

 

Mythological antecedence of the Germanic people The Nordic Indo-Germanic people is a mythological group, from which the Germanic peoples allegedly descended. The assumption of the existence of this primordial people was developed by nationalists in the German territories from the early 19th century onwards, and was the subject of intense research in both the 19th and 20th centuries. Nineteenth-century German philologists, ethnologists and historians initially focused their research on the Eas...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!