Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
LambdaConf 2016 Unconference Schedule (Tentative)
LambdaConf 2016 Unconference Schedule (Tentative)
1:00 - 3:00 PM
Engineering a Better Twitter panel
3:00 - 3:30 PM
0 - Becoming a LambdaConf Speaker
1:00 - 2:00 PM
Lightning talks:
1 Douglas - Literate Programming
2 - Servant (Haskell library)
3 - Monad-wang (
4 - A JVM with tail recursion and first-class continuations
2:00 - 4:00 PM
6 and 5 - Theorem Proving in Coq using Tactics
1:00 - 1:30 PM
7 - Introduction to Programming Languages, IU style.
1:30 - 2:00 PM
8 - On Elm
2:00 - 2:30 PM
9 - Poor man's Spark via Cloud Haskell
2:30 - 3:00 PM
14 - Behavior Driven Development
3:30 - 4:00 PM
10 - ACP and PGA: Two Algebraic Theories in Computer Science
This talk is about 2 fundamental algebraic theories in computer
science that deserve much more attention than they currently get: the
Algebra of Communicating Processes (ACP) and Program Algebra (PGA).
ACP is an algebraic process theory, initiated by Jan Bergstra and Jan
Willem Klop in 1982. It builds on Kleene's formal languages and
automata of the 1950. ACP provides a solid algebraic approach, and
adds high level constructs such as concurrency and communication. ACP
has been made operational in SubScript, an extension to the Scala
language, created by Andre van Delft (presented at Lambda Days
2015). Process lambdas are supported like in Milner's pi-calculus;
this enables a simple definition of dataflow constructs. I will
outline some example applications in SubScript: a GUI controller and
an "async" program. In 1997 Jan Bergstra studied the semantics of
Java programs and found out that the official language specification
was of little help. He then started working on PGA: like the Turing
machine this is a computational model, but based on simple algebraic
laws concerning linear text specifications. PGA may be seen as a very
low level assembly language with many gotos; on this higher-level
layers are be defined, even to the level of programming languages
such as Ruby. I will briefly layout an application of PGA to
reasoning about static variable initialization in Java, which is a
known brainteaser. Our field is flooded with more or less ad-hoc
engineering solutions. Functional Programming is an exception to
this, being strongly rooted in Lambda Calculus. ACP and PGA are
similar Computing Science jewels. Students deserve to have these in
their curricula; for CS researchers there is plenty of low hanging
fruit. Jan Bergstra has worked on other theories as well,
e.g. Promise Theory (with applications in economy and computer
science) and Meadows AKA 0-totalized fields, i.e. fields with 0/0 =
0. The main part of his work is based on algebra. Despite of the
mathematical robustness and applicability his work is relatively
badly known; in particular Jan Bergstra could hardly get any paper on
PGA published. This year Jan Bergstra will retire. It is high time
for his works to be broadly exposed, adapted and continued.
1:00 - 1:30 PM
11 - Web Programming without the DOM
HTML, CSS, and the DOM are difficult tools to use for modern Web
development. As Web developers well know, the programming model they
present has various limitations which often require hacks or
compromises in one's designs to work around. I propose to replace
HTML, CSS, and the DOM with a layout engine written in JavaScript,
which renders the page to HTML canvas. Doing this opens the doors to
using better programming models for layout. I present the layout
programming model I have been designing for the past year, which is
based on the design of Donald Knuth's TeX. It's based on using
nonlinear optimization to find layouts which minimize the net
"badness" of the page elements. I explore how this programming model
would be used in practice and discuss some of its pros and cons.
1:30 - 2:00 PM
12 - Erlang and Common Lisp BoF
1:00 PM - 4:00 PM
13 and 14 - Mob Programming Workshop

This comment has been minimized.

Copy link
Owner Author

@jpt4 jpt4 commented May 29, 2016

Note: UTC20160529, not 30.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment