About: Ur (programming language)     Goto   Sponge   NotDistinct   Permalink

An Entity of Type : dbo:ProgrammingLanguage, within Data Space : dbpedia.demo.openlinksw.com associated with source document(s)
QRcode icon
http://dbpedia.demo.openlinksw.com/c/8qV7pEt3Ld

Ur also called Ur/Web is a free and open-source functional programming language specific for web development, created by at the Massachusetts Institute of Technology that from a single program produces server code, browser client code and SQL code specific for the chosen database backend. Ur supports a powerful kind of metaprogramming based on row types. This type safety is just the foundation of the Ur/Web methodology. It is also possible to use metaprogramming to build significant application pieces by analysis of type structure. The implementation of all this is open source.

AttributesValues
rdf:type
rdfs:label
  • Ur (llenguatge de programació) (ca)
  • Ur (programming language) (en)
  • Ur (编程语言) (zh)
rdfs:comment
  • Ur也叫作Ur/Web,是一个自由和开源的函数式编程语言,专门用于web开发,由Adam Chlipala在麻省理工学院创建,它从一个单一的程序产生服务器代码、web浏览器客户端代码、和特定于选择的数据库后端的SQL代码。 (zh)
  • Ur també anomenat Ur/Web és un llenguatge de programació, d'àmbit d'aplicació específic per desenvolupar aplicacions web, creat per a l'Institut Tecnològic de Massachusetts, que partint d'un únic programa, genera HTML amb codi client en JavaScript, codi nadiu per al servidor, i codi SQL per al sistema gestor de base de dades. Fa un ús extensiu dels registres, que converteix en estructures travessables, assegurant l'encaix de l'estructura dels formularis amb la dels gestors al servidor i proporciona un "Mapatge d'objectes relacional" integrat en el codi per la correcta generació de l'SQL. (ca)
  • Ur also called Ur/Web is a free and open-source functional programming language specific for web development, created by at the Massachusetts Institute of Technology that from a single program produces server code, browser client code and SQL code specific for the chosen database backend. Ur supports a powerful kind of metaprogramming based on row types. This type safety is just the foundation of the Ur/Web methodology. It is also possible to use metaprogramming to build significant application pieces by analysis of type structure. The implementation of all this is open source. (en)
foaf:name
  • Ur, Ur/Web (en)
name
  • Ur, Ur/Web (en)
dct:subject
Wikipage page ID
Wikipage revision ID
Link from a Wikipage to another Wikipage
Link from a Wikipage to an external page
sameAs
dbp:wikiPageUsesTemplate
align
  • right (en)
designer
  • Adam Chlipala (en)
family
influenced by
latest release date
latest release version
license
  • open source (en)
paradigms
platform
quote
  • Ur/Web not only makes web applications easier to write, it also makes them more secure. "Let's say you want to have a calendar widget on your web page, and you're going to use a library that provides the calendar widget, and on the same page there's also an advertisement box that's based on code that's provided by the ad network," Chlipala said. "What you don't want is for the ad network to be able to change how the calendar works or the author of the calendar code to be able to interfere with delivering the ads." (en)
released
  • December 2014 (en)
title
  • The Ur Programming Language Family (en)
width
has abstract
  • Ur també anomenat Ur/Web és un llenguatge de programació, d'àmbit d'aplicació específic per desenvolupar aplicacions web, creat per a l'Institut Tecnològic de Massachusetts, que partint d'un únic programa, genera HTML amb codi client en JavaScript, codi nadiu per al servidor, i codi SQL per al sistema gestor de base de dades. Fa un ús extensiu dels registres, que converteix en estructures travessables, assegurant l'encaix de l'estructura dels formularis amb la dels gestors al servidor i proporciona un "Mapatge d'objectes relacional" integrat en el codi per la correcta generació de l'SQL. La sintaxi es basa en la del llenguatge ML Estàndard incorporant conceptes del llenguatge Haskell. Exemple de programa amb formulari que interactua amb el servidor, encapsulant la comunicació Ajax XMLHttpRequest en la crida rpc. datatype list t = Nil | Cons of t * list ttable t : { Id : int, A : string } PRIMARY KEY Id(* accions de servidor cridades via Ajax per "rpc" més avall *)fun add id s = dml (INSERT INTO t (Id, A) VALUES ({[id]}, {[s]})) (* plantilla de codi SQL *)fun del id = dml (DELETE FROM t WHERE t.Id = {[id]})fun lookup id = ro <- oneOrNoRows (SELECT t.A FROM t WHERE t.Id = {[id]}); case ro of None => return None | Some r => return (Some r.T.A)(* "check" cridat des de "onclick", serà compilat a JavaScript *)fun check ls = case ls of Nil => return | Cons (id, ls') => ao <- rpc <| lookup id; alert (case ao of None => "Fi" | Some a => a); check ls'fun main = idAdd <- source ""; aAdd <- source ""; idDel <- source ""; return <xml><body> <button value="Check values of 1, 2, and 3" onclick={fn _ => let val llista = 1 :: 2 :: 3 :: [] in check llista end}/><br/> <br/> <button value="Add" onclick={fn _ => id <- get idAdd; a <- get aAdd; let rpc <| add intId a where val intId = readError id end}/> <ctextbox source={idAdd}/> <ctextbox source={aAdd}/><br/> <br/> <button value="Delete" onclick={fn _ => id <- get idDel; let rpc <| del intId where val intId = readError id end}/> <ctextbox source={idDel}/> body>xml> (ca)
  • Ur also called Ur/Web is a free and open-source functional programming language specific for web development, created by at the Massachusetts Institute of Technology that from a single program produces server code, browser client code and SQL code specific for the chosen database backend. 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 This type safety is just the foundation of the Ur/Web methodology. It is also possible to use metaprogramming to build significant application pieces by analysis of type structure. The Ur/Web compiler also produces very efficient object code that does not use garbage collection. The implementation of all this is open source. SQL syntax templates embedded in the language facilitate the handling of tables. Although the syntax is based on Standard ML the language includes concepts from Haskell with additional type manipulation. Ajax call/response is serialized through a monad called transaction (corresponds to Haskell's IO) and its marshalling and decoding is encapsulated in the rpc function. The browser client side includes functional reactive programming facilities using the (source a) type and a signal monad. Ur/Web not only makes web applications easier to write, it also makes them more secure. "Let's say you want to have a calendar widget on your web page, and you're going to use a library that provides the calendar widget, and on the same page there's also an advertisement box that's based on code that's provided by the ad network," Chlipala said. "What you don't want is for the ad network to be able to change how the calendar works or the author of the calendar code to be able to interfere with delivering the ads." (en)
  • Ur也叫作Ur/Web,是一个自由和开源的函数式编程语言,专门用于web开发,由Adam Chlipala在麻省理工学院创建,它从一个单一的程序产生服务器代码、web浏览器客户端代码、和特定于选择的数据库后端的SQL代码。 (zh)
file ext
  • .ur, .urs, .urp (en)
gold:hypernym
prov:wasDerivedFrom
page length (characters) of wiki page
latest release date
latest release version
  • 20200209 release
designer
Faceted Search & Find service v1.17_git147 as of Sep 06 2024


Alternative Linked Data Documents: ODE     Content Formats:   [cxml] [csv]     RDF   [text] [turtle] [ld+json] [rdf+json] [rdf+xml]     ODATA   [atom+xml] [odata+json]     Microdata   [microdata+json] [html]    About   
This material is Open Knowledge   W3C Semantic Web Technology [RDF Data] Valid XHTML + RDFa
OpenLink Virtuoso version 08.03.3331 as of Sep 2 2024, on Linux (x86_64-generic-linux-glibc212), Single-Server Edition (378 GB total memory, 56 GB memory in use)
Data on this page belongs to its respective rights holders.
Virtuoso Faceted Browser Copyright © 2009-2024 OpenLink Software