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