Carbon (programlama dili)

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;
}

Dışa Bağlantılar ve Kaynakça 

 Compiler Explorer'da Carbon (godbolt) 

Programlama dilleri
Google yazılımları
__DİZİN__