%TOPIC%

From LRDE


This page contains the log of the topics of

for AppIng1 students of class EPITA 2012 (i.e., from December 2009 to February 2010). The topic was started with the Formal Languages Lecture (THL).


CMP 1

Lecture 1: 2009-12-03, 2 hours: Introduction to the Project (%roland%)

  1. The Tiger Project. See the lecture notes:

tiger-project-intro.pdf, tiger-project-intro-handout.pdf and tiger-project-intro-handout-4.pdf.

    1. Ressources (http://www.lrde.epita.fr/~akim/ccmp/).
      1. Assignments (http://www.lrde.epita.fr/~akim/ccmp/assignments.html).
      2. Appel's books.
      3. Tiger Compiler Reference Manual (http://www.lrde.epita.fr/~akim/ccmp/tiger.html).
      4. epita.cours.compile.
    2. Goals (C++, OO, DP, Management, Several Iterations, Testing, Documenting, Maintaining, Fixing, Understanding Computers, English).
    3. Non goals (Compiler Construction).
    4. Rules of the Game.
      1. No copy between groups.
      2. Tests are part of the project (test cases and frameworks should not be exchanged).
      3. Fixing mistakes earlier is better.
      4. Work between groups is encouraged as long as they don't cheat.
    5. Tests.
      1. Tests matter.
      2. Rules.
        1. A bug => a test.
        2. A suspicious behavior => one or several tests to isolate it.
        3. Don't throw away tests!
        4. Don't exchange tests! (bis repetita).
    6. C Compilation model (cpp, cc1, as, ld).

Lecture 2: 2009-12-17, 2 hours: Introduction to the Project, Development Tools (%roland%)

  1. The Tiger Project (cont). See the lecture notes:

tiger-project-intro.pdf, tiger-project-intro-handout.pdf and tiger-project-intro-handout-4.pdf.

    1. Width of a compiler pipe (line, function, compilation unit).
    2. Compilers handling multiple input (sources languages) and multiple outputs (target assembly languages/processors).
      1. The case of GCC.
      2. Factoring the compiler components: intermediate representation(s).
      3. Front-end and back-ends.
    3. The Tiger Compiler pipe (annotated with tools and steps).
      1. Front-end: TC-0 - TC-5 (mandatory part).
      2. Back-end: TC-6 - TC-9 (optional part).
    4. Misc: students should overcome Make, Makefiles and seperate compilation, etc.
  1. Development Tools, section 1 (tc Tasks). See the lecture notes:

dev-tools.pdf, dev-tools-handout.pdf and dev-tools-handout-4.pdf.

    1. The Autotools diagram.

Lecture 3: 2010-01-07, 2 hours: Development Tools, Abstract Syntax (%roland%)

  1. Development Tools, sections 2 and 3. See the lecture notes:

dev-tools.pdf, dev-tools-handout.pdf and dev-tools-handout-4.pdf.

    1. configure 's options (--help, --prefix, etc.) and variables (CXX, CXXFLAGS, etc.).
    2. Source dir vs build dir; what do srcdir, top_srcdir and top_builddir mean?
    3. The GNU Coding Standards.
  1. Abstract Syntax, introduction to section 1. See the lecture notes,

ast.pdf, ast-handout.pdf and ast-handout-4.pdf.

Lecture 4: 2010-01-14, 2 hours: Abstract Syntax (%roland%)

Lecture 5: 2010-02-12, 2 hours: Abstract Syntax (%roland%)

Lecture 6: 2010-02-19, 2 hours : Names, identifiers and bindings (%roland%) (in lieu of TYLA)

Lecture 7: 2010-02-19, 2 hours : Names, identifiers and bindings (%roland%)


TYLA

Lecture 1: 2010-02-12, 2 hours: Subgrograms (%roland%)

Lecture 2: 2010-02-19, 2 hours: ? (%roland%)

-- %roland% - 18 Jan 2011