Carbon (programmalastırıw tili)

Carbon 120px Carbon nıń GitHub shólkemindegi logotipi Shańaraǵı C Dúziwshi Google Tiplestiriw tártibi Statikalıq, nominativ, bólek shıǵarılǵan Implementaciya tili C++ Licenziya Apache-2.0-with-LLVM-Exception Fayl keńeytpeleri .carbon Veb-saytı github.com/carbon-language
Carbon — C++ penen baylanısıw ushın tayarlanǵan eksperimental programmalastırıw tili. Joybar ashıq kodlı bolıp, Google-de baslanǵan. Google baǵdarlamashısı Chandler Karrut Carbon-dı birinshi ret 2022-jıldıń iyul ayında Torontodaǵı CppNorth konferenciyasında tanıstırdı. Ol Carbon-nıń C++ miyrasxorı sıpatında jaratılǵanın ayttı. Tildiń eksperimental MVP 0.1 versiyası eń erte 2026-jıldıń aqırında, al óndiriske tayar 1.0 versiyası 2028-jıldan keyin shıǵıwı kútilmekte.

Bul til C++-tiń bir qatar kemshiliklerin dúzetiwge qaratılǵan, biraq basqa jaǵınan uqsas funkciyalar toplamın usınadı. Tildiń tiykarǵı maqsetleri - oqıwǵa qolaylılıq hám «eki tárepleme úylesimlilik» (bul paydalanıwshıǵa Carbon faylına C++ kodın qosıwǵa múmkinshilik beredi). Bul C++-ten tásirlengen, biraq C++ programmaları menen eki tárepleme úylesimli bolmaǵan Rust sıyaqlı jańa tildi paydalanıwǵa qarama-qarsı. Tilge kirgiziletuǵın ózgerisler Carbon basshıları tárepinen sheshiledi.

Carbon-nıń hújjetleri, dizaynı, ámelge asırılıwı hám baylanıslı quralları GitHub-ta Apache-2.0 licenziyası astında LLVM qosımshaları menen jaylastırılǵan.

 Mısal 
Tómende programmanıń Carbon hám C++ tillerinde qalay jazılıwı múmkin ekenligi kórsetilgen:
CarbonC++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("Ulıwma maydan: {0}", area);
}
fn Main() -> i32 {
// Dinamikalıq ólshemli massiv, std::vector sıyaqlı.
var circles: Array(Circle) = ({.r = 1.0}, {.r = 2.0});
// Array-dı Slice-ke implicit túrde ózgertedi.
PrintTotalArea(circles);
return 0;
}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("Ulıwma maydan: {}\n", area);
}

int main() {
 std::vector<Circle> circles{{.r = 1.0}, {.r = 2.0}};
 // `vector`-dı `span`-ǵa implicit túrde ózgertedi.
 PrintTotalArea(circles);
 return 0;
}

 Derekler 

__BÖLİDİMÖNDEMEW__

Kategoriya:Google
Kategoriya:Programmalastırıw tilleri