www.wikidata.de-de.nina.az
Standard ML SML ist eine von ML abstammende funktionale Programmiersprache mit einigen imperativen Merkmalen zum Beispiel im Bereich File IO Standard MLParadigmen funktionalErscheinungsjahr 1990Entwickler Robin MilnerAktuelle Version 97 1997 Typisierung stark statisch implizitWichtige Implementierungen HaMLet Moscow ML MLj ML Kit MLton MLWorks Poly ML Poplog Standard ML SML NJ SOSMLBeeinflusst von MLBeeinflusste Ocaml Haskell Rustwww standardml orgML Schopfer Robin Milner schlug SML 1983 vor um die verschiedenen Dialekte von ML zu standardisieren Die Sprache wurde von 1984 bis 1988 entwickelt und schliesslich 1990 von Robin Milner Mads Tofte und Robert Harper formalisiert 1997 wurde mit SML 97 eine Revision der Sprache veroffentlicht die neben einigen Vereinfachungen auch eine SML Basisbibliothek enthalt Wichtige Merkmale von SML sind unter anderem die statische Typisierung Polymorphie auf Funktions und Datentypsebene automatische Speicherbereinigung sowie strenge Auswertung und Ausnahmebehandlung Ausserdem unterstutzt SML Funktionen hoherer Ordnung Module und sogenannte Funktoren die hier parametrisierte Datentypen bezeichnen Eine Besonderheit von SML ist dass die Sprache vollstandig formal definiert ist Dadurch konnen wichtige Eigenschaften der Sprache mathematisch bewiesen werden Inhaltsverzeichnis 1 Programmbeispiele 1 1 Rekursive Berechnung der Fakultat 1 2 Rekursive Berechnung der Fibonaccizahlen 1 3 Die Stelligkeit einer Zahl 1 4 Die Quersumme einer Zahl 1 5 Die Faltungsprozedur foldl fur Listen 1 6 Das Umwandeln eines Strings der eine Zahl darstellt zu Int 1 7 Insertsort 1 8 Mergesort 1 9 in situ Reversierung eines Arrays 2 Implementierungen 3 Literatur 4 WeblinksProgrammbeispiele BearbeitenRekursive Berechnung der Fakultat Bearbeiten Die Fakultat einer naturlichen Zahl kann man in SML mittels folgenden Programms berechnen fun fak n if n lt 1 then 1 else n fak n 1 Rekursive Berechnung der Fibonaccizahlen Bearbeiten Die n te Fibonacci Zahl kann man in SML mittels folgenden Programms berechnen fun fib 0 0 fib n if n lt 2 then 1 else fib n 1 fib n 2 Die Stelligkeit einer Zahl Bearbeiten fun stell x int if x lt 1 then 0 else stell x div 10 1 Die Quersumme einer Zahl Bearbeiten fun quer x int if x lt 1 then 0 else quer x div 10 x mod 10 Die Faltungsprozedur foldl fur Listen Bearbeiten fun foldl f s nil s foldl f s x xr foldl f f x s xr Das Umwandeln eines Strings der eine Zahl darstellt zu Int Bearbeiten fun toInt x foldl fn i k gt ord i ord 0 k 10 0 explode x Insertsort Bearbeiten fun insert x nil x insert x y yr if x lt y then x y yr else y insert x yr fun isort xs foldl insert nil xs Mergesort Bearbeiten fun split xs foldl fn i ys zs gt zs i ys nil nil xs fun merge xs nil xs merge nil ys ys merge x xr y yr if x lt y then x merge xr y yr else y merge x xr yr fun mergesort nil nil mergesort x x mergesort xs let val ys zs split xs in merge mergesort ys mergesort zs end in situ Reversierung eines Arrays Bearbeiten fun reverse a let fun swap l r let val vl Array sub a l val vr Array sub a r in if l gt r then else Array update a l vr Array update a r vl swap l 1 r 1 end in swap 0 Array length a 1 end Implementierungen BearbeitenEs existieren verschiedene Compiler fur SML die entweder Bytecode oder Maschinencode generieren Die Referenzimplementierung ist SML NJ Sml2c ist ein besonderer Compiler der SML in C Code ubersetzt HaMLet MLton stark optimierender Compiler Moscow ML alte Webseite verfugbar unter http www itu dk sestoft mosml html Standard ML of New Jersey Alice ML Poly ML sml2c C Code SML NET Bytecode Poplog IDE fur Forschung und Lehre im Bereich Kunstliche Intelligenz CakeML SOSMLLiteratur BearbeitenRobin Milner Mads Tofte Robert Harper D MacQueen The Definition of Standard ML Revised MIT Press 1997 ISBN 0 262 63181 4 offizielle Sprachdefinition Gert Smolka Programmierung eine Einfuhrung in die Informatik mit Standard ML Oldenbourg Wissenschaftsverlag Munchen 2008 ISBN 978 3 486 58601 5Weblinks BearbeitenMads Tofte Standard ML Language In Scholarpedia englisch inkl Literaturangaben Robert Harper Programming in Standard ML PDF 756 kB Programming in Standard ML 97 A Tutorial Introduction The Standard ML Basis LibraryNormdaten Sachbegriff GND 4295302 9 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Standard ML amp oldid 207818172