Showing posts with label Scala. Show all posts
Showing posts with label Scala. Show all posts

26.8.22

Help, please! Do you know any applications of my work?


When writing an application, it sometimes help if I can point out that monads and type classes, which my research contributed to, are used to process every post on Facebook. (Via Haxl. Thanks, Simon Marlow!)

Do you know of other applications of my work? If so, please email me or list them in the comments. (You can find my email at the bottom of my home page.)

Possible example: I gather Twitter uses monads and implicits in Scala (where implicits were influenced by type classes), but it's hard to find confirmation online. Do you know whether they are used, and how heavily? (It's easier to find such confirmation for The Guardian.)

Possible example: Do you make heavy use of generics in Java? I contributed to their design.

Possible example: I gather protocols in Swift are in part inspired by type classes, but it is hard to find confirmation online. Can you point me to confirmation?

There are many other possibilities. I hope you know some I haven't dreamed of!

Many thanks for your help. Answers are welcome at any time, but would be most useful if they can be provided by 2 September 2022.


22.12.15

LFCS 30 and WadlerFest

I feel shy, humble, and honoured announcing this, but it's been pointed out to me that readers of this blog may find the following event of interest: LFCS 30 and WadlerFest. It looks like a fantastic line up. (I can say that because I've had nothing to do with it.) Many, many thanks to the organisers and contributors, and special thanks to Janne Irgens for the illustration above.

3.12.15

Quill

Flávio Brasil has released Quill, a Scala library that supports database query via the QDSL technique, as described in our papers A Practical Theory of Language Integrated Query (ICFP 2013) and Everything Old is New Again: Quoted Domain Specific Languages (PEPM 2016).

16.5.15

23.6.14

The Implicit Calculus: A New Foundation for Generic Programming


The Implicit Calculus: A New Foundation for Generic Programming

Bruno C. D. S. Oliveira, Tom Schrijvers, Wontae Choi, Wonchan Lee, Kwangkeun Yi, Philip Wadler. Draft paper, 2014.

Generic programming (GP) is an increasingly important trend in programming languages. Well-known GP mechanisms, such as type classes and the C++0x concepts proposal, usually combine two features: 1) a special type of interfaces; and 2) implicit instantiation of implementations of those interfaces.

Scala implicits are a GP language mechanism, inspired by type classes, that break with the tradition of coupling implicit instantiation with a special type of interface. Instead, implicits provide only implicit instantiation, which is generalized to work for any types. Scala implicits turn out to be quite powerful and useful to address many limitations that show up in other GP mechanisms.

This paper synthesizes the key ideas of implicits formally in a minimal and general core calculus called the implicit calculus (\lambda_?), and it shows how to build source languages supporting implicit instantiation on top of it. A novelty of the calculus is its support for partial resolution and higher-order rules (a feature that has been proposed before, but was never formalized or implemented). Ultimately, the implicit calculus provides a formal model of implicits, which can be used by language designers to study and inform implementations of similar mechanisms in their own languages.
 Share and enjoy!

11.4.13

Scala 2013

I am honoured to be invited to keynote at the Fourth Annual Scala Workshop, in Montpellier, colocated with ECOOP, ECFMA, and ECSA.  I'm looking forward to an update on developments in the Scala community.