LINUX.ORG.RU

Zen C — очередной улучшенный Си

 , zen c, , ,


0

3

https://www.zenc-lang.org
https://github.com/z-libs/Zen-C
https://github.com/z-libs/Zen-C/blob/main/translations/README_RU.md:

Современная эргономика. Никаких накладных расходов. Чистый Си.
Пишите как на высокоуровневом языке, запускайте как Си.
Zen C — это современный язык системного программирования, который компилируется в человекочитаемом GNU C/C11. Он предоставляет богатый набор возможностей, включая вывод типов, сопоставление с паттернами, генерику, трейты, async/await и ручное управление памятью с возможностями RAII, при этом поддерживая 100% совместимость с ABI Си.

Портативная сборка (APE)
Zen C можно скомпилировать как Actually Portable Executable (APE) с помощью Cosmopolitan Libc. Это создаёт один исполняемый файл (.com), работающий нативно на Linux, macOS, Windows, FreeBSD, OpenBSD и NetBSD на архитектурах x86_64 и aarch64.

https://github.com/z-libs/Zen-C/blob/main/examples/features/comptime_fib.zc:

fn main() {
    comptime {
        let N = 20;
        let fib: long[20];
        fib[0] = (long)0;
        fib[1] = (long)1;
        for let i=2; i<N; i+=1 {
            fib[i] = fib[i-1] + fib[i-2];
        }

        printf("// Generated Fibonacci Sequence\n");
        printf("let fibs: int[%d] = [", N);
        for let i=0; i<N; i+=1 {
            printf("%ld", fib[i]);
            if (i < N-1) printf(", ");
        }
        printf("];\n");
    }

    print "Compile-time generated Fibonacci sequence:\n";
    for i in 0..20 {
        print f"fib[{i}] = {fibs[i]}\n";
    }
}
★★★★★

Везде используется let вместо типов - уже неправильный «высокоуровневый С». Просто сказали бы, что язык транслируется в C как одна из фич, да убрали бы C из названия.

Bfgeshka ★★★★★
()

Си нужно заменить. Но если бы это было возможно, это уже давно было бы сделано. К сожалению, это невозможно.

kaldeon
()

Cosmopolitan Libc makes C/C++ a build-once run-anywhere language, … runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD 7.3 + NetBSD + BIOS

Интересно, у каких проектов есть такая кросплатформенность.

apt_install_lrzsz ★★★★
()
Ответ на: комментарий от kaldeon

тех кто мог создать гипотезу, доказать теорему и на практике это всё подтвердить, в рамках PLM - Programming Language Model, уже очень мало и им уже не так интересно это.

etwrq ★★★★★
()
https://itssamuelrowe.github.io/samuel-rowe-resume.pdf

Вот резюме этого мальчика, который завалил своим поделием пол интернета. Работу он ищет, свалить он хочет из миллиардной Индии в какой-нибудь Майкрософт, вот и пиарит на всех площадках свой дипломный проект.

Будем обсуждать дипломы каждого ПТУшника?

VIT ★★
()
Ответ на: комментарий от VIT

свалить он хочет из миллиардной Индии

Как будто это что-то плохое. Ты-то откуда пишешь?

dataman ★★★★★
() автор топика
Ответ на: комментарий от Bfgeshka

это походу растаманы забежали из своей помойки. не хватает только орательных знаков и прочего треша…

а чорт да это и есть раст. это буквально раст без борова, вместо борова у них поросёнок бегает

ckotctvo
()
Ответ на: комментарий от dataman

В том, что он хочет уехать нет ничего плохого. Плохо то, как он это делает. Заводить аккаунты на всех возможных платформах, мусорить во всех возможных проектах. Сейчас этим ИИ занимается… ещё его на хватало.

VIT ★★
()

Где ты Си там увидел?

firkax ★★★★★
()

printf()

print

Кто-нибудь, объясните мне, зачем нужны две реализации одного и того же функционала в новом ЯП?

mister_me ★★
()
Ответ на: комментарий от mister_me

Наверное, чтобы продемонстрировать богатство возможностей – Си или Питон стиль. :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от mister_me

Так print без скобок пишется

Ну а в ОП как?

print "Compile-time generated Fibonacci sequence:\n";
for i in 0..20 {
     print f"fib[{i}] = {fibs[i]}\n";
}
dataman ★★★★★
() автор топика

Прекратите выкапывать стюардессу.

Nervous ★★★★★
()
Ответ на: комментарий от mister_me

Ну и ладно, я не разбираюсь в серпентологии.

dataman ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.