Perl 6: A Programming Language for Computer Scientists (And Other Crazy People)

A good Computer Science syllabus will cover everything from bit manipulation to set theory, from Boolean algebra to concurrency, from parsing grammars to graph traversal, from two's-complement arithmetic to higher-order functions, from sorting algorithms to multiple dispatch, from macros to closures. Along the way, the CS student should also learn how to program competently in (at least) the imperative, object-oriented, and functional paradigms.

To teach all these concepts and techniques it is usually necessary to resort to a wide range of different programming languages from the 1950's (Lisp and Fortran), the 1960's (Forth), the 1970's (Smalltalk, C, Scheme), the 1980's (C++, Perl, Occam), the 1990's (Haskell, Java, JavaScript), and the 2000's (C#, Scala, Clojure). This diversity certainly gives the student a wider repertoire, but also encourages an unfortunate (and unnecessary) internal compartmentalization of concepts and approaches.

Perl 6 is a new language in the Perl family, which aims to provide all of the major features of all of the major languages from all three dominant paradigms. It offers everything from low-level bitwise operations on raw bytes, to a full range of built-in system commands, to hygenic source code macros, to direct symbol-table introspection and manipulation, to run-time composition of multiply dispatched multimethods from mixins, to object-oriented grammars with hybrid DFA/NFA rules, to concurrent higher-order functions applied over infinite lists of pipelined arbitrary precision integers.

In other words, we stole the best features from 20 different languages, and then spent a decade working out how to put them together in a way that is clean, efficient, powerful, and still usable by actual human beings. And Perl 6 was the result.

In this presentation, Dr Damian Conway (one of the principle designers of Perl 6) will discuss some of the more interesting features of the language and demonstrate how it might be of value in an integrated Computer Science curriculum.

Presenter bio:

Damian Conway holds a B.Sc. and a Ph.D. in Computer Science.

A widely sought-after speaker and educator, he is also the author of numerous well-known Open Source software modules and several technical books on the Perl 5 programming language.

He has been a working academic in Australia since 1986, and from 2000 to 2010 was an Adjunct Associate Professor with the Faculty of Information Technology at Monash University.

He currently runs an international IT training company that provides programmer and speaker training throughout Europe, North America, and Australasia.

Technical and academic areas in which he has published internationally include: programming language design, programmer education, object orientation, software engineering, natural language generation, synthetic language generation, emergent systems, declarative programming, image morphing, human-computer interaction, geometric modelling, the psychophysics of perception, nanoscale simulation, and parsing.

Arranged in collaboration with Åpen Sone for Informatikk @ UiO.