Create a draft for episode 1
This commit is contained in:
parent
a7cee2d4d2
commit
cce63802e2
106
ep1.tex
106
ep1.tex
|
@ -21,13 +21,109 @@
|
|||
|
||||
\date{\today}
|
||||
\title{Mathematics of Programming Languages}
|
||||
\setep{01}{Introduction}
|
||||
\setep{01}{First step to design a language}
|
||||
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\section{
|
||||
blah
|
||||
}
|
||||
hnt
|
||||
\begin{frame}{So far\ldots}{}
|
||||
\begin{itemize}
|
||||
\item In the first season we created a super simple compiler
|
||||
\item We learned about the basics of LLVM and MLIR
|
||||
\item We created a basic platform to develope a programming language, that includes:
|
||||
\begin{itemize}
|
||||
\item A parser
|
||||
\item A JIT engine
|
||||
\item A code generation pipeline
|
||||
\item and few other bits and pieces
|
||||
\end{itemize}
|
||||
\item BUT we didn't come up with a specification for Serene
|
||||
\item We didn't design the language yet
|
||||
\item That's what we're going to do in this series
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Specification}{}
|
||||
\begin{itemize}
|
||||
\item Not all the programming langs have specification
|
||||
\item A spec or standard brings clarity for users and developers
|
||||
\item We could've just implement an already exist spec lik \href{http://www.r6rs.org/}{R6RS} (Scheme)
|
||||
\item Or just create a language based on our intuition (many languages have done this)
|
||||
\item Or desing a standard from scratch \\
|
||||
We can use about 100 years of Mathematics and Computer Science to our benefit
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Where to look?}
|
||||
\begin{itemize}
|
||||
\item Based on the past experience we have some initial idea on where to look
|
||||
\item Later on we will find out whether or not our initial ideas were good
|
||||
\item For example
|
||||
\begin{itemize}
|
||||
\item I prefer functional programming
|
||||
\item Dynamic type systems
|
||||
\item \ldots
|
||||
\end{itemize}
|
||||
\item We can start from there and study what we think is true and also any alternative to them
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Where we want to look}
|
||||
\begin{itemize}
|
||||
\item There are few major theories we can start from:
|
||||
\begin{itemize}
|
||||
\item Type theory
|
||||
\item Category theory
|
||||
\item Proof theory
|
||||
\end{itemize}
|
||||
\item They all describe the same world from different perspectives
|
||||
\item Also, there are few papers that we need to look at, like the lisp paper
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Required tools}
|
||||
\begin{itemize}
|
||||
\item We need build up few mathematical skills
|
||||
\item E.g We need to learn:
|
||||
\begin{itemize}
|
||||
\item Logic
|
||||
\item Set theory
|
||||
\item and discrete mathematics in general
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{The Plan}{}
|
||||
\begin{itemize}
|
||||
\item I like this series to be self contained as much as possible
|
||||
\item We're going to start from basics
|
||||
\item We will cover
|
||||
\begin{itemize}
|
||||
\item What is mathematics? and why do we need it?
|
||||
\item Mathematical thinking
|
||||
\item Discrete mathematics
|
||||
\item $\lambda$-calculus
|
||||
\item Type theory
|
||||
\item and the rest
|
||||
\end{itemize}
|
||||
\item We will study the history of computer science an mathematics as well
|
||||
\item History is a great guide
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Disclaimer}{}
|
||||
\begin{itemize}
|
||||
\item I'm not a professional mathematition
|
||||
\item I'm just sharing the result of my research and things that I learn. Take it with a grain of salt
|
||||
\item ``Nullius in verba''
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Contact}{}
|
||||
Please shared your thoughts and ideas or researchs and papers that you want me to have a look at via:
|
||||
\begin{itemize}
|
||||
\item Comment section on \href{https://youtube.com/c/lxsameer}{youtube}
|
||||
\item \href{https://lxsameer.com}{https://lxsameer.com}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
\end{document}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
% along with this program; if not, write to the Free Software
|
||||
% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
\LoadClass[hyperref={pdfpagelabels=false,hidelinks},presentation]{beamer}
|
||||
\LoadClass[hyperref={pdfpagelabels=false,hidelinks},aspectratio=169,presentation]{beamer}
|
||||
|
||||
\ProvidesClass{lxpresent}[2022/09/22 lxsameer's presentation class]
|
||||
\RequirePackage[default,light,semibold]{sourcesanspro}
|
||||
|
@ -36,16 +36,30 @@
|
|||
|
||||
\definecolor{spurple}{HTML}{5e246e}
|
||||
\definecolor{spurple1}{HTML}{eeddaa}
|
||||
\definecolor{linkcolor}{HTML}{eeeeec}
|
||||
\definecolor{linkcolor}{HTML}{F75E9B}
|
||||
|
||||
\hypersetup{colorlinks=true,allcolors=linkcolor}
|
||||
|
||||
\setbeamercolor{palette primary}{fg=spurple,bg=white}
|
||||
\setbeamercolor{palette secondary}{fg=spurple,bg=white}
|
||||
\setbeamercolor{palette secondary} {fg=spurple,bg=white}
|
||||
\setbeamercolor{structure}{fg=white,bg=spurple}
|
||||
\setbeamercolor{title in head/foot}{fg=white,bg=spurple}
|
||||
\setbeamercolor{date in head/foot}{fg=lightgray,bg=spurple}
|
||||
\setbeamercolor{background canvas}{bg=spurple}
|
||||
\setbeamercolor{title}{fg=blue,bg=spurple}
|
||||
\setbeamercolor{normal text}{fg=white}
|
||||
\setbeamercolor{itemize item}{fg=red,bg=spurple}
|
||||
\setbeamercolor*{item}{fg=red}
|
||||
\setbeamercolor{title in head/foot}{fg=white,bg=spurple}
|
||||
|
||||
|
||||
\setbeamertemplate{headline}{%
|
||||
\leavevmode%
|
||||
\hbox{
|
||||
\begin{tikzpicture}
|
||||
\node[overlay,anchor=south west,inner sep=0,scale=0.4,opacity=0.3] at (10.6cm,-10.15cm) {\includegraphics[width=\textwidth]{serene.png}};
|
||||
\end{tikzpicture}
|
||||
}
|
||||
}
|
||||
% definition of the footline template
|
||||
\defbeamertemplate*{footline}{mytheme}{%
|
||||
\leavevmode%
|
||||
|
@ -64,12 +78,12 @@
|
|||
|
||||
\begin{tikzpicture}
|
||||
|
||||
\node[overlay,anchor=south west,inner sep=0,scale=0.7,opacity=1] at (6cm,-7cm) {\includegraphics[width=\textwidth]{serene.png}};
|
||||
\node[overlay,anchor=south west,inner sep=0,scale=0.6,opacity=1] at (8cm,-7cm) {\includegraphics[width=\textwidth]{serene.png}};
|
||||
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}[remember picture,overlay]
|
||||
\node[text=white,anchor=south west,font=\sffamily\huge,text width=0.8\paperwidth]
|
||||
\node[text=white,anchor=south west,font=\sffamily\huge,text width=0.6\paperwidth]
|
||||
at ([xshift=20pt,yshift=30pt]current page.west)
|
||||
(title)
|
||||
{Mathematics of Programming Languages};
|
||||
|
@ -81,7 +95,7 @@
|
|||
\node[text=white,font=\large\sffamily,anchor=south west]
|
||||
at ([yshift=-15pt]epnum.south west)
|
||||
(eptitle)
|
||||
{\textbf{\@eptitle}};
|
||||
{\hspace{0.2cm}\textbf{\@eptitle}};
|
||||
\end{tikzpicture}%
|
||||
}
|
||||
|
||||
|
@ -90,13 +104,8 @@
|
|||
|
||||
% definition of the symbols used in itemize
|
||||
\newcommand\mysymbol{%
|
||||
\begin{tikzpicture}[xscale=0.85]
|
||||
\fill[spurple]
|
||||
(-1ex,1ex) to[out=-60,in=240,looseness=1.2]
|
||||
(1ex,1ex) to[out=240,in=120,looseness=1.2]
|
||||
(1ex,-1ex) to[out=120,in=60,looseness=1.2]
|
||||
(-1ex,-1ex) to[out=60,in=-60,looseness=1.2]
|
||||
cycle;
|
||||
\begin{tikzpicture}[scale=0.1]
|
||||
\node[circle,minimum size=2mm,inner sep=0pt, text=white,fill=white] (a) at (0,0){};
|
||||
\end{tikzpicture}%
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue