Языки программирования
Язык задаёт синтаксис и семантику программ. Исполнение зависит от реализации: компилятора, интерпретатора, runtime и платформы.
Полезные оси сравнения
| Ось | Примеры вопросов |
|---|---|
| система типов | статическая или динамическая, номинальная или структурная |
| управление памятью | ручное, ownership, tracing GC |
| модель исполнения | native, VM bytecode, interpreter, JIT |
| конкурентность | threads, actors, async/await, CSP |
| парадигмы | процедурная, объектная, функциональная, логическая |
| экосистема | библиотеки, tooling, deployment, совместимость |
Нельзя свести язык к одной этикетке. Java поддерживает объектный, процедурный и функциональный стиль; JavaScript может интерпретироваться и JIT-компилироваться; Python-реализации различаются.
Карта заметок
- Компилируемые и интерпретируемые языки — путь от исходника до выполнения;
- О языке Java — платформа и свойства Java;
- Базовый синтаксис java — вход в Java-конспект;
- Функциональное программирование — функции и композиция;
- Объектно-ориентированное программирование в Java — модель объектов.
На собеседовании
Можно ли назвать язык только компилируемым? Обычно это свойство реализации, а не всей спецификации языка.
Что важнее синтаксиса при выборе языка? Требования системы, runtime, библиотеки, команда и эксплуатация.
Java и JVM — одно и то же? Нет: Java — язык, JVM — среда выполнения bytecode для разных языков.