Programming Languages
How languages run and how they differ: execution models, type systems, memory management, and a tour of Python, C, C++, Java, JavaScript, and TypeScript.
Topics in this field: 9
- Compiled vs Interpreted — How source text becomes behavior: translated ahead of time, executed by a program, or both. A property of implementations, not languages.
- Type Systems — The rules a language uses to classify values and reject nonsense: static or dynamic, nominal or structural, with or without inference.
- Garbage Collection — Automatic memory management: the runtime finds objects nothing can reach any more and reclaims them.
- Python — A readable, dynamically typed, batteries-included language. Fast to write, slower to run, dominant for scripting, data, and glue.
- C — A small, compiled language close to the hardware. Manual memory, pointers, and no safety net — the language operating systems are written in.
- C++ — C plus abstractions with no run-time tax: classes, templates, and RAII. Powerful and large.
- Java — A statically typed, class-based language that compiles to bytecode for the JVM. Portable, safe, and everywhere in back ends.
- JavaScript — The language of the browser and, through Node.js, of servers. Dynamic, function-first, and single-threaded on an event loop.
- TypeScript — JavaScript with a static type system on top. The checker runs at build time and the types are erased before the code runs.