diff --git a/arrows/index.html b/arrows/index.html index 32957ce..0021477 100644 --- a/arrows/index.html +++ b/arrows/index.html @@ -1,43 +1,50 @@ - - + + + + The Arrow Calculus - - + + - -

The Arrow Calculus

+
+ +

The Arrow Calculus

+
+
+
+

Abstract

+

+ We introduce the arrow calculus, a metalanguage for manipulating Hughes's arrows with close relations both to Moggi's metalanguage + for monads and to Paterson's arrow notation. +

+
-
-

Abstract

- We introduce the arrow calculus, a metalanguage for manipulating - Hughes's arrows with close relations both to Moggi's metalanguage - for monads and to Paterson's arrow notation. +
+

Paper

+

+ The Arrow Calculus. Sam Lindley, Philip Wadler, and Jeremy Yallop. Journal + of Functional Programming, January 2010. +

+
-

-

Paper

-The Arrow Calculus. -Sam Lindley, Philip Wadler, and Jeremy Yallop. - Journal of Functional Programming, January 2010. -

+
+

Tech report

+

+ The Arrow Calculus, Sam Lindley, Philip Wadler, and Jeremy Yallop. + Tech report, 2008. +

+
-

-

Tech report

-The Arrow Calculus, -Sam Lindley, Philip Wadler, and Jeremy Yallop. -Tech report, 2008. -

- -

-

Related

: - - Idioms are oblivious, arrows are meticulous, monads are promiscuous. -Sam Lindley, Philip Wadler, and Jeremy Yallop. -In the proceedings of MSFP 2008. ENTCS. - - -
-
- - +
+

Related

+

+ + Idioms are oblivious, arrows are meticulous, monads are promiscuous. Sam Lindley, Philip Wadler, and Jeremy + Yallop. In the proceedings of MSFP 2008. ENTCS. +

+
+
+ + \ No newline at end of file diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..d598a0c --- /dev/null +++ b/css/style.css @@ -0,0 +1,267 @@ +body { + margin: 0; + padding: 0; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; +} + +a { + text-decoration: none; + color: #091F3F; + border-bottom: thin dotted #091F3F; +} + +a:hover { + color: #DF1E36; + border-color: #DF1E36; +} + +ul { + list-style-type: square; +} + +body.splash { + background: url(../img/bg2.jpg) no-repeat top center fixed; + /* @TODO replace with image that is guaranteed to be free to use by copyright */ + background-size: cover; +} + +nav { + display: flex; + max-width: 960px; + margin: 0 auto; + padding: 2rem 1rem; + justify-content: space-between; + align-items: center; +} + +nav ul { + display: block; + padding: 0; + margin: 0; +} + +nav li { + display: inline-block; +} + +nav li a { + display: block; + padding: .5rem; + text-decoration: none; + font-weight: 700; + font-size: 1.25rem; + text-transform: uppercase; + border: none; +} + +nav li a .fa { + font-size: 2rem; +} + +.logo { + display: flex; + align-items: center; +} + +.logo img { + width: 4rem; +} + +nav h1 { + display: inline-block; + color: #fff; + font-size: 1.5rem; + margin-left: 1rem; + font-weight: normal; +} + +.logo { + width: 4rem; + height: 4rem; + margin-right: 1rem; +} + +header { + box-sizing: border-box; + display: flex; + align-items: center; + padding: 0 .5rem; +} + +header.poster { + max-width: initial; + flex-direction: column; + min-height: calc(100vh - 14rem); + justify-content: center; + padding: 2rem 0 4rem 0; + background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%); /* FF3.6-15 */ + background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#a6000000',GradientType=0 ); /* IE6-9 */ +} + +header.poster h1 { + font-size: 2rem; + display: block; + padding: 4rem 10vw; + color: #fff; +} + +header.poster .links { + width: auto; + display: block; + max-width: 20rem; + margin: 0 auto; +} + + +header.poster .links a { + display: inline-block; + color: #fff; + text-decoration: none; + padding: .5rem .5rem .5rem 0; +} + +header.poster .links a:not(.btn) { + font-style: italic; + border-bottom: thin solid #fff; + padding: .5rem 0 0 0; + margin-bottom: .5rem; +} + +header.poster .links a.btn { + display: flex; + background-color: #DF1E36; + font-size: 1.5rem; + padding: .75rem 4rem; + margin-right: 1rem; + font-weight: bold; + text-align: center; + height: 3rem; + flex-direction: column; + align-items: center; + justify-content: center; +} + +header.poster a.btn:hover { + background-color: #BC1D31; +} + +header.poster a .fa { + float: left; +} + +header.poster a small { + display: block; + font-size: .8rem; +} + +.quick-install-info { + display: block; + margin-right: 1rem; + color: #fff; +} + +header code { + background-color: #333; + color: #DF1E36; + padding: .5rem; + display: block; + border-radius: 2px; + box-shadow: + 0 1px 3px rgba(0, 0, 0, .05), + 0 2px 6px rgba(0, 0, 0, .1), + 0 3px 12px rgba(0, 0, 0, .15); + width: auto; + margin: 0 1.5rem 0 .5; +} + +@media (min-width: 32rem) { + header.poster h1 { + font-size: 3rem; + max-width: 60vw; + } + + header.poster .links { + max-width: initial; + margin: 0; + width: auto; + align-self: flex-end; + margin-right: 10vw; + display: flex; + } + + header.poster .links a.btn { + color: #fff; + text-decoration: none; + padding: .75rem 4rem; + } + +} + +main { + min-height: 100vh; + background-color: #fff; + padding: 0; + margin-top: 2rem; +} + +.poster + main { + margin-top: 0; +} + +main section { + max-width: 960px; + margin: 0 auto; + padding: 1rem; +} + +figcaption { + font-size: .8rem; +} + +.figure-group { + display: flex; + justify-content: center; + flex-direction: row; + width: 100%; + background-color: #eee; + text-align: center; + margin: 1rem auto; + padding: 1rem 0; +} + +main figure img { + max-width: 100%; +} + +@media (min-width: 32rem) { + main figure { + max-width: 512px; + } +} + +main li { + padding: .5rem 0; +} + +h2 { + color: #333; + text-align: center; + font-size: 2rem; + margin: 0; + padding: 1rem .5rem .5rem .5rem; +} + +h3 { + text-align: center; +} + +header { + max-width: calc(960px + 12rem); + margin: 0 auto; +} + +a.dead { + text-decoration: line-through; +} \ No newline at end of file diff --git a/formlets/index.html b/formlets/index.html index 6aaf1f5..40c7b4c 100644 --- a/formlets/index.html +++ b/formlets/index.html @@ -1,81 +1,77 @@ - + - - -The Essence of Form Abstraction. Cooper, Lindley, Wadler, Yallop. 2008. - - - + + + + The Essence of Form Abstraction. Cooper, Lindley, Wadler, Yallop. 2008. + + + +
+ +

The essence of form abstraction

+
+
- -

The essence of form abstraction

+
+

Abstract

+ Abstraction is the cornerstone of high-level programming; HTML forms are the principal medium of web interaction. However, + most web programming environments do not support abstraction of form components, leading to a lack of compositionality. + Using a semantics based on idioms, we show how to support compositional form construction and give a convenient syntax. +
-
+
+

Full text

+ The Essence of Form Abstraction (APLAS 2008) + (PDF). +
-

-

Abstract

-Abstraction is the cornerstone of high-level programming; HTML forms -are the principal medium of web interaction. However, most web -programming environments do not support abstraction of form -components, leading to a lack of compositionality. Using a semantics -based on idioms, we show how to support compositional form -construction and give a convenient syntax. -

+
+

Tech report

+ An idiom's guide to formlets. Contains full details of the validation extension, + amongst other things. +
-

-

Full text

-The Essence of Form Abstraction (APLAS 2008) (PDF). -

+
+

Source code

Complete OCaml code for formlets including all extensions described in the paper. +
-

-

Tech report

-An idiom's guide to formlets. -Contains full details of the validation extension, amongst other things. -

+
+

Related

+ +
- -

- -

Citation


- -Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. -"The essence of form -abstraction." In Proceedings of the Sixth Asian Symposium on -Programming Languages and Systems, 2008. -

-

-Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. -"An idiom's guide to formlets." -Technical report, University of Edinburgh, 2008. -

-

-

BibTeX

-
+        

BibTeX

+
 @inproceedings{CLWY08essence,
   title = {The essence of form abstraction},
   author = {Ezra Cooper and Sam Lindley and Philip Wadler and Jeremy Yallop},
@@ -89,9 +85,7 @@ 

BibTeX

year = {2008} }
-

- -
- -
- + +
+ + \ No newline at end of file diff --git a/arthurs-seat.jpg b/img/arthurs-seat.jpg similarity index 100% rename from arthurs-seat.jpg rename to img/arthurs-seat.jpg diff --git a/img/bg2.jpg b/img/bg2.jpg new file mode 100644 index 0000000..156e441 Binary files /dev/null and b/img/bg2.jpg differ diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000..69bec16 Binary files /dev/null and b/img/logo.png differ diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 0000000..e340fbb --- /dev/null +++ b/img/logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/index.html b/index.html index 0a814b4..f4ae808 100644 --- a/index.html +++ b/index.html @@ -1,180 +1,212 @@ - + - Links - - - + + + The Links Programming Language + + - -

Links: Linking Theory to Practice for the Web

-
-

- Links is a functional programming language designed to - make web programming easier. -

- -

Links eases building interactive web applications with - significant client- and server-side components.

-

- A typical, modern web program involves many "tiers": part of - the program runs in the web browser, part runs on a web - server, and part runs in back-end systems such as a relational - database. To create such a program, the programmer must - master a myriad of languages: the logic is written in a - mixture of Java, Python, and Perl; the presentation in HTML; - the GUI behavior in Javascript; and the queries are written in - SQL or XQuery. There is no easy way to link these, for - example, to be sure that an HTML form or an SQL query produces - the type of data that the Java code expects. This problem is - called the impedance mismatch problem. -

-

- Links eases the impedance mismatch problem by providing a - single language for all three tiers. The system generates - code for each tier; for instance, translating some code into - Javascript for the browser, some into a bytecode for the - server, and some into SQL for the database. -

-

- Links incorporates proven ideas from other programming - languages: database-query support from Kleisli, - web-interaction proposals from PLT Scheme (now Racket), and - distributed-computing support from Erlang. On top of this, it - adds some new web-centric features of its own. -

-

- The original Links development effort ended at the beginning - of 2009. In 2014 development on Links resumed with a focus on adding - session types - to Links. -

-

Demos

- Demo Links programs. - -

Install

- The latest release of Links is version 0.6.1. - -

- -

Community

- links-users mailing list -

+ + +
+

Links: Linking Theory to Practice for the Web

+ +
+
+
+

About Links

+

+ Links is a functional programming language designed to + make web programming easier. +

+

+ Links eases building interactive web applications with significant + client- and server-side components. +

+

+ A typical, modern web program involves many "tiers": part of the program + runs in the web browser, part runs on a web server, and part runs in + back-end systems such as a relational database. To create such a program, + the programmer must master a myriad of languages: the logic is written + in a mixture of Java, Python, and Perl; the presentation in HTML; the + GUI behavior in Javascript; and the queries are written in SQL or XQuery. + There is no easy way to link these, for example, to be sure that an HTML + form or an SQL query produces the type of data that the Java code expects. + This problem is called the impedance mismatch problem. +

+

+ Links eases the impedance mismatch problem by providing a single language + for all three tiers. The system generates code for each tier; for instance, + translating some code into Javascript for the browser, some into a bytecode + for the server, and some into SQL for the database. +

+

+ Links incorporates proven ideas from other programming languages: + database-query support from Kleisli, web-interaction proposals from PLT + Scheme (now Racket), and distributed-computing support from Erlang. On + top of this, it adds some new web-centric features of its own. +

+

+ The original Links development effort ended at the beginning of 2009. In + 2014 development on Links resumed with a focus on adding + session types to Links. +

+
-

Publications

+
+

Publications

-

+
  • Original grant proposal for EPSRC (2005). +
  • +
  • Letter of support from LShift
  • +
  • Letter of support from Run Deep
  • + +
    -

    Core team

    - Group photo (Nov 2006). +
    +

    Core team

    -

    -

    Visitors

    +
  • Philip Wadler.
  • +
  • Jeremy Yallop, PhD student (graduated).
  • + +
    + +
    +
    + The links team +
    The Links team on Arthur's Seat: Philip Wadler, Jeremy Yallop, Sam Lindley, Ezra Cooper. (Nov 2006)
    +
    +
    + +
    +

    Visitors

    -

    -

    Undergraduate projects

    -
      +
    + +
    +

    Undergraduate projects

    + -

    -

    MSc projects

    + +
    + +
    +

    MSc Projects

    -

    -

    Interns

    -
      +
    +
    + +
    +

    Interns

    +
    • Austėja Elvina Brasiūnaitė, Summer 2014. Elvina helped us to develop session types in Links by building and testing lots of examples.
    • Dariusz Jędrzejczak, Summer 2014. Dariusz significantly speeded up JavaScript compilation in Links and @@ -224,25 +260,29 @@

      Links: Linking Theory to Practice for the Web

    • Gabriel Radanne, Summer 2012. Gabriel extended the Links to OCaml compiler developed by Steven Holmes to handle database queries.
    • -
    -

    -

    Security

    -
      +
    +
    + +
    +

    Security

    + -

    + +
    -

    Talks

    +
    +

    Talks

    -

    -
    -
    + + + diff --git a/people.html b/people.html deleted file mode 100644 index d3b97f1..0000000 --- a/people.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - Links People - - - -

    Links People

    - The Links Team on Arthur's Seat
    - The Links team on Arthur's Seat: Philip Wadler, Jeremy Yallop, Sam Lindley, Ezra Cooper, -
    -
    - Philip Wadler, - -
    - - -Last modified: Fri Jan 23 16:37:00 GMT 2007 - - -