22C3 - 2.2

22nd Chaos Communication Congress
Private Investigations

Speakers
Hannes Mehnert
Andreas Bogk
Schedule
Day 1
Room Saal 3
Start time 18:00
Duration 01:00
Info
ID 800
Event type Lecture
Track Hacking
Language English
Feedback

Writing better code (in Dylan)

Fast development of object-oriented functional programs

An overview of the highly dynamic, object-oriented, functional programming language Dylan will be given. As an example a web-based network management tool will be demonstrated.

Dylan is a fully buzzword-compliant language (object-oriented, dynamic, functional) which was developed by Apple, CMU and Harlequin back in the early 90s. While the Apple project was cancelled in the early beta testing stage due to financial trouble at Apple, both CMU and Harlequin finished their compilers. CMU released a Dylan-to-C batch compiler as open source. Harlequin produced a full-blown development environment, including an IDE with code browsers, a debugger, profiler, and a native compiler for x86. This compiler has been available commercially. After the bankrupt of Harlequin, the programmers bought the rights to their code, and after an unsuccessful attempt to sell it, recently decided to release it as open source too.

Dylan is unique in that it combines both the ease of use and rapid prototyping features of very high level languages with high performance code execution, allowing the deployment of real-life production systems.

Additionally, it is amongst the languages that prevent many of the the common exploitable bugs like buffer overflows, integer overflows, format string exploits, double frees, that plague programs written in C.

Dylan is semantically closely related to Scheme, but comes with an Algol-like syntax that should be more convenient to the programmer than the S-expression syntax used by the Lisp family of languages. It features a well-integrated class system with dynamic types and multiple inheritance, polymorphism via generic functions, first class functions and matching higher-order functions, automatic memory management and a macro system that allows to extend the grammar of the language.

This talk presents the Dylan language and its implementations. It also demonstrates a sample application for configuring switches, routers, DHCP- and DNS-servers for a network environment such as the one of the Chaos Communication Congress over a web interface, focusing on how usage of the Dylan language features allows construction of a powerful framework for such purposes.