MLton Standard ML Compiler (SML Compiler) |
Dec. 26, 2009, 12:48 p.m. |
MLton Standard ML Compiler (SML Compiler) - MLTon wird ja für Ur/Web benötigt, es gibt netterweise einen Binary-Download für OS X der auch brauchbar funktioniert, wenn man die GnuMP library über MacPorts installiert hat (von dort kann man auch die mhash library installieren, die andere Voraussetzung für Ur/Web). MLton ist auch alleine schon ein interessantes Projekt, da es ein Standalone-Compiler für ML ist, welcher sehr gute Optimierungen (dafür aber auch extreme Laufzeiten für den Compiler) besitzt.
|
ML, Programmierung |
The Ur Programming Language Family |
Dec. 26, 2009, 12:17 p.m. |
The Ur Programming Language Family - interessante funktionale Programmiersprache mit integriertem XML Templating und Persistenz. Das Ziel ist es die komplette interaktive Webanwendung in einer Sprache zu schreiben. Datenmodell in der gleichen Sprache wie Templates. Alles abgesichert mit Typdeklarationen und Typinferenz - z.B. gibt es einen Funktor, mit dem aus einer in Ur geschriebenen Tabellendefinition automatisch eine komplette Administrationsoberfläche für diese Tabelle generiert wird, alles mit Absicherung gegen Code-Injection und andere übliche Angriffsszenarien. Die Sprache selber orientiert sich sehr stark an ML, übernimmt aber einige Features aus Haskell (speziell die Monads und das mächtiger Typsystem). In einigen Punkten erinnert es mich stark an Scala von den Ideen her - gute embedded languages für SQL und HTML kombiniert mit einer mächtigen funktionalen Sprache. Allerdings erzeugt der Ur Compiler direkt object code (und JavaScript für die Client Seite) und nicht Code für eine virtuelle Maschine. Und die Runtime hat keine Garbage Collection, sondern aus dem Code abgeleitetes Memory-Management (was Speicherverhalten mehr deterministisch macht). Das ganze basiert auf MLTon, einem sehr gut optimierenden ML Compiler. Irgendwie erinnert mich vieles an dem Projekt an Django - nur eben nicht dynamisch getypt, sondern statisch. Könnte durchaus interessant sein.
|
ML, Programmierung |