Skip to content
Snippets Groups Projects
Commit c1a1a0c1 authored by Sander Mathijs van Veen's avatar Sander Mathijs van Veen
Browse files

Added portfolio presentation about 'Trace trees'.

parent 467cc207
No related branches found
No related tags found
No related merge requests found
# Sander van Veen - 6167969 - University of Amsterdam - <sandervv@gmail.com>
#
# Basic Makefile used to simplify the compilation. Running "make" (without any
# arguments) from the command line will build the report for this assignment.
#
.PHONY: all clean compile highlight
SHELL := /bin/bash
all: highlight compile
clean:
rm -vf *.{out,aux,toc,nav,snm} foo.tex presentation.pdf
compile: presentation.pdf
highlight: basic-example.tex
%.pdf: %.tex
pdflatex $^
pdflatex $^
rm -vf *.log
basic-example.tex: code/basic-example.js
pygmentize -O style=colorful -o $@ $^
#graph.tex: graph.dot
# dot2tex -t math $^ | \
# sed 's/\\\(use\|enl\|doc\|page\|\(end\|begin\){doc\).*//' > $@
\begin{Verbatim}[commandchars=\\\{\}]
\PY{k+kd}{var} \PY{n+nx}{foo} \PY{o}{=} \PY{l+m+mi}{42}\PY{p}{;}
\PY{k+kd}{var} \PY{n+nx}{bar} \PY{o}{=} \PY{p}{\PYZob{}}\PY{n+nx}{key}\PY{o}{:} \PY{l+s+s2}{"value"}\PY{p}{\PYZcb{}}\PY{p}{;}
\PY{k+kd}{var} \PY{n+nx}{pi} \PY{o}{=} \PY{l+m+mf}{3.1415}\PY{p}{;}
\PY{k+kd}{function} \PY{n+nx}{baz}\PY{p}{(}\PY{n+nx}{a}\PY{p}{,} \PY{n+nx}{b}\PY{p}{)} \PY{p}{\PYZob{}}
\PY{k}{return} \PY{n+nx}{a} \PY{o}{+} \PY{n+nx}{b}\PY{p}{;}
\PY{p}{\PYZcb{}}
\PY{k+kd}{var} \PY{n+nx}{b} \PY{o}{=} \PY{n+nx}{baz}\PY{p}{(}\PY{n+nx}{foo}\PY{p}{,} \PY{n+nx}{pi}\PY{p}{)}\PY{p}{;}
\end{Verbatim}
var foo = 42;
var bar = {key: "value"};
var pi = 3.1415;
function baz(a, b) {
return a + b;
}
var b = baz(foo, pi);
% Template coming from Pygments (pygmentize with "-O full,preamble")
\usepackage{fancyvrb}
\usepackage{color}
\makeatletter
\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax%
\let\PY@ul=\relax \let\PY@tc=\relax%
\let\PY@bc=\relax \let\PY@ff=\relax}
\def\PY@tok#1{\csname PY@tok@#1\endcsname}
\def\PY@toks#1+{\ifx\relax#1\empty\else%
\PY@tok{#1}\expandafter\PY@toks\fi}
\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{%
\PY@it{\PY@bf{\PY@ff{#1}}}}}}}
\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}}
\def\PY@tok@gd{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
\def\PY@tok@gu{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
\def\PY@tok@gt{\def\PY@tc##1{\textcolor[rgb]{0.00,0.25,0.82}{##1}}}
\def\PY@tok@gs{\let\PY@bf=\textbf}
\def\PY@tok@gr{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
\def\PY@tok@cm{\def\PY@tc##1{\textcolor[rgb]{0.50,0.50,0.50}{##1}}}
\def\PY@tok@vg{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.44,0.00}{##1}}}
\def\PY@tok@m{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.38,0.00,0.88}{##1}}}
\def\PY@tok@mh{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.31,0.50}{##1}}}
\def\PY@tok@cs{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.80,0.00,0.00}{##1}}}
\def\PY@tok@ge{\let\PY@it=\textit}
\def\PY@tok@vc{\def\PY@tc##1{\textcolor[rgb]{0.19,0.38,0.56}{##1}}}
\def\PY@tok@il{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.82}{##1}}}
\def\PY@tok@go{\def\PY@tc##1{\textcolor[rgb]{0.50,0.50,0.50}{##1}}}
\def\PY@tok@cp{\def\PY@tc##1{\textcolor[rgb]{0.31,0.44,0.56}{##1}}}
\def\PY@tok@gi{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
\def\PY@tok@gh{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
\def\PY@tok@ni{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.00}{##1}}}
\def\PY@tok@nl{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.56,0.44,0.00}{##1}}}
\def\PY@tok@nn{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
\def\PY@tok@no{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.19,0.38}{##1}}}
\def\PY@tok@na{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.75}{##1}}}
\def\PY@tok@nb{\def\PY@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\def\PY@tok@nc{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.38}{##1}}}
\def\PY@tok@nd{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.31,0.31,0.31}{##1}}}
\def\PY@tok@ne{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.94,0.00,0.00}{##1}}}
\def\PY@tok@nf{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.38,0.69}{##1}}}
\def\PY@tok@si{\def\PY@bc##1{\colorbox[rgb]{0.88,0.88,0.88}{##1}}}
\def\PY@tok@s2{\def\PY@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}}
\def\PY@tok@vi{\def\PY@tc##1{\textcolor[rgb]{0.19,0.19,0.69}{##1}}}
\def\PY@tok@nt{\def\PY@tc##1{\textcolor[rgb]{0.00,0.44,0.00}{##1}}}
\def\PY@tok@nv{\def\PY@tc##1{\textcolor[rgb]{0.56,0.38,0.19}{##1}}}
\def\PY@tok@s1{\def\PY@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}}
\def\PY@tok@gp{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
\def\PY@tok@sh{\def\PY@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}}
\def\PY@tok@ow{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.00}{##1}}}
\def\PY@tok@sx{\def\PY@tc##1{\textcolor[rgb]{0.82,0.13,0.00}{##1}}
\def\PY@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}}
\def\PY@tok@bp{\def\PY@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
\def\PY@tok@c1{\def\PY@tc##1{\textcolor[rgb]{0.50,0.50,0.50}{##1}}}
\def\PY@tok@kc{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\def\PY@tok@c{\def\PY@tc##1{\textcolor[rgb]{0.50,0.50,0.50}{##1}}}
\def\PY@tok@mf{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.38,0.00,0.88}{##1}}}
\def\PY@tok@err{\def\PY@tc##1{\textcolor[rgb]{0.94,0.00,0.00}{##1}}
\def\PY@bc##1{\colorbox[rgb]{0.94,0.63,0.63}{##1}}}
\def\PY@tok@kd{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\def\PY@tok@ss{\def\PY@tc##1{\textcolor[rgb]{0.63,0.38,0.00}{##1}}}
\def\PY@tok@sr{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.00}{##1}}
\def\PY@bc##1{\colorbox[rgb]{1.00,0.94,1.00}{##1}}}
\def\PY@tok@mo{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.25,0.00,0.88}{##1}}}
\def\PY@tok@mi{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.82}{##1}}}
\def\PY@tok@kn{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\def\PY@tok@o{\def\PY@tc##1{\textcolor[rgb]{0.19,0.19,0.19}{##1}}}
\def\PY@tok@kr{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\def\PY@tok@s{\def\PY@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}}
\def\PY@tok@kp{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.19,0.50}{##1}}}
\def\PY@tok@w{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
\def\PY@tok@kt{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.19,0.19,0.56}{##1}}}
\def\PY@tok@sc{\def\PY@tc##1{\textcolor[rgb]{0.00,0.25,0.82}{##1}}}
\def\PY@tok@sb{\def\PY@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}}
\def\PY@tok@k{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\def\PY@tok@se{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.38,0.38,0.38}{##1}}
} % \def\PY@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}}
\def\PY@tok@sd{\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.13}{##1}}}
\def\PYZbs{\char`\\}
\def\PYZus{\char`\_}
\def\PYZob{\char`\{}
\def\PYZcb{\char`\}}
\def\PYZca{\char`\^}
% for compatibility with earlier versions
\def\PYZat{@}
\def\PYZlb{[}
\def\PYZrb{]}
\makeatother
class Foo:
""" Class used to illustrate code highlighting. """
def __init__(self):
pass
def bar(self):
return 42
def baz(self, values):
# Simple use of a lambda expression.
return map(lambda x: x ** 2, values)
\documentclass{beamer} % {{{
\usepackage[dutch]{babel}
\usepackage[utf8]{inputenc}
\usepackage{beamerthemesplit}
\usepackage{graphics,url,float}
\definecolor{kugreen}{RGB}{110,131,163}
\setbeamercovered{transparent}
% Custom footer columns widths (modified "infolines" template)
\defbeamertemplate*{footline}{compactlines theme}
{
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.400000\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshortauthor~~(\insertshortinstitute)
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.400000\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
\usebeamerfont{title in head/foot}\insertshorttitle
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.200000\paperwidth,ht=2.25ex,dp=1ex,center]{date in head/foot}%
\usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2ex}
\insertframenumber{} / \inserttotalframenumber
\end{beamercolorbox}}%
\vskip0pt%
}
\mode<presentation> {
\usetheme{Boadilla}
%\usetheme{Copenhagen}
\usecolortheme[named=kugreen]{structure}
\useinnertheme{circles}
\usefonttheme[onlymath]{serif}
\useoutertheme{infolines}
\setbeamertemplate{navigation symbols}{}
\setbeamercovered{transparent}
\setbeamertemplate{footline}[compactlines theme]
\setbeamertemplate{blocks}[rounded][shadow=false]
}
% \logo{\includegraphics[width=1cm]{images/vo20-logo.png}}
% Load code highlighter color scheme
\input{colors}
% Create a box around the code examples
\floatstyle{boxed}
\newfloat{program}{thp}{lop}
\floatname{program}{Program}
% }}}
\title{Incremental trace trees and JavaScript}
\subtitle{Executing typeless, dynamic languages faster}
\author{Sander van Veen}
\institute{Universiteit van Amsterdam}
\date{10 april 2011}
\begin{document}
\frame { \titlepage% {{{
} % }}}
\frame { \frametitle{Overzicht} % {{{
\tableofcontents[pausesection]
} % }}}
\section{Introductie tot JavaScript}
\subsection{Wat is JavaScript?}
\frame { \frametitle{JavaScript overzicht} % {{{
De taal JavaScript is:
\begin{itemize}
\item Typeless: objecten of primitieven.
\item Dynamic: alles kan veranderen.
\end{itemize}
JavaScript voorbeeld:
\input{basic-example}
} % }}}
\frame { \frametitle{JavaScript variabel representatie} % {{{
Firefox gebruikt 64 bits voor alle types:
\begin{center}
\begin{tabular}{|l|ll|}\hline
JavaScript waarde & eerste 32 bits & laatste 32 bits \\ \hline
37 & INTEGER\_TAG & 37 \\ \hline
"hi" & STRING\_TAG & 0x20506638 \\ \hline
\{key: "value"\} & OBJECT\_TAG & 0x86753090 \\ \hline
3.1415 & 0x400921CA & 0xC083126F \\ \hline
\end{tabular}
\end{center}
``NaN unboxing'' zorgt voor onderscheid TAGs en double:
\begin{itemize}
\item Double: sign 1 bit, exponent 11 bits en mantissa 52 bits.
\item IEEE 754: alle exponent bits 1 $\rightarrow$ float is \texttt{NaN} of $\pm \infty$.
\item Dus: bij \texttt{NaN} bepalen de 14 bits na de exponent de TAG.
\end{itemize}
} % }}}
\subsection{Browser onderdelen}
\frame { \frametitle{Wat doet elk onderdeel?} % {{{
In de Mozilla Firefox browser:
\begin{itemize}
\item User Interface
\item Networking
\item Render engine (Gecko)
\item JavaScript engine (SpiderMonkey)
\begin{itemize}
\pause \item Interpreter
\pause \item Method Just-In-Time compiler (JägerMonkey)
\pause \item \alert{Trace Just-In-Time compiler (TraceMonkey)}
\end{itemize}
\end{itemize}
} % }}}
\frame { \frametitle{Trace Just-In-Time compiler} % {{{
} % }}}
% \includegraphics[width=10cm]{images/toetspagina-1.png}
\end{document}
% vim: foldmethod=marker
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment