# Carbon (programlama dili)

Carbon (programlama dili)| Carbon'un GitHub organizasyonundaki logosu |
| İlk çıkışı | 19 Temmuz 2022 |
| Geliştirici | Google |
| Etkilendikleri | C++, Rust |
| İşletim sistemi | Çapraz Platform |
| Lisans | Apache-2.0 |
| Olağan dosya uzantıları | .carbon |
| Web sitesi | github.com/carbon-language/carbon-lang/ |

**Carbon,** Google tarafından "C++ Ardıl Dili" olarak oluşturulmuş deneysel bir genel amaçlı programlama dilidir. İlk olarak 2022 yılının Temmuz ayında Carruth Chandler tarafından CppNorth konferansında halka sunuldu. Dil, C++'ın belirlenen çeşitli eksikliklerini düzeltmeyi amaçlar, ancak bunun dışında benzer bir özellik seti de sağlar. Hedeflerinden biri, mevcut C++ kodu ile beraber çift yönlü birlikte çalışabilirliktir. Dil, C++'ın kullandığı ISO sürecinin aksine GitHub üzerinde tasarlanacak ve geliştirilecektir. Dil, Apache Lisansı (Sürüm 2) altında ücretsiz ve açık kaynaklı bir proje olarak geliştirilmiştir.

**Carbon**, GitHub üzerinde açık kaynaklı olarak geliştirilmeye devam ediyor. **Carbon Programlama Dili**'nin geliştirildiği diller ise; C++, Python, Starlark, JavaScript, Shell, HTML ve diğer dillerdir. Aktif olarak (18 Eylül 2022 Tarihinde) 97 geliştirici tarafından katkı sağlanmaktadır.

**Carbon**, resmi olarak "C++'ın deneysel halefi" olarak tanımlanmaktadır. Ancak ne kadar tanımı "halef" olsa da amacı C++ ile birlikte çalışıp, C++'ı daha hızlı, performanslı ve kullanışlı bir konuma getirmektir. Bunu sağlamak için dilde aşağıdaki özellikler bulunmaktadır.

* Bitlere ve adreslere düşük düzeyde erişim ile LLVM kullanarak C++ performans eşleştirme
* Kalıtımdan şablonlara kadar mevcut C++ kodu ile birlikte çalışma
* Mevcut C++ yapı sistemlerinizle çalışan hızlı ve ölçeklenebilir yapılar. Daha güvenli temeller ve bellek açısından güvenli bir alt kümeye doğru artan bir yol

## Carbon Programlama Dili'nin Hedefleri

**Carbon** resmi olarak geliştiriciler tarafından aşağıdakileri desteklemek için tasarlanır;

* Performans açısından kritik yazılım
* Yazılım ve dil gelişimi
* Okunması, anlaşılması ve yazılması kolay kod
* Pratik güvenlik ve test mekanizmaları
* Hızlı ve ölçeklenebilir geliştirme
* Modern işletim sistemi platformları, donanım mimarileri ve ortamları
* Mevcut C++ koduyla birlikte çalışabilirlik ve geçiş

## Carbon Programlama Dili'nin Söz Dizimi

**Carbon** ile bir Merhaba Dünya Programı için aşağıdaki kod bloğu kullanılır:

```
fn Main() -> i32 {
 Print("Hello, World!");
 return 0;
}

```
**Carbon,** aşağıdaki C++ kodunu onun da altındaki **Carbon** koduyla karşılar.

```
# include <math.h>
# include <iostream>
# include <span>
# include <vector>

struct Circle {
 float r;
};

void PrintTotalArea(std::span<Circle> circles) {
 float area = 0;
 for(const Cirlce& c : circles) {
 area += M\_PI \* c.r \* c.r;
 }
 std::cout << "Total area: " << area << "\n";
}

auto main(int argc, char\*\* argv) -> int {
 std::vector<Circle> circles = {{1.0}, {2.0}};
 //'vector'ü örtük olarak 'span'e dönüştürün
 PrintTotalArea(circles);
 return 0;
}

```
Yukarıdaki C++ kodu, aşağıdaki **Carbon** kodu ile aynı işlevi görür.

```
package Geometry api;
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 {
 var circles: Array(Circle) = ({.r = 1.0},
 {.r = 2.0});
 PrintTotalArea(circles);
 return 0;
}

```

## Kaynakça

## Dışa Bağlantılar

* Carbon Language "Carbon Language Github". 25 Temmuz 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Temmuz 2022.
* Compiler Explorer'da Carbon (godbolt)19 Temmuz 2022 tarihinde Wayback Machine sitesinde arşivlendi.