•  

Distributed Caching Compiler for D

A session at DConf 2013

  • Robert Schadek

Wednesday 1st May, 2013

11:00am to 12:00pm (PST)

Nearly thirty years have passed since the release of the infamous Dragon Book by Aho, Lam, Sethi, and Ullman. Since then the available memory and CPU power has grown by a factor of at least 1000 and 10000 respectively. The use of multiprocessors and fast networks has become the rule rather than the exception. Even though compiler and programming language have advanced greatly in this period of time, their basic design has not been adjusted to reflect the enormous hardware improvements.

In this presentation, which reflects the content of my master thesis, I present a D compiler written in D that exploits these tremendous hardware advances. To utilize multiprocessors the lexer and parser are run in different communicating threads. On top of that different semantic analysis are spread across multiple threads. To speedup compilation, by use of a cache and work distribution among a network, datastructures are created that store results, like the abstract-syntax- tree, in a consecutive chunk of memory. To remove manual labor a lexer- and parser-generator were created that use a custom library that, not only, consists of stl inspired containers.

Besides the conceptual architecture of this new compiler, I will report on the implementation, the use of datastructures and the lessons learned during this project with respect to compiler design as well as the D Programming Language.

Benefits: Insides into compiler construction, multithreading with D inside a D compiler. Ideas for STL-like container implementation. Experiences with unittests for 50k lines application

About the speaker

This person is speaking at this event.
Robert Schadek

Coverage of this session

Sign in to add slides, notes or videos to this session

Tell your friends!

When

Time 11:00am12:00pm PST

Date Wed 1st May 2013

Short URL

lanyrd.com/schqhr

Official event site

dconf.org

View the schedule

Share

See something wrong?

Report an issue with this session