-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathindex.html
473 lines (463 loc) · 24.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name=viewport content="width=device-width, initial-scale=1">
<title>The Links Programming Language</title>
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css">
</head>
<body class="splash">
<nav>
<div class="logo">
<img class="logo" src="img/logo.svg">
<h1>Links</h1>
</div>
<ul>
<li><a href="https://github.com/links-lang/"><i class="fa fa-github"></i></a></li>
</ul>
</nav>
<header class="poster">
<h1>Links: Linking Theory to Practice for the Web</h1>
<div class="links">
<div>
<a href="https://github.com/links-lang/links/blob/master/INSTALL.md" class="btn">Get Links<small>0.9.7 - Burghmuirhead</small></a>
<div class="quick-install-info">
Install with <a href="http://opam.ocaml.org/">OPAM</a>
<code>opam install links</code>
See the <a href="https://github.com/links-lang/links/blob/master/INSTALL.md">Links OPAM install instructions</a>
</div>
</div>
<div>
<a class="btn" href="http://links-lang.org/quick-help.html">Docs</a>
<a href="http://examples.links-lang.org:8080/main">Demo programs</a>
<a href="http://lists.inf.ed.ac.uk/mailman/listinfo/links-users">links-users mailing list</a>
</div>
</div>
</header>
<main>
<section class="desc-section">
<h2>About Links</h2>
<p>
<em>Links is a functional programming language designed to
make web programming easier.</em>
</p>
<p>
Links eases building interactive web applications with significant
client- and server-side components.
</p>
<p>
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 may
be written in Java; the presentation in HTML and CSS; the
GUI behavior in Javascript; and the queries in SQL. 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
<em>impedance mismatch problem</em>.
</p>
<p>
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.
</p>
<p>
Links incorporates proven ideas from other programming
languages: database-query support from Kleisli,
web-interaction proposals from Racket, and
distributed-computing support from Erlang. On top of this,
it adds new web-centric features of its own.
</p>
<p>
The initial Links development effort was funded by EPSRC grant
<a href="https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/D046769/1">EP/D046769/1</a>
from 2005-2009. In 2014 development on Links resumed with a
focus on adding
<a href="http://groups.inf.ed.ac.uk/abcd">session types</a>
to Links, funded by EPSRC Programme Grant "From Data Types to Session Types: A Basis for Concurrency and Distribution"
(<a href="https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/K034413/1">EP/K034413/1</a>).
Other active areas of research which are driving
Links development include work on adding algebraic effects
and effect handlers to Links (UKRI Future Leaders Fellowship <a href="https://effect-handlers.org/">EHOP</a>, grant number MR/T043830/1) and
the <a href="http://homepages.inf.ed.ac.uk/jcheney/group/skye.html">Skye</a>
project, which builds on Links to support scientific data
curation (funded by the European Research Council, grant number 682315).
</p>
</section>
<section class="publications-section">
<h2>Publications</h2>
<ul>
<li><a href="https://doi.org/10.1145/3632896">Soundly Handling Linearity</a>. Wenhao Tang, Daniel Hillerström, Sam Lindley, and J. Garrett Morris. POPL 2024 (distinguished paper).
</li>
<li><a href="https://arxiv.org/abs/2210.12077">Language-Integrated Query for Temporal Data</a>. Simon Fowler, Vashti Galpin, and James Cheney. GPCE 2022.</li>
<li><a href="https://arxiv.org/abs/2107.10793">A Typed Slicing Compilation of the Polymorphic RPC Calculus</a>.
Kwanghoon Choi, James Cheney, Sam Lindley, and Bob Reynders.
PPDP 2021.
</li>
<li><a href="https://arxiv.org/abs/2107.11347">Comprehending Nulls</a>. James Cheney and Wilmer Ricciotti.
<a href="https://sites.google.com/view/dbpl2021">DBPL 2021</a>.
</li>
<li><a href="https://arxiv.org/abs/2106.00412">Curating Covid-19 data in Links</a>.
Vashti Galpin and James Cheney. IPAW 2021 demo paper.
</li>
<li>
<a href="https://doi.org/10.2218/ijdc.v15i1.717">Cross-tier web programming for curated databases: a case study</a>. Simon Fowler, Simon Harding, Joanna Sharman, and James Cheney. Pre-proceedings, <a href="https://www.dcc.ac.uk/events/idcc20">IDCC 2020</a>.
</li>
<li><a href="https://arxiv.org/abs/2101.04102">Query Lifting: Language-integrated query for heterogeneous nested collections</a>.
Wilmer Ricciotti and James Cheney. ESOP 2021.
</li>
<li>
<a href="https://arxiv.org/abs/2007.00605">Effects for
Efficiency: Asymptotic Speedup with First-Class
Control</a>. Daniel Hillerström, Sam Lindley, and
John Longley. <a href="https://icfp20.sigplan.org/">ICFP
2020</a>.
</li>
<li>
<a href="https://arxiv.org/abs/1910.10988">A
Polymorphic RPC Calculus</a>. Kwanghoon Choi, James
Cheney, Simon Fowler, and Sam Lindley. Science of
Computer Programming 197:102499, October 2020.
Preliminary version presented at SBMF 2019.
<li>
<a href="https://doi.org/10.4230/LIPIcs.FSCD.2020.28">Strongly
Normalizing Higher-Order Relational Queries</a>. Wilmer
Ricciotti and James Cheney. <a href="https://fscd2020.org/">FSCD 2020</a>.
<li>
<a href="https://doi.org/10.4230/LIPIcs.ECOOP.2020.14">Model-View-Update-Communicate: Session Types meet the Elm Architecture</a>.
Simon Fowler.
<a href="http://2020.ecoop.org/">ECOOP 2020</a>.
</li>
<li>
<a href="https://arxiv.org/abs/2003.02191">Language-Integrated
Updatable Views</a>. Rudi Horn, Simon Fowler and James
Cheney. Post-proceedings of IFL 2019.
<li>
<a href="https://doi.org/10.1145/3385412.3386003">FreezeML: Complete and Easy Type Inference for First-Class Polymorphism</a>.
Frank Emrich, Sam Lindley, Jan Stolarek, James Cheney, and Jonathan Coates.
<a href="https://conf.researchr.org/home/pldi-2020">PLDI 2020</a>.
</li>
<li>
<a href="http://homepages.inf.ed.ac.uk/slindley/papers/ehgc.pdf">Effect handlers via generalised continuations</a>.
Daniel Hillerström, Sam Lindley, and Robert Atkey.
<a href="https://www.cambridge.org/core/journals/journal-of-functional-programming">JFP special issue on effect handlers 2020</a>.
</li>
<li>
<a href="https://arxiv.org/abs/1905.02051">Language-integrated provenance by trace analysis</a>, Stefan Fehrenbach and James Cheney. <a href="https://pldi19.sigplan.org/home/dbpl-2019">DBPL 2019</a>.
</li>
<li>
<a href="https://doi.org/10.1145/3315507.3330202">Mixing Set and Bag Semantics</a>.
Wilmer Ricciotti and James Cheney.
<a href="https://pldi19.sigplan.org/home/dbpl-2019">DBPL 2019</a>.
</li>
<li>
<a href="http://www.simonjf.com/writing/zap.pdf">Exceptional Asynchronous Session Types: Session Types without Tiers</a>.
Simon Fowler, Sam Lindley, J. Garrett Morris, and Sára Decova.
<a href="http://popl19.sigplan.org/">POPL 2019</a>.
</li>
<li>
<a href="http://homepages.inf.ed.ac.uk/slindley/papers/shallow-extended.pdf">Shallow Effect Handlers</a>.
Daniel Hillerström and Sam Lindley.
<a href="http://aplas2018.org/">APLAS 2018</a>.
</li>
<li>
<a href="https://arxiv.org/abs/1807.01948">Incremental Relational Lenses</a>.
Rudi Horn, Roly Perera, and James Cheney.
<a href="https://conf.researchr.org/home/icfp-2018">ICFP 2018</a>.
</li>
<li>
<a href="https://doi.org/10.1016/j.scico.2017.08.009">Language-integrated provenance</a>.
Stefan Fehrenbach and James Cheney. Science of Computer Programming 155: 103-145 (2018).
<li>
<a href="http://homepages.inf.ed.ac.uk/slindley/papers/handlers-cps.pdf">Continuation Passing Style for Effect Handlers</a>.
Daniel Hillerström, Sam Lindley, Robert Atkey, and KC Sivaramakrishnan.
<a href="https://www.cs.ox.ac.uk/conferences/fscd2017/">FSCD 2017</a>.
</li>
<li>
<a href="http://homepages.inf.ed.ac.uk/slindley/papers/fst.pdf">Lightweight functional session types</a>.
Sam Lindley and J. Garrett Morris. In
<a href="http://www.riverpublishers.com/book_details.php?book_id=439">
Behavioural Types: from Theory to Tools</a>, River
Publishers, 2017.
</li>
<li>
<a href="papers/PPDP2016FehrenbachC.pdf">Language-integrated provenance</a>.
Stefan Fehrenbach and James Cheney. <a href="http://dx.doi.org/10.1145/2967973.2968604">PPDP 2016</a>.
</li>
<li>
<a href="https://dhil.net/research/papers/mlabstract2016.pdf">Compiling Links Effect Handlers to the OCaml Backend</a>.
Daniel Hillerström, Sam Lindley, and KC Sivaramakrishnan.
<a href="https://icfp16.sigplan.org/track/mlfamilyworkshop-2016-papers">ML Workshop 2016</a>.
</li>
<li>
<a href="https://homepages.inf.ed.ac.uk/slindley/papers/links-effect.pdf">Liberating Effects with Rows and Handlers</a>.
Daniel Hillerström and Sam Lindley. In the proceedings of
<a href="https://icfp16.sigplan.org/track/tyde-2016-papers">TyDe 2016</a>.
</li>
<li>
<a href="http://homepages.inf.ed.ac.uk/slindley/papers/effquot.pdf">Effective quotation</a>.
James Cheney, Sam Lindley, Gabriel Radanne, and Philip Wadler.
In the proceedings of
<a href="http://www.program-transformation.org/PEPM14">PEPM 2014</a>.
</li>
<li>
<a href="http://homepages.inf.ed.ac.uk/slindley/papers/shredding.pdf">
Query shredding: efficient relational evaluation of queries over nested multisets</a>.
James Cheney, Sam Lindley, and Philip Wadler.
In the proceedings of
<a href="http://www.sigmod2014.org/">SIGMOD 2014</a>.
</li>
<li>
<a href="http://homepages.inf.ed.ac.uk/slindley/papers/corelinks.pdf">
Row-based effect types for database integration</a>.
Sam Lindley and James Cheney.
In the proceedings of
<a href="http://www.cis.upenn.edu/~bcpierce/tldi12/">TLDI 2012</a>.
</li>
<li>
<a href="http://homepages.inf.ed.ac.uk/slindley/papers/dbwiki-dbpl2011.pdf">
DBWiki: a database wiki prototyped in Links</a>.
James Cheney, Sam Lindley, and Heiko Müller.
In the proceedings of
<a href="http://www.cs.cornell.edu/conferences/dbpl2011/">DBPL 2011</a>.
</li>
<li>
<a href="https://doi.org/10.1007/978-3-642-03793-1_3">The Script-Writer's Dream: How to Write Great SQL in Your Own Language, and Be Sure It Will Succeed</a>.
Ezra Cooper.
In the proceedings of <a href="">DBPL 2009</a>
</li>
<li>
<a href="https://doi.org/10.1145/1599410.1599439">The RPC calculus</a>.
Ezra Cooper, Philip Wadler.
In the proceedings of <a href="">PPDP 2009</a>
</li>
<li>
<a href="formlets/">The essence of form abstraction</a>.
Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop.
In the proceedings of
<a href="http://research.microsoft.com/~grama/APLAS2008/">APLAS 2008</a>.
</li>
<li>
<a href="papers/links-fmco06.pdf">Links: web programming without tiers</a>.
Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop.
In the proceedings of
<a href="http://fmco.liacs.nl/fmco06.html">FMCO 2006</a>, LNCS 4709.
</li>
</ul>
</section>
<section class="grant-section">
<h2>Grants</h2>
<ul>
<li><a href="https://effect-handlers.org/">EHOP</a>, UKRI Future Leaders Fellowship grant number MR/T043830/1.</li>
<li><a href="http://homepages.inf.ed.ac.uk/jcheney/group/skye.html">Skye</a>, ERC Consolidator Grant (2016-2021).</li>
<li><a href="http://groups.inf.ed.ac.uk/abcd/">A Basis for Concurrency and Distribution</a>, EPSRC Programme Grant (2013-2020).</li>
<li>Google Research Awards <em>Database Wikis</em> (2011), <em>Synchronized Database Wikis</em> (2012), and <em>Language-Integrated Provenance</em> (2014-15).</li>
<li><a href="epsrc05/case.pdf">Original grant proposal</a> for EPSRC (2005).
</li>
<li><a href="epsrc05/LShift_Links.pdf">Letter of support from LShift</a>.</li>
<li><a href="epsrc05/rundeep.doc">Letter of support from Run Deep</a>.</li>
</ul>
</section>
<section class="team-section">
<h2>Core team</h2>
<ul>
<li><a href="http://homepages.inf.ed.ac.uk/jcheney/">James Cheney</a>.</li>
<li><a href="https://www.inf.ed.ac.uk/people/students/Frank_Emrich.html">Frank Emrich</a>.</li>
<li><a href="http://simonjf.com/">Simon Fowler</a>.</li>
<li><a href="https://homepages.inf.ed.ac.uk/vgalpin1/">Vashti Galpin</a>.</li>
<li><a href="https://www.dhil.net/research/">Daniel Hillerström</a>.</li>
<li><a href="http://homepages.inf.ed.ac.uk/slindley/">Sam Lindley</a>.</li>
<li><a href="http://www.wilmer-ricciotti.net/index.shtml">Wilmer Ricciotti</a>.</li>
<li><a href="http://https://thwfhk.github.io/">Wenhao Tang</a>.</li>
<li><a href="http://homepages.inf.ed.ac.uk/wadler/">Philip Wadler</a>.</li>
</ul>
<h2>Alumni</h2>
<ul>
<li>Ezra Cooper.</li>
<li>Gilles Dubochet.</li>
<li><a href="http://stefan-fehrenbach.net/">Stefan Fehrenbach</a>.</li>
<li><a href="http://rudi-horn.de/About">Rudi Horn</a>.</li>
<li><a href="https://jgbm.github.io/">Garrett Morris</a>.</li>
<li><a href="https://jstolarek.github.io/">Jan Stolarek</a>.</li>
<li>Jeremy Yallop.</li>
</ul>
</section>
<div class="figure-group">
<figure>
<img src="img/arthurs-seat.jpg" alt="The links team">
<figcaption>The Links team on Arthur's Seat: Philip Wadler, Jeremy Yallop, Sam Lindley, Ezra Cooper. (Nov 2006)</figcaption>
</figure>
</div>
<section class="visitors-section">
<h2>Visitors</h2>
<ul>
<li><a href="http://www.cs.brown.edu/~sk/">Shriram Krishnamurthi</a>,
Nov 2006.</li>
<li><a href="http://www.cit.gu.edu.au/~rwt/">Rodney Topor</a>,
Sep–Dec 2005.
Rodney taught us about
<a href="http://www.cit.gu.edu.au/~rwt/uoe/">transactions</a>.</li>
</ul>
</section>
<section class="undergrad-section">
<h2>Undergraduate projects</h2>
<ul>
<li><a href="papers/undergrads/ug4_20244341.pdf">Trylinks 2023</a>, Mantas Maciulis (2024)</li>
<li><a href="papers/undergrads/ug4_20233723.pdf">Developing concurrent web applications with effect handlers in Links</a>.
Steven Chang (2023).</li>
<li><a href="papers/undergrads/ug4_20233375.pdf">A video-calling API for Links</a>.
Weston Everett (2023).</li>
<li><a href="papers/undergrads/ug4_20233316.pdf">A multi-view video conferencing system in Links</a>.
Caitlin McDougall (2023).</li>
<li><a href="papers/undergrads/ug4_20233891.pdf">Scaling a dynamic video calling application</a>.
Lewis Raeburn (2023).</li>
<li><a href="papers/undergrads/ug4_20235987.pdf">Fast Regular Matching without Tiers</a>.
Robertas Norkus (2023).</li>
<li><a href="papers/undergrads/ug4_20222813.pdf">A dynamic video conferencing app in Links</a>.
Weston Everett (2022).</li>
<li><a href="papers/undergrads/ug4_20223144.pdf">A spatial metaphor for dynamic video calling in Links</a>.
Lewis Raeburn (2022).</li>
<li><a href="papers/undergrads/ug4_20181051.pdf">TryLinks: an interactive online platform to learn the Links programming language</a>.
Nick Wu (2018).</li>
<li>Building Bobcat - a web content management system in Links.
Simon Vansintjan (2010).</li>
<li><a href="papers/undergrads/samc.pdf">Web Menace: Links demonstration of a classic learning machine</a>.
Samuel Corbett (2009).</li>
<li><a href="papers/undergrads/steven.pdf">Compiling Links server-side code</a>.
Steven Holmes (2009).</li>
<li><a href="papers/undergrads/tom.pdf">LODE: an online IDE for Links in Links</a>.
Carl Andersson (2008).</li>
<li>Online Scrabble in Links.
Ashvin Jayaram (2008).</li>
<li>Building web 2.0 applications in Links: Speed dependent automatic zooming for web applications.
Sjoerd van Roosmalen (2008).</li>
<li><a href="papers/undergrads/steve.pdf">Creating linksCollab: an assessment of Links as a web development language</a>.
Steve Strugnell (2008).</li>
</ul>
</section>
<section class="msc-section">
<h2>MSc Projects</h2>
<ul>
<li>Compiling Links to WebAssembly. Aaron Song (2021).</li>
<li><a href="papers/mscs/Master_Thesis_Thomas_Weber_1450761.pdf">Uselets: UIs using Actors as an Abstraction for Composable Communicating Components</a>. Thomas Weber (LMU/University of Augsburg/TU Munich, 2018).</li>
<li><a href="https://dhil.net/research/papers/thesis2016.pdf">Compilation of Effect Handlers and their Applications in Concurrency</a>.
Daniel Hillerström (2016). </li>
<li><a href="https://dhil.net/research/papers/thesis2015.pdf">Handlers for Algebraic Effects in Links</a>.
Daniel Hillerström (2015). </li>
<li>
<a href="papers/mscs/chifeng.pdf">
Functional reactive animation in SVG for the web via Links</a>.
Chi-Feng Chou (2011).
</li>
<li>
<a href="http://www.inf.ed.ac.uk/publications/thesis/offline/IM080579.pdf">
Implementing the Java Pet Store in Links:
An assessment of Links as an effective platform for building web applications
</a>.
Gabriel Tellez (2008).</li>
<li>Building biological database applications using Links.
Ravi Shankar Dangeti (2008).</li>
<li><a href="http://infoscience.epfl.ch/record/84805">The SLinks language</a>.
Gilles Dubochet (2005).</li>
</ul>
</section>
<section class="interns-section">
<h2>Interns</h2>
<ul>
<li>Yi Zhou, June–July 2022. Yi implemented several
benchmark programs for Links, extended the command-line
interface of Links, and tweaked the internal handling of
file paths.</li>
<li>Robin Jourde, May–July 2022. Robin extended Links
with effect aliases, first-class operation polymorphism, and
fresh operation label generation.</li>
<li>Dee Yeum, July–August 2021. Dee worked on headless
testing of client-side Links applications.</li>
<li>Samo Novak, June–August 2021. Samo implemented a
round-trip type pretty printer, whose outputs can be
successfully parsed by the Links parser.</li>
<li>Yueyang Tang, May–August 2020. Yueyang worked on
improvements to Links, including dramatically speeding up
serialization of large query expressions and supporting
function definitions by case analysis
</li>
<li>Jonathan Coates, June–July 2019. Jonathan worked on
the Links codebase. He implemented support for
first-class polymorphism, syntactic sugar for effects,
and fixed numerous bugs.
</li>
<li>Tom Davey, June–July 2019. Tom adapted TryLinks for
use with Jupyter Notebook.
</li>
<li>Arek Mikolajczak, June–August 2018. Arek worked on
TryLinks.
</li>
<li>Nicole Meng, June–July 2018. Nicole worked on
implementing the essence of React in Links using effect
handlers.
</li>
<li>Thomas Weber, May–October 2017. Thomas worked
on <em>uselets</em>, a new abstraction for UI
programming in Links, and made several contributions
including a cleanup of the JavaScript runtime code, a
redesign of this home page, and the Links logo. He also
developed
the <a href="https://github.com/elordin/uselets">Uselets</a>
library and examples.
</li>
<li>Jake Browning, Summer 2017. Jake implemented a reactive
programming library for Links inspired by Elm.</li>
<li>Sára Decova, Summer 2017. Sára implemented a collection
of Links applications making use of session types in the
presence of distribution and failure.
</li>
<li>Victor Dumitrescu, Summer 2015. Victor worked on
applications of session types in Links.
</li>
<li>Austėja Elvina Brasiūnaitė, Summer 2014. Elvina helped
us to develop session types in Links by building and
testing lots of examples.
</li>
<li>Dariusz Jędrzejczak, Summer 2014. Dariusz significantly
speeded up JavaScript compilation in Links and built and
evaluated the performance of a number of games written
in Links.
</li>
<li>Gabriel Radanne, Summer 2012. Gabriel extended the Links
to OCaml compiler developed by
<a href="papers/undergrads/steven.pdf">Steven Holmes</a>
to
handle <a href="http://homepages.inf.ed.ac.uk/slindley/papers/effquot.pdf">database
queries</a>.
</li>
<li><a href="http://pauillac.inria.fr/~tmartine/">Thierry
Martinez</a>, Mar–Aug 2006. Thierry experimented with
approaches to statically typing XML in Links.
</li>
</ul>
</section>
<section class="security-section">
<h2>Security</h2>
<ul>
<li><a href="http://www.cs.umd.edu/projects/PL/selinks/">SELinks</a></li>
<li><a href="http://www.cl.cam.ac.uk/~ib249/research/links-tldi09-submission.pdf">TinyLinks</a></li>
</ul>
</section>
<section class="talks-section">
<h2>Talks</h2>
<ul>
<li><a href="http://homepages.inf.ed.ac.uk/wadler/papers/links/links-oz.pdf">Talk slides</a> (Melbourne, 2 Feb 2006)</li>
<li><a href="http://homepages.inf.ed.ac.uk/wadler/papers/links/links-padl.pdf">Talk slides</a> (PADL, 9 Jan 2006)</li>
<li><a href="http://homepages.inf.ed.ac.uk/wadler/linksetaps/">Links meeting at ETAPS</a> (Edinburgh, 6 Apr 2005)</li>
<li><a href="http://homepages.inf.ed.ac.uk/wadler/papers/links/links-cambridge.pdf">Talk slides</a> (Cambridge, 9 Feb 2005)</li>
</ul>
</section>
</main>
<footer>
</footer>
</body>
</html>