Showing posts with label JavaScript. Show all posts
Showing posts with label JavaScript. 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.


12.3.20

Try out the new Mandelbrot Maps, Part II


Another one of my honours project students, Freddie Bawden, has also done a great job with an update to Mandelbrot Maps. He's looking for feedback. Try it out!
For my final year project I’ve build an interactive fractal viewer using WebAssembly and Web Workers to create a multithreaded renderer. You can try it now mmaps.freddiejbawden.com! Feedback can be left at mmaps.freddiejbawden.com/feedback and is greatly appreciated. Thanks!

4.3.20

Try out the new Mandelbrot Maps


One of my honours project students, Joao Maio, has done a great job with an update to Mandelbrot Maps. He's looking for feedback. Try it out!
I'm looking for feedback for an app that I've developed for my honours project - an interactive fractal explorer called Mandelbrot Maps! It is built with React and WebGL, and has a simple and intuitive user interface. 
Try it out at https://jmaio.github.io/mandelbrot-maps/ - please leave your feedback through the button on the website ([Settings] > [Info] > [Feedback]).

10.3.14

Microsoft Research PhD Scholarship: TypeScript, The Next Generation

We are recruiting one PhD student to work on design and implementation of programming languages. The post is on the project TypeScript, The Next Generation, and is funded by a Microsoft Research PhD Scholarship.

There is increasing interest in integrating dynamically and statically typed programming languages, as witnessed in industry by the development of the languages TypeScript and Dart, and in academia by the development of the theories of gradual types, hybrid types, and the blame calculus. The purpose of our project is to bring the academic and industrial developments together, applying theory to improve practice.

Our project focusses on JavaScript, an ECMA standard, and its typed variant TypeScript, an open-source project sponsored by Microsoft. JavaScript plays a central role in web-based applications and the new Windows 8 framework, and TypeScript is seeing rapid takeup, with over 150 JavaScript libraries now provided with TypeScript declarations. Our project has two parts, one aimed at immediate short-term application, and one aimed at fundamental long-term research.
  • TypeScript TNG The short-term goal is to build a tool, TypeScript: The Next Generation (or TypeScript TNG for short), that generates wrapper code from TypeScript import declarations to detect and pinpoint type errors. A wrapper will accept any JavaScript value as input, and either raise an error or return a value guaranteed to satisfy the invariant associated with the corresponding type. In particular, wrappers for generic types will assure surprisingly strong guarantees, known as “theorems for free”. Our hypothesis is that TypeScript TNG will aid debugging and increase reliablility of TypeScript and JavaScript code.
  • A wide-spectrum type system. The long-term goal is to extend the foundations of the blame calculus to support a wide-spectrum of type systems, ranging from dynamic types (as in JavaScript or Racket) through generic types (as in F# or Haskell) to dependent types (as in F* or Coq). Our hypothesis is that a wide-spectrum type system will increase the utility of dependent types, by allowing dynamic checks to be used as a fallback when static validation is problematic.
The workplan is likely to be too ambitious for a single PhD studentship. Which aspects are carried out will depend on which seem the most promising as our work develops, and on the abilities and desires of the student.

The successful candidate will join the ABCD team, carrying out a research programme investigating sesion types and web programming. The project is jointly supervised by Andrew Gordon of Microsoft Research Cambridge and the University of Edinburgh.

You should possess an undergraduate degree in a relevant area, or being nearing completion of same, or have comparable experience. You should have evidence of ability to undertake research and communicate well. You should have a background in programming languages, including type systems, and programming and software engineering skills.

It is desirable for candidates to also have one or more of the following: a combination of theoretical and practical skills; experience of JavaScript or web programming; knowledge of dependent type theory; or training in empirical measurement of programming tasks. We especially welcome applications from women and minorities.

We seek applicants at an international level of excellence. The School of Informatics at Edinburgh is among the strongest in the world, and Edinburgh is known as a cultural centre providing a high quality of life.

The successful candidate will receive a studentship covering tuition and subsistence. Students from the UK or EU are preferred. Consult the University of Edinburgh website for details of how to apply.

If you are interested, please send an outline of your qualifications to: Prof. Philip Wadler (wadler@inf.ed.ac.uk).

10.10.13

SCRIPT Workshop

Vrije University is hosting the SCRIPT Workshop.
Workshop on Secure Cloud and Reactive Internet Programming Technology
When and where?
The workshop will take place 12 to 13th of November 2013 at the Vrije Universiteit Brussel in Brussels, Belgium.
Theme and Goal of the Workshop
With the advent of JavaScript as a mature and powerful programming language running in the web browser, the web has changed for good from a mere document delivery service to a true distributed computing platform. Scripts now regularly use asynchronous message passing to send complex, structured data back and forth among distributed machines.
Unfortunately JavaScript was never designed to serve as a language to build advanced reliable and secure distributed applications. This has recently given rise to a number of language design initiatives that use the JavaScript infrastructure as an advanced virtual machine on top of which new web languages can be implemented.
We feel that we have only seen the tip of the iceberg on this subject and that many new language design initiatives will follow. The goal of the SCRIPT workshop (Secure Cloud and Reactive Internet Programming Technology) is to gather expert language designers and to let them present their view on the state of the art in this domain. SCRIPT is a workshop, not just a symposium, and the audience is more than welcome to actively engage with the speakers during and after the talks.
Speakers include:

Eelco Visser (Delft U., NL)
Daan Leijen (MS Research Redmond, US)
Manuel Serrano (INRIA Sophia-Antipolis, FR)
Adam Koprowski (Google, US)
Sébastien Doeraene (EPFL, CH)
Mario Südholt (Ecole des Mines de Nantes, FR)
Philip Wadler (U Edinborough, UK)
Gavin Bierman (MS Research Cambridge, UK)
Shriram Krishnamurthi (Brown U., US)
Adam Chlipala (MIT, US)

I'm looking forward to it!