Strat the second episode

This commit is contained in:
Sameer Rahmani 2022-11-10 11:35:53 +00:00
parent 083bcfd787
commit ff850139ad
2 changed files with 135 additions and 6 deletions

View File

@ -1,11 +1,8 @@
1:
latexmk -f -xelatex -interaction=nonstopmode -output-directory=$(PWD)/build/ ep1.tex
pdftoppm -png -f 1 -l 1 -singlefile -r 1200 -scale-to-x 1920 -scale-to-y 1080 $(PWD)/build/ep1.pdf $(PWD)/build/ep1
.PHONY: build
build: cv.pdf
%:
latexmk -f -xelatex -interaction=nonstopmode -output-directory=$(PWD)/build/ ep$@.tex
pdftoppm -png -f 1 -l 1 -singlefile -r 1200 -scale-to-x 1920 -scale-to-y 1080 $(PWD)/build/ep$@.pdf $(PWD)/build/ep$@
.PHONY: clean
clean:
rm -rf build
rm -f *~
all: build

132
ep2.tex Normal file
View File

@ -0,0 +1,132 @@
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
% Lxsameer's CV Latex class
% Copyright (C) 2022 Sameer Rahmani <lxsameer@gnu.org>
%
% This program is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License
% as published by the Free Software Foundation; either version 2
% of the License, or (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
\documentclass{lxpresent}
\date{\today}
\title{Mathematics of Programming Languages}
\setep{02}{What is Mathematics?}
\begin{document}
\maketitle
\begin{frame}{Why do we have to start frome here?}{We already know what math is}
\begin{itemize}
\item there's no conses on the definition of mathematics but I'll give you mine
\item interconnected web of mathematics, how an idea in one field drives you to others
\item asking the right question
\item We learned about the basics of LLVM and MLIR
\item We created a basic platform to develop 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 \href{https://serene-lang.org}{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 like \href{http://www.r6rs.org/}{R6RS} (Scheme)
\item Or just create a language based on our intuition (many languages have done this)
\item Or design 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 mathematician
\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 researches 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}