Giter Club home page Giter Club logo

pycon-2017-proposal's Introduction

A Proposal for Forth at PyConUK 2017

The PyCon UK 2017 CFP is here: http://2017.pyconuk.org/cfp/

Technicalities

Now that I've logged into HQ, I can see that the proposal is required to have:

  • title, 60 characters;
  • Subtitle, 120 characters;
  • co-presenters
  • "What is your session about", 300 words; published in programme.
  • Notes to committee, 300 words.
  • Suitable for: new programmers / teachers / data scientists

What is my proposal?

Following the suggestions on that CFP, a talk's title and subtitle might be

What I learned building Forth in 64-bit Intel assembly

an excursion into what happens when one quirky language from the 1970s becomes a strange urge and a silly side-project.

(as per the CFP) The goals of this talk are to:

  • teach the conference something;
  • make the conference laugh;
  • broaden the conference's horizons.

It might be described in 300 words thus:

The computer programming language Forth was invented by Charles H. Moore in 1970. Forth is famous for being stack based and using reverse polish notation: the operators come after their operands. A Forth program to convert from Fahrenheit to Celsius (C = (F-32) ร— 5/9) is:

32 - 5 * 9 /

On 23rd August 2016 I had an urge to write a Forth system in 64-bit Intel Assembly. This talk is about what happens next.

In it I unpack what it means to implement a language. I dig a little into a lower-level description of typical computer hardware, and a little into 64-bit Intel Assembly. Compared to Python, Forth is a low-level language; compared to Assembly, Forth is a high-level language.

I'll talk about how we can implement one language in terms of another, by building models, and how we can model languages and model computational processes.

Forth is a tiny, but powerful, language. Moore's insight was to discover a language that was:

  • small;
  • sufficient;
  • easy to implement;
  • extensible.

The result is that Forth implementations are typically composed of a tiny nucleus (typically in Assembly) surrounded by a larger amount of "Forth-in-Forth".

Come. Let's implement a language.

Why should the committee be interested?

More people should know what's involved in implementing a programming language.

The chapter titles for a talk might be

  • Forth
  • Notation
  • Expressing Problems
  • Solving Problems using Suitable Notation
  • What is a Computer?
  • What is a Language?
  • What does it mean to Implement a Language?
  • A Model for Forth
  • Implementing the Model
  • Reflecting on the Model
  • The Various Layers
  • Moving between Layers
  • The Bootstrap
  • Strategies for Bootstrap

pycon-2017-proposal's People

Contributors

drj11 avatar

Watchers

Lars Brinkhoff avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.