Standard ML: Porovnání verzí

Smazaný obsah Přidaný obsah
m wikifikace
JAnDbot (diskuse | příspěvky)
m Robot: přidáno {{Autoritní data}}; kosmetické úpravy
Řádek 1:
'''Standard ML''' ('''SML''') je staticky orientovaný typově bezpečný univerzální [[programovací jazyk]], který ztělesňuje mnoho nápadů v oblasti návrhů a implementace programovacích jazyků. Podporuje polymorfní inference typů a automaticky zajišťuje efektivní správu paměti. Podporuje funkcionální programování, ale zároveň umožňuje [[imperativní programování]]. Usnadňuje programování s [[Rekurze (programování)|rekurzí]] a symbolických [[Datová struktura|datových struktur]] skrze podporu šablon (angl. „[[pattern matching]]“). Tento jazyk je vybaven rozšiřitelným mechanismem pro manipulaci [[Výjimka (programování)|výjimek]] a poskytuje flexibilní modulovací prostředky pro strukturování velkých programů. Většina implementací nabízí rozsáhlé [[Knihovna (programování)|knihovny]] a užitečné vývojové nástroje. Téměř všechny kompilátory generují nativní [[strojový kód]], a to i při interaktivním režimu [[Interpret (software)|interpreta]]. Jazyk je populární mezi informatiky, kteří kompilátory navrhují a nebo implementují.
 
SML je moderní potomek programovacího jazyka ML, který byl poprvé navržen k práci na projektu „[[Logic for Computable Functions]] (LCF)“ k dokazování teorémů. Zkratka "ML" je odvozená z anglického „[[Meta Language]]“, což přeloženo do češtiny znamená „meta jazyk“ a je výrazem z oblasti jazykové logiky. V němž jsou analyzovány i jiné jazyky (formální nebo neformální). V roce 1983, Milner<ref>Robin Milner. How ML evolved. Polymorphism: The ML/LCF/Hope Newsletter, 1(1), 1983.</ref><ref>Robin Milner. Changes to the Standard ML core language. Technical Report ECS-LFCS-87-33, Laboratory for Foundations of Computer Science, Edinburgh University, 1987</ref> napsal první návrh standardizované formy ML a během následujících tří let se vyvinul jazyk Standard ML.
 
=== Ukázky kódu ===
 
Standardní ML je standardizovaný [[Funkcionální programování|funkcionální programovací jazyk]] s některými „nečistými“ rysy (angl. „impure features“), které umožňuji vedlejší účinky (angl. „side effects“). Jako všechny funkcionální jazyky, klíčovým a základním prvkem Standard ML je [[Funkce (programování)|funkce]]. Zde je příklad [[Faktoriál|faktoriálnífaktoriál]] funkce:
 
fun factorial n =
Řádek 25:
 
Tři klíčová slova:
* „val“ zavádí vazbu (binding),
* „fn“ zavádí definici anonymní funkce,
* „case“ představuje sekvenci vzorů a odpovídajících výrazů. Použitím [[lokální funkce]], výše uvedenou funkci můžeme přepsat na účinnější styl rekurze, tzv. „tail recursion“:
 
Řádek 161:
== Reference ==
<references />
{{Autoritní data}}
 
[[Kategorie:Programovací jazyky]]