Programming languages
by Lukas
Introduction
what is a programming language?
An example program that prints text on a screen:
Programming languages allow us to instruct computers
what to do - they allow us to “talk” to computers.
Code is human-readable, so for the computer to actually
understand them, it has to be compiled into machine
code.
print("Hello, world!");
Machine code
the thing CPUs actually understand
Fun fact:
First compilers were made with hand-written machine code.
Note:
The term “machine language” is outdated.
Machine code is the binary representation
of instructions that the CPU executes.
Unlike source code, it's not human
friendly.
All code gets converted to machine code
at some point (in a process we call
compilation).
Compilation
how do we get that that machine code
is a multi-step process of converting code to machine code.
1.
- Code is split into “words”.
2.
- The compiler makes a structured Abstract Syntax Tree.
3.
- The tree is optimized and compiled into machine code.
Compilation
Lexing
Parsing
Compilation
Abstract Syntax Tree
Code
var x = 10 + 10;
Machine code
010000 100111
111100 111101
000111 001000
110010 111111
001001 111110
011000 110011
110101 100011
000101 011111
*(illustrative example)
Kinds & their use
what kinds of languages do we have?
Compiled
They compile into
machine code
directly.
Example: C++, Rust
They are usually the
fastest and most
versatile.
JIT Compiled
They compile “Just-
in-time” at runtime.
Still pretty fast.
Example: JavaScript
VM Languages
They compile to pseudo-code and use a runtime VM.
Mostly replaced by JIT; not that popular today.
Example: Java, C#
Interpreted
These languages don’t
compile, but get
interpreted at
runtime.
Example: ShellScript
Advantages/Disadvantages
Compiled
Advantages:
Fast
Small executable
Metaprogramming
Disadvantages:
Harder debugging
No code execution
at runtime
Run only at
specific arch.
VM Languages
Advantages:
Runs anywhere the VM
does
Disadvantages:
Often slower than JIT
Requires a runtime
Harder debugging
No runtime execution
They were mostly useful
historically.
Interpreted
Advantages:
Easy debugging
Runtime features
Runs anywhere the
runtime does
Disadvantages:
Slow
Requires a runtime
Source code is
needed
Low/High level languages
Work closer to hardware
Have more control over it
Often faster/higher potential
Often more difficult
Are more abstracted
Have less direct hardware control
Often slower and less capable
Often easier
Low-level
High-level
Programming languages are also categorized based on how
close to the hardware they operate.
The lowest level “language” would be Assembly - it maps
to machine code nearly one-to-one.
A high level language would be something like Python.
Notable programming languages
JavaScript
(high-level)
The world’s most used language as of 2025.
C++
(low-level)
Known as the fastest language.
Rust
(low-level)
Gaining a lot of popularity.
Compiled
Compiled
JIT
Honorable mention
I made this one :)
Glitter is a modern, backend-agnostic
programming language designed for
building scalable and fast applications.
It combines the best features of existing
popular languages with new concepts to
provide developers with a powerful tool-
set.
Open-Source
fn main () { print("Hello world"); }
Thanks for your attention
Sources & credits:
Graphics:
Lukáš Zloch (lstv.space)
Information:
Me, internet (datasets, dev surveys)