TC-1 Goals
Things to learn during this stage that you should remember:
- Basic use of the GNU Build System
Autoconf, Automake. The initial set up of the project will best be done via
autoreconf -fvim
, but once the project initiated (i.e.,configure
and theMakefile.in
exists) you should depend onmake
only. The GNU Build System.- Integration into an existing framework
Putting your own code into the provided code base.
- Basic C++ classes
The classes
Location
provide a good start to study foreign C++ classes. Your understanding of them will be controlled, including theoperator
s.- Writing and debugging a scanner and a parser
Learn to use RE/Flex and Bison. Resolve simple conflicts due to precedences and associativities thanks to directives (e.g.,
%left
etc.) and hard conflicts with loop unrolling. For example, you will need to resolve the important lvalue and array instantiation conflict.- Location Tracking
Understand how to track the location and update it, within the scanner and the parser.
- Implementation of a few simple C++ classes
The code for
misc::symbol
andmisc::unique
is incomplete.- A first standard container:
std::set
The implementation of the
misc::unique
class relies onstd::set
.- The Flyweight design pattern
The
misc::unique
class is an implementation of the Flyweight design pattern.- Version Control System
Using the Git version control system is mandatory. Learn to use its powers carefully to handle working in group and merge from a different upstream remote.