Size: a a a

Compiler Development

2020 May 04

KR

K R in Compiler Development
Peter Sovietov
Rust, понятное дело, не из этой категории. У меня во всех проектах для микроконтроллеров и ПЛИС память выделяется статически на этапе компиляции. Ну и зачем мне тогда терпеть borrow checker? :)
А вам не надо избегать случайного aliasing'а при работе с массивами, например?

Я игрался с разными классическими сортировками на Clean - если там реализовать ArraySlice, алгоритмы типа "разделяй-и-властвуй" получаются крайне весёлыми.
источник

AK

Andrei Kurosh in Compiler Development
MaxGraey
Nim тоже транспайлится в C. Это не суть важно. Я впомнил это в продолжение темы про незаполненность ниши
Буквально пару дней назад решил ради интереса попробовать поковыряться с Nim. С удивлением узнал, что «общепринятый» в комьюнити способ разработки (плагин для вскода) до сих пор не умеет дебажить и переименовывать. Для дебага можно использовать универсальный ldb, но все идентификаторы будут прокручены через мясорубку. И сообщество до сих пор с этим ничего не сделало. В общем, знакомство не задалось
источник

MS

Mikola Summer Duck in Compiler Development
Ну ним ещё моложе раста, и менее популярный.
источник

AK

Andrei Kurosh in Compiler Development
K R
Я к тому, что "ниша простых низкоуровневых системных ЯП далеко не заполнена." Понятно, что Rust в неё не лезет. Oberon лезет, Zig тоже.
Есть некоторые сомнения, что ниша именно простых системных языков вообще существует. Adoption у Zig и прочих «убийц си», скажем прямо, никакой
источник

PS

Peter Sovietov in Compiler Development
K R
А вам не надо избегать случайного aliasing'а при работе с массивами, например?

Я игрался с разными классическими сортировками на Clean - если там реализовать ArraySlice, алгоритмы типа "разделяй-и-властвуй" получаются крайне весёлыми.
В целом для таких задач хватает просто DSL со строгой типизацией и строгими правилами для программиста в духе запрета на неинициализированные переменные. А от переполнения стека я вообще радикальным образом избавился — стека нет. Ну, рекурсии тоже нет — но кто ее в своем уме на МК использует? %)
источник

DS

Doge Shibu in Compiler Development
Andrei Kurosh
Есть некоторые сомнения, что ниша именно простых системных языков вообще существует. Adoption у Zig и прочих «убийц си», скажем прямо, никакой
Например, иногда очень хочется иметь именно компилируемый в си простой низкоуровневый язык, но при этом  современнее си
источник

DS

Doge Shibu in Compiler Development
Увы, zig в этом плане тоже не очень подходит, т.к. в си не компилится
источник

PS

Peter Sovietov in Compiler Development
Andrei Kurosh
Есть некоторые сомнения, что ниша именно простых системных языков вообще существует. Adoption у Zig и прочих «убийц си», скажем прямо, никакой
Ну, вот конкретная ниша — язык, на котором Линус бы согласился переписать ядро Linux :)
источник

AK

Andrei Kurosh in Compiler Development
Я ни бельмеса не смыслю в разработке ядер, но подозреваю что Rust с его педантичными проверками был бы более подходящим вариантом, чем засахаренный Си
источник

МБ

Михаил Бахтерев... in Compiler Development
Peter Sovietov
Ну, вот конкретная ниша — язык, на котором Линус бы согласился переписать ядро Linux :)
Это уже просто техничнски невозможно. Даже если Линус согласится.

Скорее тут можно о NetBSD фантазировать. Там гибче всё. Какие-то куски то ли на Lua написаны, то ли на Python
источник

МБ

Михаил Бахтерев... in Compiler Development
Andrei Kurosh
Я ни бельмеса не смыслю в разработке ядер, но подозреваю что Rust с его педантичными проверками был бы более подходящим вариантом, чем засахаренный Си
В ядре будет сплошной unsafe. Поэтому смысла в Rust особого нет.
источник

AG

Alex Gryzlov in Compiler Development
только сепарационка, только хардкор :)
источник

PS

Peter Sovietov in Compiler Development
Михаил Бахтерев
Это уже просто техничнски невозможно. Даже если Линус согласится.

Скорее тут можно о NetBSD фантазировать. Там гибче всё. Какие-то куски то ли на Lua написаны, то ли на Python
Ну, я просто привожу пример, чтобы было понятно, что за ЯП ожидается :) Понятно, что Линус не будет писать на Lua или Python свой любимый код для связных списков:
источник

МБ

Михаил Бахтерев... in Compiler Development
Alex Gryzlov
только сепарационка, только хардкор :)
Так это было бы круто, но как её компилить-то в нечто эффективное? Проверить можно, но писать-то придётся на ассемблере или том же Си. Или на DSL каком. Плюс полгода доказательств.
источник

AT

Alexander Tchitchigi... in Compiler Development
Михаил Бахтерев
Так это было бы круто, но как её компилить-то в нечто эффективное? Проверить можно, но писать-то придётся на ассемблере или том же Си. Или на DSL каком. Плюс полгода доказательств.
Автоматические решатели скинут срок до всего-то какого-нибудь месяца. 😃
источник

AG

Alex Gryzlov in Compiler Development
Михаил Бахтерев
Так это было бы круто, но как её компилить-то в нечто эффективное? Проверить можно, но писать-то придётся на ассемблере или том же Си. Или на DSL каком. Плюс полгода доказательств.
а что там компилить, только аннотации постирать
источник

МБ

Михаил Бахтерев... in Compiler Development
Alexander Tchitchigin
Автоматические решатели скинут срок до всего-то какого-нибудь месяца. 😃
Вот не факт. В F* же используются эти решатели. Так половина доказательств состоит из настроек их параметров. Я какой-то типовой диссидент :(((
источник

AG

Alex Gryzlov in Compiler Development
в этом же и смысл аксиоматической семантики, берется уже существующий императивный код и обкладывается пред/пост-условиями
источник

МБ

Михаил Бахтерев... in Compiler Development
Alex Gryzlov
в этом же и смысл аксиоматической семантики, берется уже существующий императивный код и обкладывается пред/пост-условиями
А! Это было к unsafe?
источник

YR

Yurii Rashkovskii in Compiler Development
Doge Shibu
Увы, zig в этом плане тоже не очень подходит, т.к. в си не компилится
Они уже собираются это сделать. https://github.com/ziglang/zig/issues/3772
источник