About Me
I am a talented software engineer and computer scientist.
My interests include
programming language implementation and performance, including
parallelism and concurrency.
By day I work for Mozilla where
I am a humble garbage collector, sweeping up unused
objects from Firefox's JavaScript heap.
Err, I mean Senior Software Engineer, I work on the
garbage collector for Firefox's JavaScript engine.
By night I transform into my alter-ego and work on the new
Plasma
programming language,
which aims to bring the worlds of functional and imperative
programming together!
With the powers of these worlds unified we will usher in
a new age of large scale, reliable, high-performance parallel
and concurrent software.
Background
I started programming when I was 12 with QBasic,
by the time I was 15 I was teaching myself C/C++.
After high school I studied computer science at University then joined
the work force full-time.
Shortly afterwards I was introduced to functional programming;
intoxicated by the safety of pure declarative languages and
the challenge of multicore computing I decided to peruse a Ph.D. on this
topic.
After completing my Ph.D. on
Automatic Parallelisation for Mercury
I re-joined the work force supporting
Mercury
(a logic-functional language) in production.
I used the skills developed during my Ph.D. to analyse and improve
the performance of Mercury programs.
Now I work on the garbage collector in Firefox's JavaScript engine.
In mid-2015 I started work on the
Plasma
programming language in my spare time.
Plasma is a pure declarative language.
Its goals are to find a compromise between declarative and imperative
programming and to provide state-of-the-art parallel and concurrent
programming features.
When I'm programming, writing, reading or thinking about programming
I like to spend time with my family, go alpine skiing and sometimes
play the flute.
Publications
Presentations and interviews
The publications of this section include conference presentations, talks
and other interviews.
They are not academic / peer-reviewed those are in the section
below,
however they're probably more accessible for most readers.
They're probably a good place to start for an overview of my work or
reporting on other people's work.
-
P. Bone
AST to WebAssembly: Writing a Code Generator
Compose :: Melbourne Conference
Melbourne, Australia
Aug, 2018
Details…
-
P. Bone
x86: An Evolution of Kludges
Melbourne Haskell User Group
Melbourne, Australia
July, 2018
Details…
-
P. Bone
Plasma Programming Language
Linux Users of Victoria
Melbourne, Australia
May, 2017
Details…
-
P. Bone
Tail recursion, do I have it? how to get it?
Melbourne Functional User Group
Melbourne, Australia
Apr, 2017
Slides
-
P. Bone
Playing with Prolog — Interviewee
Playing with Prolog YouTube Channel
Apr, 2017
YouTube video.
-
P. Bone
Plasma Programming Language
Compose :: Melbourne Conference
Melbourne, Australia
Aug, 2016
Details…
-
P. Bone
Functional Geekery episode 60 —
Interviewee
Functional Geekery Podcast
Jul, 2016
Audio and notes (functionalgeekery.com).
-
P. Bone
Haskell Sucks!
Melbourne Haskell User Group
Melbourne, Australia
Apr, 2016
Details…
-
P. Bone based on slides by Z. Somogyi
The Mercury Programming Language
Melbourne Functional User Group
Melbourne, Australia
Apr, 2015
Details…
-
P. Bone, Z. Somogyi and P. Schachte
Automatic Parallelism for Mercury
Multicore World 2012
Wellington, New Zealand
Mar, 2012
Details…
-
P. Bone
Automatic Parallelism for Mercury
Google Tech Talk & UNSW Seminar
Sydney, Australia
Dec, 2010
Slides
-
P. Bone
Paul Bone goes Parallel with Project Mercury
.Net Rocks! Podcast
Jun, 2011
Details…
-
P. Bone
Automatic Parallelism in Mercury
Multicore Miniconf — Linuxconf 2010
Wellington, New Zealand
Jan, 2010
Details…
Journal articles and conference papers
The publications in this section are academic papers (conference papers,
journal articles and dissertations.
They are more academically rigorous than the presentations
above and have a lot more detail.
They're useful if you're looking for detailed information about my work.
-
L. Langevine and P. Bone
The Logic of Insurance: an Ontology-Centric
Pricing Application
The 13th International Semantic Web Conference, Industry Track
Riva del Garda, Italy
October 19–23, 2014
Details…
-
P. Bone
Automatic Parallelisation for Mercury
PhD thesis
Department of Computing and Information Systems,
The University of Melbourne, Australia
2012
Details…
-
P. Bone, Z. Somogyi, and P. Schachte
Controlling Loops in Parallel Mercury Code
Declarative Aspects and Applications of Multicore
Programming
Philadelphia, PA, USA
2012
Details…
-
P. Bone and Z. Somogyi
Profiling parallel Mercury programs with
ThreadScope
21st Workshop on Logic-based methods in Programming
Environments (WLPE 2011) pp. 32–46
Lexington, KY, USA
2011
Details…
-
P. Bone, Z. Somogyi, and P. Schachte
Estimating the overlap between dependent
computations for automatic parallelization
Theory and Practice of Logic Programming, 27th
International. Conference on Logic Programming (ICLP 11)
Special Issue, vol. 11, no. (4–5), pp. 575–587
2011
Details…
-
P. Bone
Calculating likely Parallelism within Dependant
Conjunctions for Logic Programs
Honours Thesis, University of Melbourne
Melbourne, Australia
Oct. 2008
Details…