2012-04-06 16:36:30 +02:00
|
|
|
Ur is a programming language in the tradition of ML and Haskell, but featuring
|
|
|
|
a significantly richer type system. Ur is functional, pure, statically-typed,
|
|
|
|
and strict. Ur supports a powerful kind of metaprogramming based on row types.
|
|
|
|
|
|
|
|
Ur/Web is Ur plus a special standard library and associated rules for parsing
|
|
|
|
and optimization. Ur/Web supports construction of dynamic web applications
|
|
|
|
backed by SQL databases. The signature of the standard library is such that
|
|
|
|
well-typed Ur/Web programs "don't go wrong" in a very broad sense. Not only do
|
|
|
|
they not crash during particular page generations, but they also may not:
|
|
|
|
|
|
|
|
* Suffer from any kinds of code-injection attacks
|
|
|
|
* Return invalid HTML
|
|
|
|
* Contain dead intra-application links
|
|
|
|
* Have mismatches between HTML forms and the fields expected by their
|
|
|
|
handlers
|
|
|
|
* Include client-side code that makes incorrect assumptions about the
|
2012-06-04 01:30:16 +02:00
|
|
|
"AJAX"-style services that the remote web server provides
|
2012-04-06 16:36:30 +02:00
|
|
|
* Attempt invalid SQL queries
|
|
|
|
* Use improper marshaling or unmarshaling in communication with SQL databases
|
|
|
|
or between browsers and web servers
|
|
|
|
|
2012-08-11 07:42:47 +02:00
|
|
|
WWW: http://www.impredicative.com/ur/
|