Standardní ML z New Jersey - Standard ML of New Jersey
Paradigma | Multi-paradigma: funkční, rozkazovací způsob |
---|---|
Stabilní uvolnění | 110.98.1 / 25. srpna 2020[1] |
Psací disciplína | silný, statický, odvozeno |
Licence | Licence podobná BSD[2] |
Přípony názvu souboru | .ml |
webová stránka | www |
Ovlivněno | |
Standardní ML | |
Ovlivněno | |
Mythryl |
Standardní ML z New Jersey (SML / NJ; Standard Meta-Language of New Jersey) je a zdarma a open-source překladač a programovací prostředí pro Standardní ML programovací jazyk. Kromě jeho runtime systém, který je napsán v C „SML / NJ je napsán ve standardu ML. To bylo původně vyvinuto společně Bell Laboratories a Univerzita Princeton.[3]
Jeho název je odkazem jak na americký stát New Jersey ve kterých se nacházejí Princeton a Bell Labs a do Standardní olej z New Jersey, slavný olej monopol počátku 20. století.
Funkce
SML / NJ rozšiřuje základní knihovnu SML'97 o několik dalších struktur nejvyšší úrovně:[4]
- Systémová informace -
SysInfo
Struktura poskytuje informace o běhovém systému, například operační systém druh, typ a verze a zda stroj podporuje či nikoli multiprocesing.[5] - Slabé ukazatele -
Slabý
struktura poskytuje podporu pro slabé ukazatele.[6] - Líné suspenze -
Pozastav
struktura implementuje pozastavení nezbytná pro líné hodnocení (naproti tomu nedočkavé hodnocení ).[7] - Překladač interní -
Interní
structure provides access to several of the compiler internals, including methods to instantiate and modify the signal table.[8] - Nebezpečný přístup -
Nebezpečný
struktura poskytuje nebezpečný přístup k datovým strukturám a funkcím runtime systému.[9] - Viditelné struktury kompilátoru - SML / NJ také zahrnuje struktury, které poskytují přístup k kompilátoru ML, který obsahuje substruktury pro profilování provádění, řízení tisku chybových zpráv kompilátoru a varování a přizpůsobitelný pěkný tisk.[10]
Kromě toho SML / NJ poskytuje některé syntaktické konstrukce, které nejsou standardními funkcemi SML'97:[4]
- Vektorové výrazy a vzory - SML / NJ umožňuje vytváření vektorů pomocí
#[exp0, exp1, ..., expn−1]
syntaxe a umožňuje na nich porovnávat vzory s analogickou syntaxí. - Nebo vzory - SML / NJ rozšiřuje syntaxi vzorů SML'97 tak, aby umožňoval shodu více vzorů v jednom pravidle, za předpokladu, že každý vzor má stejný typ, pomocí
(apat1 | ... | apatn) => exp
. - Vkládání jazyka objektu - SML / NJ poskytuje syntaxi citace / antikvóty, která umožňuje vkládání výrazů do jazyk objektu konkrétní syntaxe ve výrazech a programech ML.[11]
- Moduly vyššího řádu - SML / NJ podporuje parametrizaci funktorů tím, že umožňuje funktorům být komponentami struktur, navíc k parametrickým modulům Standard ML ve formě funktorů.
Funkce nástupce ML
S vydáním 110.81 je vývoj SML / NJ zaměřen na vývoj knihovny Standard ML Basis a podporu Nástupce ML funkce.
V aktuální verzi lze funkce nástupce ML povolit pomocí možnosti příkazového řádku -Cparser.succ-ml = true
.
Následnické dokumenty ML byly extrahovány z SML / NJ '97 TeX soubory a zpřístupněny jako GitHub úložiště dokumentů TeX, u nichž se očekává, že komunita bude spolupracovat a rozšiřovat jazyk.
HaMLet má navíc kompletní implementaci funkcí Successor ML. Takto získané praktické znalosti jsou začleněny do SML / NJ, jak se vyvíjejí prostřednictvím svých verzí.
Viz také
externí odkazy
Reference
- ^ „Standard ML of New Jersey Change Log“. www.smlnj.org.
- ^ „Standardní licence ML New Jersey“. www.smlnj.org.
- ^ „Základní informace o SML / NJ“. www.smlnj.org. Citováno 2018-09-05.
- ^ A b „SML / NJ Special Features“. www.smlnj.org. Citováno 2018-09-05.
- ^ „Podpis SYS_INFO“. www.smlnj.org. Citováno 2018-09-05.
- ^ „SLABÝ podpis“. www.smlnj.org. Citováno 2018-09-05.
- ^ „Podpis SUSP“. www.smlnj.org. Citováno 2018-09-05.
- ^ „VNITŘNÍ podpis“. www.smlnj.org. Citováno 2018-09-05.
- ^ „Nebezpečná struktura“. www.smlnj.org. Citováno 2018-09-05.
- ^ „Viditelný překladač“. www.smlnj.org. Citováno 2018-09-05.
- ^ „SML / NJ Quote / Antiquote“. www.smlnj.org. Citováno 2018-09-05.