Jump to content

Carbon (язык программирования)

Углерод
Темно-серый круг с белой буквой «С» без засечек посередине.
Логотип организации Carbon на GitHub
Семья С
Разработано Google
Дисциплина набора текста Статический , именительный , частично предполагаемый
Язык реализации С++
Лицензия Apache-2.0-с-LLVM-исключением
Расширения имен файлов .carbon
Веб-сайт github /углеродный язык
Под влиянием
С++ , Руст , Свифт [ нужна ссылка ]

Carbon — это экспериментальный язык программирования, разработанный для взаимодействия с C++ . [1] Проект с открытым исходным кодом и был запущен в Google . Инженер Google Чендлер Каррут впервые представил Carbon на конференции CppNorth в Торонто в июле 2022 года. Он заявил, что Carbon был создан как преемник C++. [2] [3] [4] Ожидается, что у языка будет экспериментальная версия MVP 0.1 в 2025 году и готовая к использованию версия 1.0 после 2027 года. [5]

Язык призван исправить несколько очевидных недостатков C++. [6] но в остальном предоставляет аналогичный набор функций. Основными целями языка являются читаемость и «двусторонняя совместимость» (которая позволяет пользователю включать код C++ в файл Carbon), в отличие от использования нового языка, такого как Rust , который, хотя и находится под влиянием C++, не является двусторонняя совместимость с программами на C++. Решение об изменении языка будет приниматься руководителями Carbon. [7] [8] [9] [10]

Документы Carbon, проектирование, реализация и сопутствующие инструменты размещены на GitHub под лицензией Apache-2.0 с исключениями LLVM . [11]

Пример [ править ]

Ниже показано, как можно написать программу на Carbon и C++: [12]

Углерод С++
package Geometry;
import Math;

class Circle {
  var r: f32;
}

fn PrintTotalArea(circles: Slice(Circle)) {
  var area: f32 = 0;
  for (c: Circle in circles) {
    area += Math.Pi * c.r * c.r;
  }
  Print("Total area: {0}", area);
}

fn Main() -> i32 {
  // A dynamically sized array, like `std::vector`.
  var circles: Array(Circle) = ({.r = 1.0}, {.r = 2.0});
  // Implicitly converts `Array` to `Slice`.
  PrintTotalArea(circles);
  return 0;
}
#include <numbers>
#include <print>
#include <span>
#include <stdfloat>
#include <vector>
// or: import std;

struct Circle {
  std::float32_t r;
};

void PrintTotalArea(std::span<Circle> circles) {
  std::float32_t area = 0;
  for (const Circle& c : circles) {
    area += std::numbers::pi * c.r * c.r;
  }
  std::print("Total area: {}\n", area);
}

int main() {
  std::vector<Circle> circles{{.r = 1.0}, {.r = 2.0}};
  // Implicitly converts `vector` to `span`.
  PrintTotalArea(circles);
  return 0;
}

См. также [ править ]

Ссылки [ править ]

  1. ^ «ЧИТАЙТЕ» . Проверено 6 сентября 2023 г. Он разработан с учетом совместимости с C++, а также широкомасштабного внедрения и миграции для существующих кодовых баз C++ и разработчиков.
  2. ^ «Запланированные мероприятия на вторник, 19 июля, 09:00 – 10:30» . CppNorth, Канадская конференция по C++, 17–20 июля 2022 г. CppNorth . Проверено 21 июля 2022 г. - через Sched.com.
  3. ^ «Carbon Language: экспериментальный преемник C++ — Чендлер Каррут — CppNorth 2022» . CppNorth. 22 июля 2022 г. — через YouTube .
  4. ^ Брэдшоу, Кайл (19 июля 2022 г.). «Carbon, новый язык программирования от Google, стремится стать преемником C++» . 9to5Google .
  5. ^ Carbon Language: Roadmap , Carbon-language, 11 января 2024 г. , получено 18 января 2024 г.
  6. ^ «Трудности улучшения C++» . репозиторий Carbon-Language/Carbon-Lang . Google . 21 июля 2022 г. — через GitHub .
  7. ^ Каррут, Чендлер; Росс-Перкинс, Джон; Райли, Мэтью; Хаммерт, Сидней (23 июля 2022 г.). «Эволюция и управление» . репозиторий Carbon-Language/Carbon-Lang . Google — через GitHub .
  8. ^ Иллидж, Майлз (21 июля 2022 г.). «Язык программирования Carbon от Google призван заменить C++» . Мой широкополосный доступ .
  9. ^ Джексон, Иоав (20 июля 2022 г.). «Google запускает Carbon, экспериментальную замену C++» . Новый стек .
  10. ^ Мустафа, Онса (20 июля 2022 г.). «Carbon, новый язык программирования от Google как преемник C++» . ТелефонМир .
  11. ^ "carbon-lang/ЛИЦЕНЗИЯ" . Гитхаб . 16 июня 2020 г. Проверено 24 июля 2022 г.
  12. ^ "carbon-lang/docs/images/snippets.md в багажнике · Carbon-language/carbon-lang" . Гитхаб . Проверено 16 декабря 2023 г.

Внешние ссылки [ править ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d62c8c4f40332571f2fb22b336ed32f9__1716704340
URL1:https://arc.ask3.ru/arc/aa/d6/f9/d62c8c4f40332571f2fb22b336ed32f9.html
Заголовок, (Title) документа по адресу, URL1:
Carbon (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)