LINUX.ORG.RU

Языки системного уровня

 , ,


0

3

Всем привет! Вопрос - какие сейчас существуют языки системного программирования? Интересно что придумали на замену Си. О ржавом вкурсе. Его можно не упоминать

Перемещено leave из desktop

Ответ на: комментарий от hateyoufeel

Например, вполне можно считать время выполнения кода и ставить ограничения на это. Функция больше 100500 тактов занимает? Получай ошибку! Вот ради таких плюх всё это тащемта и делают. Ну и ради лулзов, конечно же.

Ну так ради лулзов и я могу это сделать - нужно прост после преобразования сделать чот типа CAT(COUNTER_, OPCODE) вместо вывода с аргументами. Подставить таблицу

OPCODE_0x00 3
OPCODE_0xA5 2
...

И дальше уже что угодно делать с тактами - считать кол-во байтов, считать количество тактов, делать ограничения (через arr[N]) там где код описывается

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

Ну так сделай лол.

Типичный аргумент сишников – смотрите, в нашем недоязычке тоже можно делать магическое пердолево! Но кроме пары недоделанных хелловорлдов и кучи текущего памятью говнокода редко кто что-то показать может.

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

Ну так сделай лол.

Мне наш диалог напоминает разговор глухого с немым:

Фу, какая гадость
Ну сделай лучше, удачи
Делает лучше
Ого какое пердолево
Ну так работает. И даже не требует указания типа
А вот если бы автор там сделал так, то тоже не надо было б. И вообще оно такты считать умеет
Ну так поменяв вот так то, можно и тут считать
Азаза, полный код не написал - фу, сишники обосрались!

По теме есть, что сказать, клоун? Может твой хаскель отличить 0x00 (zero page pointer) от 0х0000 (absolute pointer)?

PPP328 ★★★★★
()
Последнее исправление: PPP328 (всего исправлений: 1)
Ответ на: комментарий от PPP328

По теме есть, что сказать, клоун?

Кто клоун? Ты клоун. Пришёл тут и бряцаешь своим препроцессором. Чо сказать-то хотел?

Может твой хаскель отличить 0x00 (zero page pointer) от 0х0000 (absolute pointer)?

Ну, да. Это единственное, что тебя беспокоит?

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от PPP328

отличить 0x00 (zero page pointer) от 0х0000 (absolute pointer

фига костыли

проапгредься хоть на x86

anonymous
()
Ответ на: комментарий от lovesan

Твой хвалёный sbcl не умеет в кросскомпиляцию (chez-scheme, racket умеют). Чтобы скомпилировать приложение под другую платформу, нужно иметь эту платформу у себя в наличии. Это в 2024 году! А остальные реализации тормозные.

Библиотеки в CL тоже, не смотря на 50 лет существования ЯП, представляют собой ведро помоев (неюзабильное, неоттестированное и от васянов). Ни в какое сравнение с тем же Racket, где несколько PhD с большим количеством времени занимаются своим хобби.

А уж столько фуррей, трансвеститов и (sic!) равинов я не видел ни в одном другом сообществе ЯП.

anonymous
()

Не знаю, возможно, стоит сначала подумать, что тебя не устраивает в Си и какие его проблемы хочешь решить.

Вижу следующие варианты:

  1. Организация кода
  2. Мемори сейфити
  3. Что-то ещё (?)

Первое решают почти все приведённые варианты.

Если второе важно, то, наверное, Rust неплох. Если, при этом, не хочется пердолева с борроу чекером, можно взять что-то со сборщиком мусора. Например, Go. На нём вполне успешно пишут системные утилиты и его хватает.

У C# вон появился Native AOT, оно пока слегка экспериментальное, и имеет ограничения. Но почему нет…

Есть ещё Nim, Zig. Тоже интересные, но я как-то ими не интересовался достаточно, чтобы что-то говорить. Выглядят так-то многообещающе.

Был Vala. By design залочен на Gobject, и в этом вроде его фишка… Вообще, мне очень нравится и идея, и реализация. Грустно, что оно уже почти мёртвое.

Есть ещё Cone. Не думаю, что у него есть будущее, но потыкать вполне интересно.

witaway
()
Последнее исправление: witaway (всего исправлений: 2)
Ответ на: комментарий от witaway

Есть ещё Nim,

У него GC, хотя в последних версиях по умолчанию он на счетчиках ссылок и с разруливателем циклов (как в питоне). В общем условно годен для околосистемного программирования.

Zig.

Безопасности по памяти нет, но в остальном наверно самая лучшая на сегодняшний момент замена си. Вообще реально сейчас только два хороших варианта есть на полноценную замену си, это zig и rust.

Еще есть D, но в контексте системного и около программирования ему тоже очень сильно мешает GC.

anonymous
()
Ответ на: комментарий от hateyoufeel

… аргумент сишников – смотрите, в нашем недоязычке …

Уважаемый, оскорбляя лощадь, вы оскорбляете хозяина! - шевалье ДАртаньян.

А это запрещено правилами форума.

anonymous
()

что придумали на замену Си

даже если придумали, то сишку все равно придется учить, так как без взаимодействия с ней в системщине не обойтись
так что халявы не будет

а раз все равно учить, то не лучше ли сразу на нем писать, без перемешивания с «заменой»? ну а если сишка с ассемблером и верилогом не нравятся, то не суйся в системщину, помимо нее и в других нишах задач полно, например, до сих пор нет ни одного годного бразузерного движка, и с помощью всех этих новомодных язычков так и не смогли эту задачу решить, хотя, казалось бы, тут так и просятся языки с автоматическим управлением памятью, модулями и быстрой компиляцией, но нет - продолжают хавать утечки памяти и прочее непотребство

anonymous
()

https://www.opennet.ru/opennews/art.shtml?num=61551

Релизнулся язык системного программирования HARE. Синтаксис - среднее между JS, C/C++ и Pascal.

«Язык оптимизирован для решения низкоуровневых задач, таких как разработка операционных систем, компиляторов, сетевых приложений и системных утилит, для которых требуется достижение максимальной производительности и полный контроль над выполнением. В языке применяется ручное управление памятью и статическая система типов, при которой каждой переменной явно должен быть присвоен определённый тип.»

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