Можно ли сказать, что языки высокой уровни абстракции инкапсулируют код низкоуровневых языков?

Поправьте, пожалуйста, если я где-то не прав или что-то упустил, а главный вопрос в названии. Например, CPython написан на C, значит, что в нем скрыт код C и тем, кто пишет на Python не обязательно знать, что там происходит на уровне C. В свою очередь в самом Python есть функции, например sorted(), который скрывает алгоритм сортировки. И из-за такой пирамидальной структуры, код высокоуровневых языков работает медленнее. Но неужели замедление в работе вызывает только "ссылка" на низкоуровневый язык?
  • Вопрос задан
  • 378 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Нет. Высокоуровневые языки просто уходят от низкоуровневых конструкций.
Например есть низкоуровневый машинный код, ниже которого только электрические сигналы.
Есть ассемблер, который абстрагируется от машинного кода и уже работает на уровне инструкций и регистров
Есть си, который уже работает с переменными, указателями и структурами
Есть C++ в котором уже есть объекты, наследование и прочее ООП.
А есть python, который просто интерпретируемый.
И имеет динамическую типизацию и сборщик мусора.

Ну и высокоуровневый язык != медленный.
Как пример - Rust, в котором есть очень высокоуровневые абстракции, но при этом он не уступает Си ни в скорости, ни в потреблении памяти.

При этом высокоуровневый язык не всегда строится поверх низкоуровневого - очень часто пишется компилятор/интерпретатор который сразу приводит его к машинному коду. Сишные библиотеки тоже в результате выдают машинный код.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы