vak: (Знайка)
[personal profile] vak
Один крутой чувак придумал переделать язык Go в Си. Написал транслятор, на входе которого подмножество Golang, а на выходе стандартный Си11. Убрал из Go всё тяжёлые фичи. Рантайм библиотека не требуется: пользуемся обычной libc. Вот перевод из README проекта:
Solod (So) — это строгое подмножество Go, которое транслируется в обычный C.

Основные особенности:
  • Go на входе, C на выходе. Вы пишете обычный код на Go и получаете читаемый C11 на выходе.
  • Нулевой рантайм. Нет сборщика мусора, нет подсчёта ссылок, нет скрытых аллокаций.
  • Богатая стандартная библиотека. Используйте привычные типы и функции, портированные из стандартной библиотеки Go.
  • Нативная совместимость с C. Можно вызывать C из So и So из C — без CGO и без накладных расходов.
  • Инструменты Go работают «из коробки». Подсветка синтаксиса, LSP, линтинг и go test.
So поддерживает структуры, методы, интерфейсы, срезы (slices), отображения (maps), множественные возвращаемые значения и defer. По умолчанию всё размещается на стеке; куча используется только по желанию через стандартную библиотеку. Для упрощения отсутствуют каналы, горутины, замыкания и дженерики.

So предназначен для разработчиков на Go, которым нужен контроль на уровне системного программирования без необходимости изучать новый язык. А также для программистов на C, которым нравятся безопасность, структура и инструменты Go.
Ставится утилита So командой:
go install solod.dev/cmd/so@latest
По традиции запустим пример Hello World.
$ mkdir hello

$ cd hello

$ go mod init example

$ go get solod.dev@latest

$ cat > main.go
package main

import "solod.dev/so/math"

func main() {
ans := math.Sqrt(1764)
println("Hello, world! The answer is", int(ans))
}
^D

$ so build -o hello .

$ ./hello
Hello, world! The answer is 42
Отличный получается язычок в замену Си. Заметьте: имеются методы и интерфейсы. Никаких инклудов. Можно забыть про make: сборка и подгрузка библиотек делаются стандартной утилитой go. Просто счастье невиданное! 😀
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org