blob: dcdbaf920aba77ead2257c900cb5ace966cc6727 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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
"AJAX"-style services that the remote web server provides
* Attempt invalid SQL queries
* Use improper marshaling or unmarshaling in communication with SQL databases
or between browsers and web servers
|