Можно ли сказать, что языки высокой уровни абстракции инкапсулируют код низкоуровневых языков?
Поправьте, пожалуйста, если я где-то не прав или что-то упустил, а главный вопрос в названии. Например, CPython написан на C, значит, что в нем скрыт код C и тем, кто пишет на Python не обязательно знать, что там происходит на уровне C. В свою очередь в самом Python есть функции, например sorted(), который скрывает алгоритм сортировки. И из-за такой пирамидальной структуры, код высокоуровневых языков работает медленнее. Но неужели замедление в работе вызывает только "ссылка" на низкоуровневый язык?
питон работает медленнее чем плюсы, за счет особенностей реализации типов, условное сложение чисел в питоне и в плюсах сильно по разному реализовано. И именно за счет этого он работает "медленнее". а си пайтоне или похожих реализациях уже нет такого отличия в реализации, и скорость примерно одинаковая и практически не различается.
Лентюй, во-во. "Главный вопрос в названии" выглядит так, как будто его составил лингвистический робот из терминов, примерно относящихся к одному облаку. Никакой внутренней логики.
Нет. Высокоуровневые языки просто уходят от низкоуровневых конструкций.
Например есть низкоуровневый машинный код, ниже которого только электрические сигналы.
Есть ассемблер, который абстрагируется от машинного кода и уже работает на уровне инструкций и регистров
Есть си, который уже работает с переменными, указателями и структурами
Есть C++ в котором уже есть объекты, наследование и прочее ООП.
А есть python, который просто интерпретируемый.
И имеет динамическую типизацию и сборщик мусора.
Ну и высокоуровневый язык != медленный.
Как пример - Rust, в котором есть очень высокоуровневые абстракции, но при этом он не уступает Си ни в скорости, ни в потреблении памяти.
При этом высокоуровневый язык не всегда строится поверх низкоуровневого - очень часто пишется компилятор/интерпретатор который сразу приводит его к машинному коду. Сишные библиотеки тоже в результате выдают машинный код.