aboutsummaryrefslogtreecommitdiff
path: root/notes/algorithms.tex
diff options
context:
space:
mode:
Diffstat (limited to 'notes/algorithms.tex')
-rw-r--r--notes/algorithms.tex20
1 files changed, 20 insertions, 0 deletions
diff --git a/notes/algorithms.tex b/notes/algorithms.tex
index 581a5e5..c745b72 100644
--- a/notes/algorithms.tex
+++ b/notes/algorithms.tex
@@ -84,3 +84,23 @@ fewer comparisons will be made.
\subsection{Bubble sort}
\subsection{Merge sort}
+
+\section{Programming languages}
+
+Programming languages are useful to humans in writing algorithms for
+computers to run. There are \textit{high level languages} (such as
+Python, Haskell, and C) which are easier for humans to write and
+understand, \textit{low level languages} (assembly code) which are
+human readable but directly represent machine code, and machine code
+which is not readable by humans as it is binary code but is the only
+information the computer actually understands and runs.
+
+Some languages (such as C) are \textit{compiled}. This involves the
+entire \textit{source code} being turned into a machine code file by
+the compiler. Other languages (such as Python) are
+\textit{interpreted}. Here, an interpreter turns a line of code into
+machine code, runs it and then moves onto the next line. The benefit
+of a compiler is that once compiled, the machine code file is very
+fast to run. However, an interpreter offers easier development as
+there are no long compile times but it is slower than code that is
+already compiled.