location_city Melbourne schedule May 15th 04:20 - 04:50 PM AEDT place Red Room people 71 Interested

A quine is a program that outputs its own source code, but can you create a 2 quine, a pair of programs that output each other with an A->B->A->B cycle? What about between different languages? Can you gzip your own source code? Is there a structured way to do this with theory? All these questions will be somewhat answered, in ways that will make your head hurt... math-a-magical demos and over 9000 layers of meta-ness await!

 
 

Outline/Structure of the Talk

1. What is a quine?

2. How do you make a quine?

3. What is meta-quine?

4. How do you make a thing that makes quines?

6. We do metamagic with metaquines, I then eat my own head.

Learning Outcome

Negative, you will leave realising you know less then you did before. You will be swelled with Socratic doubt.

Target Audience

Those interested in going one level more meta.

Prerequisites for Attendees

Some basic programming ability, and an openness to having your brain warped.

Slides


Video


schedule Submitted 4 years ago

  • Philip Wadler
    keyboard_arrow_down

    Philip Wadler - (Programming Languages) in Agda = Programming (Languages in Agda)

    60 Mins
    Keynote
    Beginner

    The most profound connection between logic and computation is a pun. The doctrine of Propositions as Types asserts that propositions correspond to types, proofs to programs, and simplification of proofs to evaluation of programs. The proof of a conjunction is a pair, the proof of a disjunction is a case expression, and the proof of an implication is a lambda expression. Proof by induction is just programming by recursion.

    Dependently-typed programming languages, such as Agda, exploit this pun. To prove properties of programming languages in Agda, all we need do is program a description of those languages Agda. Finding an abstruse mathematical proof becomes as simple and as fun as hacking a program. This talk introduces *Programming Language Foundations in Agda*, a new textbook that is also an executable Agda script---and also explains the role Agda is playing in IOHK's new cryptocurrency.

  • Bartosz Milewski
    keyboard_arrow_down

    Bartosz Milewski - A Taste of Type Theory

    60 Mins
    Keynote
    Beginner

    We use types in programming, often without realizing how deeply rooted they are in the foundations of mathematics. There is a constant flow of ideas from type theory to programming (and back). We are familiar with algebraic data types; inductive types, like lists or trees; we've heard of dependent types and, in the future, we might encounter identity types and possibly get familiar with elements of homotopy type theory. I can't possibly talk about all of this, but I'll try to give you a little taste.

  • Andy Kitchen
    keyboard_arrow_down

    Andy Kitchen / Les Kitchen / Lyndon Maydwell / Noon van der Silk - Compose Melbourne :: What we Learned from Starting a Functional Programming Conference

    30 Mins
    Talk
    Beginner

    Everything you ever wanted to know about starting a functional programming conference from scratch and some things you didn't. We'll cover the great times, the stressful times and all of the behind-the-scenes. Learn how we brought people together, how we chose talks and how we managed to create a community atmosphere enjoyed by both beginners and sages alike.

  • Attila Egri-Nagy
    keyboard_arrow_down

    Attila Egri-Nagy - Approaching the Yoneda Lemma

    30 Mins
    Talk
    Intermediate

    The Yoneda lemma is not the first thing to learn in category theory, but sooner or later it appears in studying the field. Unfortunately, there is quite a gap between the intuitive idea, "tell me your friends, and I will know who you are" , and its precise formulation. This talk aims to bridge this gap by introducing algebraic results in the middle, namely Cayley's theorem for groups and its generalization to semigroups. These are elementary enough, but at the same time they exhibit the conceptual step of representability, and the idea of studying all different things in a familiar form.

  • Ken Scambler
    keyboard_arrow_down

    Ken Scambler - Applied Category Theory - The Emerging Science of Compositionality

    Ken Scambler
    Ken Scambler
    Software Architect
    MYOB
    schedule 4 years ago
    Sold Out!
    30 Mins
    Talk
    Intermediate

    What do programming, quantum physics, chemistry, neuroscience, systems biology, natural language parsing, causality, network theory, game theory, dynamical systems and database theory have in common?

    As functional programmers, we know how useful category theory can be for our work - or perhaps how abstruse and distant it can seem. What is less well known is that applying category theory to the real world is an exciting field of study that has really taken off in just the last few years. It turns out that we share something big with other fields and industries - we want to make big things out of little things without everything going to hell! The key is compositionality, the central idea of category theory.

    This talk will introduce the emerging field of applied category theory, with the aims of:

    • Giving attendees a broad overview of cutting-edge applications of category theory
    • Building an understanding of a small number of the most important core concepts
    • Getting attendees excited, inspired to learn more, and equipped to apply some basic concepts to their work

  • Attila Egri-Nagy
    keyboard_arrow_down

    Attila Egri-Nagy - The rules of the game

    30 Mins
    Talk
    Beginner

    In the post-AlphaGo era there is no need for introducing the game of Go. It is one of the most complex games with very simple rules. But wait a minute, how simple are they exactly? ... different solutions for a problem with clashing requirements, leading to endless debates; edge cases where specifications offer no help; complexity hopeless to tame... Are we still talking about the game, or about software development?!? Well, both. This may come as a surprise, but there is no agreement on the rules of Go. The different rule sets are compatible most of the time, but when they disagree, they do it in a big way in deciding who is the winner. Can we fix the rules then? There are researchers working on the problem, but the perfect rule set is as elusive as the perfect software application.

    This talk is a cautionary tale about the power and limits of formalization, and how humans relate to formal specifications. We will discuss the different rule sets, analyze their differences. The `simple' case of Go will serve as an analogue for software specifications and foundations of Mathematics.

help