Ur (programming language) (original) (raw)
Ur也叫作Ur/Web,是一个自由和开源的函数式编程语言,专门用于web开发,由Adam Chlipala在麻省理工学院创建,它从一个单一的程序产生服务器代码、web浏览器客户端代码、和特定于选择的数据库后端的SQL代码。
Property | Value | |||
---|---|---|---|---|
dbo: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" |
dbo:designer | dbr:Adam_Chlipala | |||
dbo:influencedBy | dbr:ML_(programming_language) dbr:Haskell_(programming_language) | |||
dbo:latestReleaseDate | 2020-02-09 (xsd:date) | |||
dbo:latestReleaseVersion | 20200209 release | |||
dbo:license | dbr:Open-source_software | |||
dbo:wikiPageExternalLink | http://impredicative.com/ur http://www.impredicative.com/wiki/index.php/Special:AllPages http://www.impredicative.com/wiki/index.php/Libraries_and_FFI_bindings https://github.com/urweb/urweb https://github.com/urweb/urweb/blob/master/lib/ur/basis.urs https://github.com/urweb/urweb/tree/master/lib/ur https://github.com/urweb/urweb/tree/master/tests | |||
dbo:wikiPageID | 44948462 (xsd:integer) | |||
dbo:wikiPageLength | 11835 (xsd:nonNegativeInteger) | |||
dbo:wikiPageRevisionID | 1055174962 (xsd:integer) | |||
dbo:wikiPageWikiLink | dbr:Parsing dbc:ML_programming_language_family dbc:Massachusetts_Institute_of_Technology_software dbr:Dynamic_web_page dbc:Functional_languages dbr:Massachusetts_Institute_of_Technology dbr:SQL dbr:Free_Software dbr:Front_and_back_ends dbr:Monad_(functional_programming) dbr:ML_(programming_language) dbr:Standard_ML dbr:Common_Gateway_Interface dbr:Functional_programming dbr:Web_browser dbr:Garbage_collection_(computer_science) dbr:Ajax_(programming) dbr:Database dbr:Form_(HTML) dbr:POSIX dbr:FastCGI dbr:Web_development dbr:Functional_programming_language dbr:HTML dbr:Haskell_(programming_language) dbr:Code_injection dbr:Metaprogramming dbr:Opa_(programming_language) dbr:Open-source_software dbr:Reactive_programming dbr:Marshalling_(computer_science) dbr:Type_safety dbr:Server_(computing) dbr:SQL_database dbr:Web_servers dbr:Adam_Chlipala dbr:Dark_(programming_language) | |||
dbp:align | right (en) | |||
dbp:designer | Adam Chlipala (en) | |||
dbp:family | dbr:ML_(programming_language) | |||
dbp:fileExt | .ur, .urs, .urp (en) | |||
dbp:influencedBy | dbr:ML_(programming_language) dbr:Haskell_(programming_language) | |||
dbp:latestReleaseDate | 2020-02-09 (xsd:date) | |||
dbp:latestReleaseVersion | 20200209 (xsd:integer) | |||
dbp:license | open source (en) | |||
dbp:name | Ur, Ur/Web (en) | |||
dbp:paradigms | dbr:Functional_programming dbr:Reactive_programming | |||
dbp:platform | dbr:POSIX | |||
dbp: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) | |||
dbp:released | December 2014 (en) | |||
dbp:title | The Ur Programming Language Family (en) | |||
dbp:width | 50.0 (dbd:perCent) | |||
dbp:wikiPageUsesTemplate | dbt:Infobox_programming_language dbt:Not_a_typo dbt:Quote_box dbt:Start_date_and_age dbt:Url dbt:Programming_languages | |||
dct:subject | dbc:ML_programming_language_family dbc:Massachusetts_Institute_of_Technology_software dbc:Functional_languages | |||
gold:hypernym | dbr:Language | |||
rdf:type | owl:Thing dbo:Language schema:Language wikidata:Q315 wikidata:Q9143 dbo:ProgrammingLanguage | |||
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) | |||
rdfs:label | Ur (llenguatge de programació) (ca) Ur (programming language) (en) Ur (编程语言) (zh) | |||
owl:sameAs | freebase:Ur (programming language) yago-res:Ur (programming language) wikidata:Ur (programming language) dbpedia-ca:Ur (programming language) dbpedia-zh:Ur (programming language) https://global.dbpedia.org/id/owN5 | |||
prov:wasDerivedFrom | wikipedia-en:Ur_(programming_language)?oldid=1055174962&ns=0 | |||
foaf:isPrimaryTopicOf | wikipedia-en:Ur_(programming_language) | |||
foaf:name | Ur, Ur/Web (en) | |||
is dbo:wikiPageDisambiguates of | dbr:UR | |||
is dbo:wikiPageRedirects of | dbr:Ur/Web | |||
is dbo:wikiPageWikiLink of | dbr:List_of_programming_languages_by_type dbr:Opa_(programming_language) dbr:UR dbr:Ur/Web | |||
is foaf:primaryTopic of | wikipedia-en:Ur_(programming_language) |