mirror of
https://github.com/janishutz/eth-summaries.git
synced 2026-01-11 19:48:27 +00:00
16 lines
1.2 KiB
TeX
16 lines
1.2 KiB
TeX
\begin{scriptsize}
|
|
\textit{I can clearly C why you'd want to use C. Already sorry in advance for all the bad C jokes that are going to be part of this section}
|
|
\end{scriptsize}
|
|
|
|
\texttt{C} is a compiled, low-level programming language, lacking many features modern high-level programming languages offer, like Object Oriented programming,
|
|
true Functional Programming (like Haskell implements), Garbage Collection, complex abstract datatypes and vectors, just to name a few.
|
|
(It is possible to replicate these using Preprocessor macros, more on this later).
|
|
|
|
On the other hand, it offers low-level hardware access, the ability to directly integrate assembly code into the \texttt{.c} files,
|
|
as well as bit level data manipulation and extensive memory management options, again just to name a few.
|
|
|
|
This of course leads to \texttt{C} performing excellently and there are many programming languages whose compiler doesn't directly produce machine code or assembly,
|
|
but instead optimized \texttt{C} code that is then compiled into machine code using a \texttt{C} compiler.
|
|
This has a number of benefits, most notably that \texttt{C} compilers can produce very efficient assembly,
|
|
as lots of effort is put into the \texttt{C} compilers by the hardware manufacturers.
|