Commits

Stéphane GALLAND committed bcaeb32

Initial commit.

Comments (0)

Files changed (18)

.autolatex_project.cfg

+; Config::Simple 4.59
+; Fri Dec 27 17:46:26 2013
+
+[generation]
+main file=LO46.tex
+generate images=true
+image directory=imgs/chapter0:imgs/chapter1:imgs/appendix
+
+
+.autolatex_stamp
+*.aux
+*.log
+*.nav
+*.out
+*.pdf
+*.snm
+*.synctex
+*.synctex.gz
+*.toc
+imgs/*/*.pdf
+
+\documentclass[english,partsectioncirclenumberstyle,eventbelowauthors]{irtesbeamer}
+
+\usepackage[utf8]{inputenc}
+\usepackage{autolatex}
+\usepackage{tabularx}
+
+\graphicspath{{./imgs/chapter0/},{./imgs/chapter1/},{./imgs/appendix/}}
+
+\title{Compilation and Language Theory}
+
+\addauthor[S.~Galland]{St\'ephane~GALLAND}
+
+\event[LO46]{Module LO46}
+
+\instituteurl{http://www.multiagent.fr}
+
+\institute[Computer Science Department -- UTBM]{
+	\textbf{IRTES-SeT, UTBM} \\[0cm]
+	90010 Belfort cedex, France \\[0cm]
+	\texttt{stephane.galland@utbm.fr} -- \insertinstituteurl
+}
+
+%\useheaderlinewithsections
+
+\newcommand{\animatedslide}[4][1-]{%
+	\begin{frame}<#1>[c]{#2}%
+		\begin{center}
+		\includeanimatedfigure[#4]{#3}%
+		\end{center}
+	\end{frame}%
+}
+
+\let\code\texttt
+\let\id\code
+\newcommand{\kw}[1]{\underline{\code{#1}}}
+
+\begin{document}
+
+\input{chapters/chapter0}
+
+\input{chapters/chapter1}
+
+\input{chapters/appendix}
+
+\end{document}

chapters/appendix.tex

+\appendix
+
+\section{Document License}
+\begin{frame}{Creative Common License CC-BY-NC-SA 3.0}
+	\begin{center}\footnotesize
+	``\inserttitle'' by \insertauthor\ is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
+	\end{center}
+	\begin{block}{\footnotesize You are free}\scriptsize
+		\begin{tabularx}{\linewidth}{m{.04\linewidth}@{\hspace{.5em}}lX}
+		\raisebox{-.5\height}{\includegraphics[width=\linewidth]{creative_toshare}} &
+		\Emph{To Share} & to copy, distribute and transmit the work \\
+		\raisebox{-.5\height}{\includegraphics[width=\linewidth]{creative_toremix}} &
+		\Emph{To Remix} & to adapt the work \\
+		\end{tabularx}
+	\end{block}
+	\begin{block}{\footnotesize Under the following conditions}\scriptsize
+		\begin{tabularx}{\linewidth}{m{.04\linewidth}@{\hspace{.5em}}lX}
+		\raisebox{-.5\height}{\includegraphics[width=\linewidth]{creative_attribution}} &
+		\Emph{Attribution} & You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). \\
+		\raisebox{-.5\height}{\includegraphics[width=\linewidth]{creative_noncommercial}} &
+		\Emph{Noncommercial} & You may not use this work for commercial purposes. \\
+		\raisebox{-.5\height}{\includegraphics[width=\linewidth]{creative_sharealike}} &
+		\Emph{Share alike} & If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. \\
+		\end{tabularx}
+	\end{block}
+\end{frame}
+
+\section{Authors}
+\begin{frame}{Author of this Document:\\Dr.habil. St\'ephane GALLAND}
+	\begin{minipage}[t]{.75\linewidth}
+	\begin{raggedright}
+	\vspace{1em}
+	{\scriptsize Systems and Transport Laboratory \\
+	Institut de Recherche sur les Transports, l'\'Energie et la Soci\'et\'e \\
+	Universit\'e de Technologie de Belfort-Montb\'eliard, France} \\[.5cm]
+	\textbf{Topics: Multiagent systems, Agent-based simulation, Agent-oriented software engineering} \\[.5cm]
+	\end{raggedright}
+	\end{minipage}%
+	\hfill%
+	\raisebox{-\height}{\includegraphics[width=2cm]{sgalland}} \\[.5cm]%
+	\begin{raggedright}
+	\scriptsize \begin{tabularx}{\linewidth}{@{}lX@{}}
+	Web page: & \url{http://www.multiagent.fr/People:Galland_stephane} \\
+	Email: & \href{mailto:stephane.galland@utbm.fr}{stephane.galland@utbm.fr} \\
+	\end{tabularx} \\[.5cm]
+	\scriptsize Open-source contributions:\begin{itemize}
+	\item \url{http://www.janus-project.org}
+	\item \url{http://www.arakhne.org}
+	\end{itemize}
+	\end{raggedright}
+\end{frame}
+
+\section{Bibliography}
+\bibliography{biblio}
+

chapters/chapter0.tex

+\begin{frame}{Another Yet English Course}
+	\begin{itemize}
+	\item Seminars and Lectures in English.
+	\item Supervised tutorials in French or English.
+	\item Laboratory Works mainly in French.
+	\end{itemize}
+	\includegraphics[width=\linewidth]{in_english}
+\end{frame}
+
+\begin{frame}{Goals of this Lecture}
+	\begin{enumerate}
+	\item Study models, techniques and algorithms that permit to analyze a text-based language.
+	\item Study models, techniques and algorithms that permit to generate and execute code.
+	\item Study the techniques for the optimization of executable codes.
+	\end{enumerate}
+\end{frame}
+
+\begin{frame}{Recommended Prerequisites}
+	To follow LO46 with the best results, you should have the following prerequisites:
+	\begin{itemize}
+	\item You should be familiar with one of the following languages, and may have encountered other languages as well: C, C++, C\#, or Java.
+	\item You should have already experienced CLI compilation.
+	\item You must have a good level in algorithmic.
+	\end{itemize}
+\end{frame}
+
+\tableofcontentslide[onlyparts]
+
+\begin{frame}{Tools}
+	\begin{description}
+	\item[Languages] \begin{itemize}
+		\item Java (tutorials and projects)
+		\item C/C++ (projects)
+		\item C\# (projects)
+		\end{itemize}
+	\item[Integrated Development Environment] \begin{itemize}
+		\item Eclipse (tutorials and projects)
+		\item NetBean (projects)
+		\item Visual Studio (projects)
+		\end{itemize}
+	\item[Compilation Tools] \begin{itemize}
+		\item javacc (tutorials, projects)
+		\item jlex (projects)
+		\item lex, flex (projects)
+		\item yacc, bison (projects)
+		\end{itemize}
+	\end{description}
+\end{frame}
+
+\begin{frame}{Evaluation of the Students}
+	\begin{description}
+	\item[Project] 30\% of the final score. \begin{itemize}
+		\item 2 to 4 students per group
+		\item subjects and guidelines will be detailled during the second lecture session.
+		\end{itemize}
+	\item[Mid-term Exam] 25\% of the final score.
+	\item[Final Exam] 25\% of the final score.
+	\item[Laboratory Works] 20\% of the final score. \begin{itemize}
+		\item Several practice sessions will be selected, and your works evaluated by teachers.
+		\item How many sessions? When? You will discover the answers at the beginning of each session.
+		\end{itemize}
+	\end{description}
+\end{frame}
+
+\begin{frame}{My Recommendations}
+	\begin{enumerate}
+	\item Download the PDF files of the slides before the lecture.
+	\item Do not read \emph{each word} of the slides during the lectures.
+	\item Listen carefully the teachers and takes notes on the side of the slides.
+	\item Ask questions \dots Ask questions \dots Ask questions.
+	\item You must read the slides at home as soon as possible, not few hours before the exams.
+	\end{enumerate}
+\end{frame}
+
+\libraryslide[frametitle={Books},subtitle={2nd edition}]{book1}{Compilers --- Principles, Techniques and Tools
+Second Edition}{Alfred V. AHO, Monica S. LAM, Ravi SETHI and Jeffrey D. ULLMAN}{Pearson \& Addison Wesley, 2007}{0-321-48681-1}
+
+\libraryslide[frametitle={Books}]{book2}{Parsing Techniques --- A Practical Guide}{Dick Grune and Ceriel J.H. Jacobs}{Springer Verlag New York, 2007}{0-387-20248-X}
+
+\libraryslide[frametitle={Books}]{book3}{Calculabilité, Complexité et Approximation}{Jean-François REY}{Vuibert, France, 2004}{2-7117-4808-1}
+

chapters/chapter1.tex

+\part[author={Stéphane GALLAND}]{Introduction to and Overview of the Compilation Theory}
+
+\tableofcontentslide
+
+\section{Introduction}
+
+\begin{frame}{Introduction}
+	\begin{description}
+	\item Programming languages are notations for describing computations to people and to machines.
+	\item All the software running on all the computers was written in some programming language.
+	\item Before a program can be run, it first must be translated into a form in which it can be executed by a computer.
+	\item The software systems that do this translation are called compilers.
+	\item[Goal of this chapter] give an overview of a typical simple compiler.
+	\end{description}
+\end{frame}
+
+\section{Programming Languages}
+
+\tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={show/show/hide},subsubsectionstyle={hide/hide/hide/hide}]
+
+\subsection{Brief history}
+\begin{frame}{A Brief History of Programming Languages}
+	\begin{description}
+	\item[1940's] machine language, sequences of 0's and 1's.
+	\item[1950's] mnemonic assembly languages.
+	\item[Later in 1950's] Fortran for scientific computation, Cobol for business data processing, Lisp for symbolic computation. ALGOL (ALGOrithmic Language) is the ancestor of the modern languages such as B, Pascal, Simula and C.
+	\item[1960's and 1970's] Refinements in the 3GL \begin{itemize}
+		\item APL: array programming and functional programming
+		\item PL/I: merging the best concepts from Fortan and Cobol.
+		\item Simula: first OO language, followed by Smalltalk
+		\item C: operating system programming
+		\item Prolog: first logic programming language
+		\item ML: polymorphic type system on top of Lisp
+		\end{itemize}
+	\end{description}
+\end{frame}
+
+\sidenote{Figure by Matthew Hancock --- Complete figure on \url{moodle.utbm.fr}}
+\figureslide[scale=1]{A Brief History of Programming Languages}{brief_history_of_languages}
+
+\subsection{Classifications and Types of Programming Languages}
+\begin{frame}{Generations of Programming Languages}
+	\begin{description}
+	\item[1st Generation -- 1GL] Machine languages.
+	\item[2nd Generation -- 2GL] Assembly languages.
+	\item[3rd Generation -- 3GL] High-level languages (Fortran, Cobol, Lisp, C, C++, C\#, Java\dots)
+	\item[4th Generation -- 4GL] languages designed for specific applications, like Nomad for report generation, SQL for database, Postscript for text formatting.
+	\item[5th Generation -- 5GL] languages based on logic and constraints, like Prolog and OPS5.
+	\end{description}
+\end{frame}
+
+\begin{frame}{Imperative or Declarative Language}
+	\begin{block}{Imperative Languages}
+	\begin{itemize}
+	\item Imperative programs are specifying how a computation is to be done.
+	\item Notion of program state and statements that change the state.
+	\item \inlineexamples{C, C++, C\#, Java}.
+	\end{itemize}
+	\end{block}
+	\begin{block}{Declarative Languages}
+	\begin{itemize}
+	\item Declarative programs are specifying what computation is to be done.
+	\item Functional and logic-based languages.
+	\item \inlineexamples{ML, Haskell, Prolog}.
+	\end{itemize}
+	\end{block}
+\end{frame}
+
+\begin{frame}{Object-oriented Language}
+	\begin{itemize}
+	\item \emph{Supports object-oriented programming.}
+	\vfill
+	\item Consists in building programs from a collection of objects that interact with one another.
+	\end{itemize}
+	\vfill
+	\begin{examples}\begin{itemize}
+		\item Simula 67, Smalltalk (the earliest major OO languages)
+		\item C++, C\#, Java, Ruby\dots.
+		\end{itemize}
+	\end{examples}
+\end{frame}
+
+\begin{frame}{Scripting Language}
+	\begin{itemize}
+	\item \emph{Interpreted languages with high-level operators designed for ``gluing together'' computations.}
+	\vfill
+	\item Programs are much shorter than equivalent program written in other languages.
+	\end{itemize}
+	\vfill
+	\begin{examples}
+		Awk, Basic, JavaScript, Perl, PHP, Python, Ruby, Tcl, \dots
+	\end{examples}
+\end{frame}
+
+\subsection{Basics of Programming Languages}
+
+\tableofcontentslide[currentsection,currentsubsection]
+
+\subsubsection{Definitions}
+\begin{frame}[allowframebreaks]{Definitions}
+	\begin{description}
+	\item[Name] a string of characters that refers to a thing in the program.
+	\item[Identifier] a string of characters that refers to an entity (data object, procedure, class, type). \begin{itemize}
+		\item All identifiers are names; but not all names are identifiers
+		\item \id{x.y} is a name but not an identifier, and \id{x} and \id{y} are identifiers.
+		\end{itemize}
+	\item[Variable] a particular location of the store of the values at run-time. A variable is denoted by a name. Each declaration of an identifier introduces a new variable.
+	\item[Keyword] an identifier that has a particular meaning to the programming language.
+	\end{description}
+	%
+	\pagebreak
+	%
+	\begin{description}
+	\item[Procedure] a subprogram that may be called.
+	\item[Function] a procedure that may return a value of some type (the``return type'').
+	\item[Method] a procedure or a function inside a class in object-oriented languages.
+	\end{description}
+	\begin{alertblock}{Caution}
+	In the C-family languages, all the subprograms are functions; and a function is enabled to return nothing (\kw{void}).
+	\end{alertblock}
+	%
+	\pagebreak
+	%
+	\begin{description}
+	\item[Declaration] tells us about the type of a thing. \begin{itemize}
+		\item \inlineexample{\code{\kw{int} i;}}
+		\end{itemize}
+	\item[Definition] tells us about the value of a thing. \begin{itemize}
+		\item \inlineexample{\code{i = 1;}}
+		\end{itemize}
+	\item[Signature of a procedure] the declaration of the procedure. It is composed of a return type, an identifier, and a collection of parameter declarations.
+	\end{description}
+	\begin{example}\smaller In C++: \begin{itemize}
+		\item a method is declared in a \code{.hpp} file.
+		\item a method is defined in a \code{.cpp} file.
+		\end{itemize}
+	\end{example}
+\end{frame}
+
+\subsubsection{Environment and State}
+\begin{frame}{Definitions}
+	The association of names with locations in memory (the store) and then with values is described by two mappings:
+	\begin{description}
+	\item[Environment] mapping from names to locations in the store.
+	\item[State] mapping from locations in store to their values.
+	\end{description}
+	\vfill
+	\begin{center}
+	\includegraphics[width=.75\linewidth]{environment_state}
+	\end{center}
+\end{frame}
+
+\subsubsection{Static and Dynamic Languages}
+\begin{frame}{Static or Dynamic Policy}
+	\alertbox{One of the most important issues when designing a compiler is what decisions can the compiler make about the program.}
+	\begin{block}{Static Policy}
+	A program uses a policy that enables the compiler to decide an issue; \emph{the decision could be decided at compile time.}
+	\end{block}
+	\begin{block}{Dynamic Policy}
+	The decision can be made when we execute the program; \emph{the decision is required at run time.}
+	\end{block}
+\end{frame}
+
+\begin{frame}{Example of the Scope of the Declarations}
+	\begin{itemize}
+	\item A language uses a static scope if it is possible to determine the scope of a declaration by looking only at the program (C, Java\dots)
+	\vfill
+	\item With dynamic scope, as the program runs, the same use of a variable x could refer to any of several different declarations of x (Perl, PHP\dots).
+	\end{itemize}
+\end{frame}
+
+\begin{frame}{Example of the use of the term ``static'' in Java}
+	\begin{center}
+		\code{\kw{public} \kw{static} \kw{int} x = 1;}
+	\end{center}
+	\vfill
+	\begin{itemize}
+	\item Here \kw{static} refers not to the scope of the variable, but rather to the ability of the compiler to determine the location in memory.
+	\vfill
+	\item If \kw{static} is omitted each object has this variable and the compiler cannot determine where it is in advance.
+	\end{itemize}
+\end{frame}
+
+\subsubsection{Static Scope and Block Structure}
+\subsubsection{Dynamic Scope}
+\subsubsection{Parameter-Passing Mechanisms}
+\subsubsection{Aliasing Mechanism}
+
+\section{What is a Language Processor?}
+
+\section{Structure of a Compiler}
+
+\section{Simple Syntax Directed Translator}
+
+\section{Conclusion}
+

imgs/appendix/creative_attribution.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="50.352177"
+   height="49.654446"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="creative_attribution.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3791"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path3785"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mend"
+       style="overflow:visible;">
+      <path
+         id="path3782"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.4) rotate(180) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3773"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.6"
+     inkscape:cx="48.733787"
+     inkscape:cy="3.4464082"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1440"
+     inkscape:window-height="876"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-288.56562,-511.28493)">
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#7d7d7d;stroke-width:5.11867094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path2996"
+       sodipodi:cx="372.85715"
+       sodipodi:cy="531.64789"
+       sodipodi:rx="23.214287"
+       sodipodi:ry="22.857141"
+       d="m 396.07143,531.64789 c 0,12.62365 -10.39339,22.85714 -23.21428,22.85714 -12.8209,0 -23.21429,-10.23349 -23.21429,-22.85714 0,-12.62365 10.39339,-22.85714 23.21429,-22.85714 12.82089,0 23.21428,10.23349 23.21428,22.85714 z"
+       transform="matrix(0.97681603,0,0,0.97681603,-50.471133,16.78997)" />
+    <g
+       id="g3802"
+       transform="translate(-57.350703,0.07456274)">
+      <path
+         transform="translate(290.88705,514.32064)"
+         d="m 81.964289,9.1187315 c 0,0.6903559 -0.759517,1.2499995 -1.696429,1.2499995 -0.936911,0 -1.696428,-0.5596436 -1.696428,-1.2499995 0,-0.6903559 0.759517,-1.25 1.696428,-1.25 0.936912,0 1.696429,0.5596441 1.696429,1.25 z"
+         sodipodi:ry="1.25"
+         sodipodi:rx="1.6964285"
+         sodipodi:cy="9.1187315"
+         sodipodi:cx="80.26786"
+         id="path3005"
+         style="color:#000000;fill:#7d7d7d;fill-opacity:1;fill-rule:nonzero;stroke:#7d7d7d;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:nodetypes="ccccccccc"
+         inkscape:connector-curvature="0"
+         id="rect3799"
+         d="m 76.51786,17.547303 c 4.132652,-1.393697 8.123089,-1.223031 12.017857,0 l 0,11.803572 -1.897322,-0.01786 -0.111607,11.267857 -7.933035,0 -0.02009,-11.267857 -2.055804,0.01786 z"
+         style="color:#000000;fill:#7d7d7d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         transform="translate(288.56562,511.28493)" />
+    </g>
+  </g>
+</svg>

imgs/appendix/creative_noncommercial.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="50.352177"
+   height="49.654446"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="creative_noncommercial.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3791"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path3785"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mend"
+       style="overflow:visible;">
+      <path
+         id="path3782"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.4) rotate(180) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3773"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.6"
+     inkscape:cx="70.751266"
+     inkscape:cy="18.271535"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1440"
+     inkscape:window-height="876"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-288.56562,-511.28493)">
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#7d7d7d;stroke-width:5.11867094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path2996"
+       sodipodi:cx="372.85715"
+       sodipodi:cy="531.64789"
+       sodipodi:rx="23.214287"
+       sodipodi:ry="22.857141"
+       d="m 396.07143,531.64789 c 0,12.62365 -10.39339,22.85714 -23.21428,22.85714 -12.8209,0 -23.21429,-10.23349 -23.21429,-22.85714 0,-12.62365 10.39339,-22.85714 23.21429,-22.85714 12.82089,0 23.21428,10.23349 23.21428,22.85714 z"
+       transform="matrix(0.97681603,0,0,0.97681603,-50.471133,16.78997)" />
+    <g
+       style="font-size:32px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#7d7d7d;fill-opacity:1;stroke:none;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono Bold"
+       id="text3005"
+       transform="translate(-67.974005,-3.1225813)">
+      <path
+         d="m 382.74695,541.32513 0,4.71875 c 0.65624,-0.0937 1.16665,-0.34374 1.53125,-0.75 0.36457,-0.41666 0.54686,-0.9427 0.54687,-1.57812 -10e-6,-0.64583 -0.1823,-1.17187 -0.54687,-1.57813 -0.35418,-0.41665 -0.8646,-0.68749 -1.53125,-0.8125 m -2.20313,-4.51562 0,-4.42188 c -0.64584,0.0834 -1.13542,0.3021 -1.46875,0.65625 -0.32292,0.34377 -0.48438,0.81773 -0.48437,1.42188 -1e-5,0.59376 0.16145,1.08855 0.48437,1.48437 0.33333,0.39585 0.82291,0.68231 1.46875,0.85938 m 2.20313,17.46875 -2.20313,0 -0.0156,-4.70313 c -0.90626,-0.0312 -1.85418,-0.16666 -2.84375,-0.40625 -0.98959,-0.23958 -2.02084,-0.58333 -3.09375,-1.03125 l 0,-4.09375 c 1.07291,0.63543 2.10937,1.12501 3.10937,1.46875 1.01041,0.34376 1.95833,0.52084 2.84375,0.53125 l 0,-5.14062 c -2.05209,-0.40624 -3.57813,-1.10416 -4.57812,-2.09375 -1,-0.99999 -1.5,-2.3177 -1.5,-3.95313 0,-1.73956 0.53125,-3.12498 1.59375,-4.15625 1.06249,-1.03123 2.55728,-1.60935 4.48437,-1.73437 l 0,-3.70313 2.20313,0 0.0156,3.70313 c 0.73957,0.0417 1.5052,0.13544 2.29688,0.28125 0.80207,0.14585 1.61978,0.34898 2.45312,0.60937 l 0,4 c -0.64585,-0.41665 -1.36459,-0.74998 -2.15625,-1 -0.79168,-0.24998 -1.66147,-0.40623 -2.60937,-0.46875 l 0,4.79688 c 2.05207,0.32293 3.59894,1.02605 4.64062,2.10937 1.05207,1.07293 1.57811,2.50522 1.57813,4.29688 -2e-5,1.70834 -0.56773,3.10938 -1.70313,4.20312 -1.12501,1.09375 -2.62501,1.6875 -4.5,1.78125 l -0.0156,4.70313"
+         id="path3802"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccccccccccccccscccccccccccccccc" />
+    </g>
+    <path
+       style="fill:none;stroke:#7d7d7d;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 292.60194,526.33903 42.27953,19.54624"
+       id="path3804"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>

imgs/appendix/creative_sharealike.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="50.352177"
+   height="49.654446"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="creative_sharealike.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3791"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path3785"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mend"
+       style="overflow:visible;">
+      <path
+         id="path3782"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.4) rotate(180) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3773"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8"
+     inkscape:cx="56.058582"
+     inkscape:cy="-5.5290922"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1440"
+     inkscape:window-height="876"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-288.56562,-511.28493)">
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#7d7d7d;stroke-width:5.11867094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path2996"
+       sodipodi:cx="372.85715"
+       sodipodi:cy="531.64789"
+       sodipodi:rx="23.214287"
+       sodipodi:ry="22.857141"
+       d="m 396.07143,531.64789 c 0,12.62365 -10.39339,22.85714 -23.21428,22.85714 -12.8209,0 -23.21429,-10.23349 -23.21429,-22.85714 0,-12.62365 10.39339,-22.85714 23.21429,-22.85714 12.82089,0 23.21428,10.23349 23.21428,22.85714 z"
+       transform="matrix(0.97681603,0,0,0.97681603,-50.471133,16.78997)" />
+    <g
+       id="g5540"
+       transform="translate(-64.220777,-0.18436105)">
+      <path
+         sodipodi:nodetypes="cccc"
+         inkscape:connector-curvature="0"
+         id="rect3766-0"
+         d="m 367.32144,531.55859 6.07143,1.96429 -4.01786,2.76784 z"
+         style="color:#000000;fill:#7d7d7d;fill-opacity:1;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <path
+         sodipodi:nodetypes="csssc"
+         inkscape:connector-curvature="0"
+         id="path3764"
+         d="m 81.427667,20.732064 c 1.328837,-5.852255 5.964215,-9.160131 10.353406,-7.388348 4.38919,1.771783 6.870097,7.952287 5.54126,13.804542 -1.328837,5.852255 -5.964215,9.16013 -10.353406,7.388347 -2.772811,-1.119299 -4.907619,-4.084588 -5.633003,-7.824349"
+         style="color:#000000;fill:none;stroke:#7d7d7d;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         transform="translate(288.92276,512.35635)" />
+    </g>
+  </g>
+</svg>

imgs/appendix/creative_toremix.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="50.352177"
+   height="49.654446"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="creative_toremix.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.4"
+     inkscape:cx="44.108633"
+     inkscape:cy="134.32124"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1440"
+     inkscape:window-height="876"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-288.56562,-511.28493)">
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#7d7d7d;stroke-width:5.11867094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path2996"
+       sodipodi:cx="372.85715"
+       sodipodi:cy="531.64789"
+       sodipodi:rx="23.214287"
+       sodipodi:ry="22.857141"
+       d="m 396.07143,531.64789 c 0,12.62365 -10.39339,22.85714 -23.21428,22.85714 -12.8209,0 -23.21429,-10.23349 -23.21429,-22.85714 0,-12.62365 10.39339,-22.85714 23.21429,-22.85714 12.82089,0 23.21428,10.23349 23.21428,22.85714 z"
+       transform="matrix(0.97681603,0,0,0.97681603,-50.471133,16.78997)" />
+    <path
+       style="color:#000000;fill:none;stroke:#7d7d7d;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       d="m 324.87906,541.0287 4.4341,-1.90434 0,6.24174 -4.4341,2.30613 z"
+       id="rect3766"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="color:#000000;fill:#7d7d7d;fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       d="m 297.36735,535.51337 5.89286,-2.30803 0,-7.48661 5.89285,-2.47321 14.77679,6.02677 0,7.40142 -5.22322,1.98189 -8.70535,-3.8058 -0.067,6.57093 -7.03125,3.5212 -5.53571,-2.85715 z"
+       id="rect3766-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccccc" />
+    <path
+       style="fill:none;stroke:#7d7d7d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 322.31382,535.77353 7.25357,3.03943"
+       id="path3787"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#7d7d7d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+       d="m 308.11172,540.3039 16.50317,7.72036"
+       id="path3789"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#7d7d7d;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 317.91468,537.7972 7.20894,3.12872"
+       id="path3787-1"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>

imgs/appendix/creative_toshare.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="50.352177"
+   height="49.654446"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="Nouveau document 1">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8"
+     inkscape:cx="33.38397"
+     inkscape:cy="5.8091767"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1440"
+     inkscape:window-height="876"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-288.56562,-511.28493)">
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#7d7d7d;stroke-width:5.11867094;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="path2996"
+       sodipodi:cx="372.85715"
+       sodipodi:cy="531.64789"
+       sodipodi:rx="23.214287"
+       sodipodi:ry="22.857141"
+       d="m 396.07143,531.64789 c 0,12.62365 -10.39339,22.85714 -23.21428,22.85714 -12.8209,0 -23.21429,-10.23349 -23.21429,-22.85714 0,-12.62365 10.39339,-22.85714 23.21429,-22.85714 12.82089,0 23.21428,10.23349 23.21428,22.85714 z"
+       transform="matrix(0.97681603,0,0,0.97681603,-50.471133,16.78997)" />
+    <rect
+       style="color:#000000;fill:none;stroke:#7d7d7d;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect3766"
+       width="13.571428"
+       height="18.571411"
+       x="303.57141"
+       y="523.43359"
+       rx="0"
+       ry="0" />
+    <rect
+       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#7d7d7d;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect3766-0"
+       width="13.571428"
+       height="18.571411"
+       x="310.35715"
+       y="530.2193"
+       rx="0"
+       ry="0" />
+  </g>
+</svg>

imgs/appendix/sgalland.jpg

Added
New image

imgs/chapter0/book1.png

Added
New image

imgs/chapter0/book2.png

Added
New image

imgs/chapter0/book3.png

Added
New image

imgs/chapter0/in_english.png

Added
New image

imgs/chapter1/brief_history_of_languages.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="1746.5219"
+   height="946.57208"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="brief_history_of_languages.svg">
+  <defs
+     id="defs4">
+    <clipPath
+       id="clipPath13225"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path13227"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath13219"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path13221"
+         d="m 8330,0 -595,0 0,841.5 595,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath12581"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path12583"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath12575"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path12577"
+         d="m 7735.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath11921"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path11923"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath11915"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path11917"
+         d="m 7140.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath11183"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path11185"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath11177"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path11179"
+         d="m 6545.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath10373"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path10375"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath10367"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path10369"
+         d="m 5950.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath9593"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path9595"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath9587"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path9589"
+         d="m 5355.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath8879"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path8881"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath8873"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path8875"
+         d="m 4760.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath8239"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path8241"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath8233"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path8235"
+         d="m 4165.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath6969"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path6971"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath6963"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path6965"
+         d="m 3570.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath6149"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path6151"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath6143"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path6145"
+         d="m 2975.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath4889"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path4891"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath4883"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path4885"
+         d="m 2380.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath4089"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path4091"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath4083"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path4085"
+         d="m 1785.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath3293"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path3295"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath3287"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path3289"
+         d="M 1190.3,0 595,0 l 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath3007"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path3009"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath3001"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path3003"
+         d="M 595.3,0 0,0 l 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath11915-7"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path11917-3"
+         d="m 7140.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath11921-8"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path11923-9"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath12575-2"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path12577-2"
+         d="m 7735.3,0 -595.3,0 0,841.5 595.3,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath12581-9"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path12583-7"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath13219-3"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path13221-2"
+         d="m 8330,0 -595,0 0,841.5 595,0 0,-841.5 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       id="clipPath13225-1"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         id="path13227-1"
+         d="m 0,0 8330,0 0,842 L 0,842 0,0 z"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.35"
+     inkscape:cx="1382.7103"
+     inkscape:cy="512.8587"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="2"
+     fit-margin-left="2"
+     fit-margin-right="2"
+     fit-margin-bottom="2"
+     inkscape:window-width="1440"
+     inkscape:window-height="876"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-3941.416,-211.52092)">
+    <g
+       id="g11911"
+       transform="matrix(1.25,0,0,-1.25,-4237.834,1254.9092)">
+      <g
+         id="g11913"
+         clip-path="url(#clipPath11915-7)">
+        <g
+           id="g11919"
+           clip-path="url(#clipPath11921-8)">
+          <g
+             id="g11925"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,819.595,1669.291)"
+               id="text11927">
+              <tspan
+                 style="font-size:20px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 10 20 30"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan11929">2008</tspan>
+            </text>
+          </g>
+          <g
+             id="g11931"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,408.161,1694.655)"
+               id="text11933">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 4.5 9 13.5 18 20.25 24.75 27 32.004002 37.007999 42.012001 46.512001 49.508999 53.505001 55.755001"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan11935">Java 6 update 7</tspan>
+            </text>
+          </g>
+          <g
+             id="g11937"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,399.161,1688.405)"
+               id="text11939">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 2.5020001 7.0019999 9.5039997 14.004 16.254 20.754 25.254 27.504 29.754 34.254002 38.754002 43.254002"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan11941">july 11, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6618.5,402.13 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path11943" />
+          <g
+             id="g11945"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 4021.3,17115 0,735"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path11947" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6760.24,402.13 0,-3.31 11.53,3.31 -11.53,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path11949" />
+          <g
+             id="g11951"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 4021.3,15697.6 0,593.3"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path11953" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6760.24,359.61 0,-3.31 11.53,3.31 -11.53,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path11955" />
+          <g
+             id="g11957"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 3596.1,15697.6 0,507.6"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path11959" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6618.5,359.61 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path11961" />
+          <g
+             id="g11963"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 3596.1,17115 0,735"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path11965" />
+          </g>
+          <g
+             id="g11967"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,367.784,1703.3)"
+               id="text11969">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 4.5 9 13.5 18 20.25 24.75 27 29.997 34.497002 38.997002 41.247002 45.747002 47.997002 53.000999 58.005001 63.008999 67.509003 70.505997 74.501999 76.751999 81.251999 85.751999"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan11971">Java 2 (v5.0 update 16)</tspan>
+            </text>
+          </g>
+          <g
+             id="g11973"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,358.784,1682.803)"
+               id="text11975">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 2.5020001 7.0019999 9.5039997 14.004 16.254 20.754 25.254 27.504 29.754 34.254002 38.754002 43.254002"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan11977">july 11, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6760.24,345.44 0,-3.31 11.53,3.31 -11.53,3.3"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path11979" />
+          <g
+             id="g11981"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 3454.4,15697.6 0,507.6"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path11983" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6618.5,345.44 0,-3.31 11.54,3.31 -11.54,3.3"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path11985" />
+          <g
+             id="g11987"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 3454.4,17115 0,735"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path11989" />
+          </g>
+          <g
+             id="g11991"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,347.559,1695.867)"
+               id="text11993">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 4.5 9 13.5 18 20.25 24.75 27 29.997 34.497002 38.997002 41.247002 45.747002 47.997002 52.497002 56.997002 61.497002 65.997002"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan11995">Java 2 (v1.4.2_18)</tspan>
+            </text>
+          </g>
+          <g
+             id="g11997"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,338.559,1685.247)"
+               id="text11999">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 2.5020001 7.0019999 9.5039997 14.004 16.254 20.754 25.254 27.504 29.754 34.254002 38.754002 43.254002"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12001">july 11, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6873.62,331.26 0,-3.3 11.54,3.3 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12003" />
+          <g
+             id="g12005"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 3312.6,14563.8 0,2294.1"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12007" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6575.98,331.26 0,-3.3 11.54,3.3 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12009" />
+          <g
+             id="g12011"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 3312.6,17540.2 0,309.8"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12013" />
+          </g>
+          <g
+             id="g12015"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,334.437,1736.247)"
+               id="text12017">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 6.4980001 11.502 16.506001 21.006001 23.256001 27.756001 30.006001 34.506001 36.756001"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12019">Ruby 1.8.7</tspan>
+            </text>
+          </g>
+          <g
+             id="g12021"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,325.437,1740.243)"
+               id="text12023">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 7.0019999 10.998 15.498 17.747999 22.247999 26.747999 28.997999 31.247999 35.748001 40.248001 44.748001"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12025">may 31, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6661.02,260.4 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12027" />
+          <g
+             id="g12029"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 2604,16689.8 0,324.1"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12031" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6554.78,260.4 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12033" />
+          <g
+             id="g12035"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 2604,17752.2 0,97.8"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12037" />
+          </g>
+          <g
+             id="g12039"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,261.428,1753.616)"
+               id="text12041">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 5.4990001 12.501 18 20.25 24.75 27 31.5 33.75"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12043">PHP 4.4.8</tspan>
+            </text>
+          </g>
+          <g
+             id="g12045"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,252.428,1762.611)"
+               id="text12047">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 2.5020001 6.4980001 10.998 15.498 19.493999 22.490999 26.990999 29.240999 33.741001 35.991001 38.241001 42.741001 47.241001 51.741001"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12049">january 3, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6746.06,232.05 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12051" />
+          <g
+             id="g12053"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 2320.5,15839.4 0,1047"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12055" />
+          </g>
+          <g
+             id="g12057"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,235.225,1735.458)"
+               id="text12059">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 5.4990001 12.501 18 20.25 24.75 27 31.5 33.75"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12061">PHP 5.2.6</tspan>
+            </text>
+          </g>
+          <g
+             id="g12063"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,226.225,1738.707)"
+               id="text12065">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 7.0019999 10.998 15.498 17.747999 22.247999 24.497999 26.747999 31.247999 35.748001 40.248001"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12067">may 1, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6575.98,232.05 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12069" />
+          <g
+             id="g12071"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 2320.5,17540.2 0,309.8"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12073" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6815.35,728.11 0,-3.3 11.53,3.3 -11.53,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12075" />
+          <g
+             id="g12077"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 7281.1,15146.5 0,168.1"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12079" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6717.72,728.11 0,-3.3 11.53,3.3 -11.53,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12081" />
+          <g
+             id="g12083"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 7281.1,16122.8 0,1727.2"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12085" />
+          </g>
+          <g
+             id="g12087"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,730.573,1592.903)"
+               id="text12089">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 6.0029998 9.9989996 12.501 15.003 21.006001 26.01 28.26 32.759998 35.009998 39.509998 41.759998"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12091">Tcl/Tk 8.5.5</tspan>
+            </text>
+          </g>
+          <g
+             id="g12093"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,721.573,1600.144)"
+               id="text12095">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 4.5 8.4960003 10.998 15.498 19.997999 23.993999 26.990999 29.240999 33.741001 38.241001 40.491001 42.741001 47.241001 51.741001 56.241001"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12097">october 15, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6775.73,586.38 0,-3.31 11.53,3.31 -11.53,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12099" />
+          <g
+             id="g12101"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 5863.8,15542.7 0,12.1"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12103" />
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6703.54,586.38 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12105" />
+          <g
+             id="g12107"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 5863.8,16264.6 0,1585.4"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12109" />
+          </g>
+          <g
+             id="g12111"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,588.953,1609.388)"
+               id="text12113">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 5.4990001 9.9989996 12.996 18 22.5 27.504 29.754 34.254002 36.504002"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12115">Python 2.6</tspan>
+            </text>
+          </g>
+          <g
+             id="g12117"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,579.953,1617.007)"
+               id="text12119">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 4.5 8.4960003 10.998 15.498 19.997999 23.993999 26.990999 29.240999 33.741001 35.991001 38.241001 42.741001 47.241001 51.741001"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12121">october 1, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6768.81,614.73 0,-3.31 11.53,3.31 -11.53,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12123" />
+          <g
+             id="g12125"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 6147.3,15611.9 0,2238.1"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12127" />
+          </g>
+          <g
+             id="g12129"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,613.014,1543.185)"
+               id="text12131">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 5.4990001 9.9989996 12.996 18 22.5 27.504 29.754 34.254002 36.504002"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12133">Python 3.0</tspan>
+            </text>
+          </g>
+          <g
+             id="g12135"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,604.014,1554.8)"
+               id="text12137">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 4.5 8.4960003 12.492 16.488001 23.49 27.99 31.986 34.983002 37.233002 41.733002 43.983002 46.233002 50.733002 55.233002 59.733002"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12139">december 3, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6887.8,614.73 0,-3.31 11.53,3.31 -11.53,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12141" />
+          <g
+             id="g12143"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 6147.3,14422 0,451.6"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12145" />
+          </g>
+          <g
+             id="g12147"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,262.143,1649.893)"
+               id="text12149">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 5.4990001 12.501 18 20.25 24.75 27 31.5 33.75"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12151">PHP 4.4.9</tspan>
+            </text>
+          </g>
+          <g
+             id="g12153"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,253.143,1657.142)"
+               id="text12155">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 3.9960001 8.4960003 12.996 17.496 20.997 23.499001 25.749001 30.249001 32.499001 34.749001 39.249001 43.749001 48.249001"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12157">august 7, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6746.06,260.4 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12159" />
+          <g
+             id="g12161"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 2604,15839.4 0,168.1"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"
+               id="path12163" />
+          </g>
+          <g
+             id="g12165"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,191.277,1750.313)"
+               id="text12167">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:bold;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Bold"
+                 x="0 7.0019999 9.9989996 16.497 20.997 28.493999 30.996 33.245998 37.745998 39.995998 44.495998 48.995998 51.245998"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12169">O’Caml 3.10.2</tspan>
+            </text>
+          </g>
+          <g
+             id="g12171"
+             transform="matrix(0,1,-1,0,8330,0)">
+            <text
+               transform="matrix(0,-1,-1,0,182.277,1754.557)"
+               id="text12173">
+              <tspan
+                 style="font-size:9px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Times New Roman;-inkscape-font-specification:Times-Roman"
+                 x="0 2.997 6.993 11.493 14.49 18.99 22.986 25.983 30.483 32.733002 37.233002 41.733002 43.983002 46.233002 50.733002 55.233002 59.733002"
+                 y="0"
+                 sodipodi:role="line"
+                 id="tspan12175">february 29, 2008</tspan>
+            </text>
+          </g>
+          <path
+             inkscape:connector-curvature="0"
+             d="m 6561.81,189.53 0,-3.31 11.54,3.31 -11.54,3.31"
+             style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+             id="path12177" />
+          <g
+             id="g12179"
+             transform="matrix(0,0.1,-0.1,0,8330,0)">
+            <path
+               inkscape:connector-curvature="0"
+               d="m 1895.3,17681.9 0,168.1"
+               style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:3.8599999;stroke-opacity:1;stroke-dasharray:none"