Pull to refresh

Google развивает язык программирования Carbon для экспериментальной замены C++

Reading time2 min
Views38K


Разработчики из Google развивают язык программирования Carbon в качестве экспериментальной замены C++. Исходные коды проекта распространяются под лицензией Apache 2.0.

Предполагается, что в языке Carbon будут устранены недостатки C++, его применение будет удобнее, а возможности станут намного шире. Код Carbon легко читать, понимать и писать. Carbon в настоящее время является экспериментальным проектом. Согласно дорожной карте по развитию Carbon, к концу 2022 года должна быть завершена разработка основных конструкций языка, включая проработку выражений и операторов, классов, универсальных шаблонов, основных типов, интерфейсов, указателей и совместимость с языком C++.

По данным ресурса OpenNET, Carbon поддерживает базовую переносимость с C++, может интегрироваться с имеющимся кодом на C++ и предоставляет инструменты для упрощения миграции существующих проектов, автоматически транслирующие C++-библиотеки в код на языке Carbon.

Разработчики пояснили, что, например, можно переписать на Carbon определённую библиотеку и использовать её в существующем проекте на С++. Компилятор Carbon написан с использованием LLVM и наработок Clang.

Основные особенности и возможности Carbon:

  • легко освоить, особенно при наличии опыта по использованию C++;
  • создан по принципу «всё включено» («Batteries included»), включая компилятор, библиотеки, документы, инструменты, менеджер пакетов и многое другое;
  • производительность результирующего кода, сопоставимая с С++ с использованием LLVM, с сохранением возможности низкоуровневого доступа к адресам и данным на битовом уровне;
  • переносимость с существующим кодом на C++, включая наследование классов и шаблонов;
  • быстрая и масштабированная сборка, совместимая с существующими сборочными системами для C++;
  • удобные обновления и упрощённая миграция между разными версиями Carbon;
  • предоставление средств для безопасной работы с памятью, использование которых позволяет защититься от уязвимостей, вызванных обращением к области памяти после её освобождения, разыменованием нулевых указателей и выходом за границы буфера.

Разработчики пояснили, что при таком выбранном ими подходе по разработке Carbon они опираются на существующую экосистему C++, используют существующие разработки, кодовые базы и помощь сообщества разработчиков. Они напомнили, что есть несколько языков, которые следовали этой модели для других экосистем, и Carbon стремится выполнить аналогичную роль для C++: JavaScript → TypeScript, Java → Kotlin и С++ → Carbon.

На GitHub уже доступна демонстрация прототипа интерпретатора языка Carbon под названием Carbon Explorer.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+21
Comments78

Other news

Change theme settings