Keywords: sdccman

# 7.10 Use of SDCC in Education

In short: highly encouraged7.3. If your rationales are to:

1. give students a chance to understand the complete steps of code generation
2. have a curriculum that can be extended for years. Then you could use an FPGA board as target and your curriculum will seamlessly extend from logic synthesis (http://www.opencores.org `opencores.org`, Oregano `http://www.oregano.at/ip/ip01.htm`), over assembly programming, to C to FPGA compilers (FPGAC `http://sourceforge.net/projects/fpgac/`) and to C.
3. be able to insert excursions about skills like using a revision control system, submitting/applying patches, using a type-setting (as opposed to word-processing) engine LYX LyX/LATEX, using SourceForge `http://sourceforge.net/`, following some netiquette `http://en.wikipedia.org/wiki/Netiquette`, understanding BSD/LGPL/GPL/Proprietary licensing, growth models of Open Source Software, CPU simulation, compiler regression tests.
   And if there should be a shortage of ideas then you can always point students to the ever-growing feature request list `http://sourceforge.net/p/sdcc/feature-requests/`.
4. not tie students to a specific host platform and instead allow them to use a host platform of their choice (among them Alpha, i386, i386_64, Mac OS X, Mips, Sparc, Windows and eventually OLPC `http://www.laptop.org`)
5. not encourage students to use illegal copies of educational software
6. be immune to licensing/availability/price changes of the chosen tool chain
7. be able to change to a new target platform without having to adopt a new tool chain
8. have complete control over and insight into the tool chain
9. make your students aware about the pros and cons of open source software development
10. give back to the public as you are probably at least partially publicly funded
11. give students a chance to publicly prove their skills and to possibly see a world wide impact

then SDCC is probably among the first choices. Well, probably SDCC might be the only choice.