Strat the second episode
This commit is contained in:
parent
083bcfd787
commit
ff850139ad
9
Makefile
9
Makefile
|
@ -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
|
||||
|
|
|
@ -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}
|
Loading…
Reference in New Issue