schedule
GCC Resource Center |
||||||||||
Essential Abstractions in GCC
Presenter Schedule Friday, 13 June 2014, Afternoon Slot.
Motivation The
GNU
Compiler
collection
is
a
compiler
generation
framework
which
constructs a compiler for a given architecture by reading the machine
descriptions for that architecture. It has been used to create industry
strength optimizing compilers on a wide variety of platforms. The GCC
generated compilers are routinely used by millions of users for their
regular compilation needs.
GCC is a huge infrastructure that has evolved over a quarter century through the efforts of a large number of contributors. On the one hand, its comprehensiveness, wide applicability, and ability to generate back ends from specifications, makes it a fertile test bed for research; on the other hand the very same features make it difficult to understand GCC. To complicate the matters further, many publicly available explanations of GCC internals tend to be heavy on information rather than insights. As a consequence, a clear and crisp explanation of the journey from the compiler specifications to an actual run of a compiler generated from them is not easily understandable. We believe that this is the main reason why experimentation with GCC (particularly in academia) is not as wide-spread as it could have been, given that the entire source code is available with documentation. We are aware of many efforts that were abondoned because of the overheads of learning GCC internals and the steep ramp up required. This tutorial describes some carefully chosen abstractions that explain the architecture of the compiler generation framework of GCC and relate it to a generated compiler. The focus is on presenting concepts rather than information so that the desired information can be discovered independently. Target Audience
The tutorial will be helpful to all those people who are interesting in knowing GCC internals.
For students and researchers, it may help them to explore how to use GCC as a test bed for
their research projects. For practitioners, it may help them to them to explore how GCC implements
the familiar concepts.
Requirements This
tutorial
is
a
lecture
based
tutorial
and
hence
it is not necessary for
the audience to bring a laptop. Soft copies of the slides will be made
available on this page well in advance.
Overview The
tutorial
is
an
abridged
version
of the full tutorial which is organized
around the external and the internal views of
the specifications, the compiler generator, and the generated compiler
as illustrated below. As a matter of pedagogy, the tutorial
introduces internal view only after building a clear external view.
This helps in taming the
complexity of GCC internals.
![]() In the abridged version, the topics
listed in gray color will be excluded. Besides, some details of the
other topics will be omitted. However, the study material for all these
omissions will be made available.
List of Topics and Resources A
tentative
list
of topics and associated slides is as
follows. Note that these slides may be revised from time to time.
Additional Material A
lot of additional material from different versions of this tutorial
are available online. These include slides; lecture videos (to be made
available soon); well crafted programming assignments, their resources,
and solutions, etc.
Please visit the web pages of our flagship event titled the Workshop on Essential Abstractions in GCC which are summer schools based on on a homogeneous teaching plan and have been held at IIT Bombay in 2013, 2012, 2011, 2010, and 2009. Apart from the slides of various offerings of the workshop, videos of lectures of 2012 workshop are also available. |
SEARCH |
|||||||||
|
Tested on Firefox version 3.0.8 and above | Site designed and maintained by GRC | © 2013, GCC Resource Center |
|