LINUX.ORG.RU
ФорумTalks

Популярные высокоуровневые ЯП с AOT компиляцией или транспайлингом в другие AOT компиляторы для системного программирования (например, CLI утилитки) с максимально широкой поддержкой таргетов (оси, архитектуры и т.п.)

 ,


0

4

Вероятно, наиболее портируемыми ЯП будут те, для которых есть транспайлер в С, Free Pascal или хотя бы Rust?

Из известных мне относительно популярных транспайлеров в C: Nuitka (для Python) и Nelua/Terra (для Lua).

Я бы предложил ещё Mono (C#, IronPython, etc.) и GraalVM (целая коллекция ЯП), но оказывается, у их AOT компилятора таргетов кот наплакал (x86 и ARM и то вроде бы не всякой битности).

Golang не нравится своим синтаксисом,

Rust - это IMHO уже перебор, слишком низкоуровневый, если его использовать не только для плагинов Ion, а писать на нём целиком всю свою утилиту.



Последнее исправление: sanyo1234 (всего исправлений: 9)

Кстати, плагины для Ion shell вроде бы как раз можно писать на Rust, судя по:

https://gitlab.redox-os.org/redox-os/ion/-/issues/508

https://gitlab.redox-os.org/redox-os/ion/-/issues/248

https://gitlab.redox-os.org/redox-os/ion/-/issues/?sort=created_date&state=all&search=plugin&first_page_size=20

Тогда теоретически, наверно, Ion shell - один из лучших вариантов.

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

Пиши по-русски. А то какие-то аоты и траспайеры, начитался всякой графомании с аббревиатурами.

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

начитался всякой графомании с аббревиатурами.

Постарайся не лезть в ветки, в которых ничего не смыслишь.

sanyo1234
() автор топика
Ответ на: комментарий от firkax

Постарайся не создавать ветки, в которых ничего не смыслишь.

На основании чего ты сделал такие свои очередные тупые выводы?

sanyo1234
() автор топика
Ответ на: комментарий от firkax

Ты либо тролль либо необразованный ламер.

Мне твои советы даром ненужны.

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

Тогда теоретически, наверно, Ion shell - один из лучших вариантов.

Но конечно он не имеет AOT компилятора, не считая Rust для плагинов. Зато без плагинов он не тащит за собой никаких зависимостей, только один бинарник ion.

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

А, ладно. Успехов!

Хых, я пока просто интересуюсь. Был бы спонсор, другой разговор.

sanyo1234
() автор топика

Не очень понятен контекст вопроса, т.е. чтобы что?

Вероятно, наиболее портируемыми ЯП будут те, для которых есть транспайлер в С или Free Pascal?

Очевидно, что наиболее портируемыми языками будут собственно сами Си и Паскаль. Надо что-то ещё? Ну есть разные транспиляторы из ЛИСПа и Схемы в Си.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Не очень понятен контекст вопроса, т.е. чтобы что?

Поправил заголовок: Популярные высокоуровневые ЯП (т.е. типа Python, Java, Visual Basic, etc.).

sanyo1234
() автор топика
Ответ на: комментарий от no-such-file

Не очень понятен контекст вопроса, т.е. чтобы что?

Автор учится на инфоцыганскихмодных девопс-курсах и жаждет куда-то применить услышанное.

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

Автор учится на инфоцыганских модных девопс-курсах и жаждет куда-то применить услышанное.

У тебя у самого-то какое образование? Сельской школы?

sanyo1234
() автор топика
Ответ на: комментарий от firkax

Я в школу не хожу там теперь только плохому научат.

А как в институт будешь поступать?

sanyo1234
() автор топика
Ответ на: комментарий от quickquest

Про VLang то я и забыл, хотя раньше сам уже упоминал про него на ЛОРе.

Сам компилит в С.

Кроме того, судя по описанию, умеет преобразовывать другие сорцы на С и Golang в свой синтаксис.

Наверно, это очень интересный вариант, если он более безопасный, чем обычные Сишка с Паскалем, и вроде не такой вычурный синтаксис как в Rust.

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

Почему ты Nim в AOT записал? Это обычный компилируемый язык.

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

Короче, не выэтовайся и бери PyPy.

Зачем? Разве он умеет AOT компиляцию, чтобы запускать один банарник аналогично GoLang и Nuitka и при этом не тащить все питонячие сорцы?

Посравнению с обычным питоном выигрыш в 2-3 раза

Причём тут производительность для CLI утилитки?

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

Aot не имеет отношения к обычным компилируемым языкам. Golang – это компилируемый язык, а не AOT интерпретатор/виртуальная машина

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

Он тоже компилируемый

Под самостоятельностью понималась возможность запускать без интерпретатора и кучи сорцовых либ к нему, т.е. AOT.

AOT был фичей Golang с самого начала, ты не открыл тут ничего нового для меня.

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

Под самостоятельностью понималась возможность запускать без интерпретатора и кучи сорцовых либ к нему, т.е. AOT.

Это какой-то кринж. Почитай, что такое ahead of time compilation

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

Это какой-то кринж. Почитай, что такое ahead of time compilation

Может быть, хватит «умничать». Про AOT я писал сначал в контексте интерпретаторов либо JIT компиляторов типа Mono, .NET, JVM based, etc.

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

Под самостоятельностью понималась возможность запускать без интерпретатора и кучи сорцовых либ к нему, т.е. AOT.

AOT был фичей Golang с самого начала, ты не открыл тут ничего нового для меня.

Ессно про AOT я писал в контексте интерпретаторов либо JIT компиляторов типа Mono, .NET, JVM based, etc

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

У тебя точно всё хорошо с головой?

AOT compilation is often associated with the act of compiling a higher-level programming language such as C or C++, or an intermediate representation like Java bytecode or .NET Framework Common Intermediate Language (CIL) code, into a native machine code so that the resulting binary file can execute natively

https://en.wikipedia.org/wiki/Ahead-of-time_compilation

sanyo1234
() автор топика
Ответ на: комментарий от hateWin

Aot не имеет отношения к обычным компилируемым языкам.

Почему? Я же уже упоминал предположение, что у тебя имбецильность. Сходи уже, проверься.

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

Почитай, что такое ahead of time compilation

Хотя бы на русский для начала попытайся перевести «ahead of time» of what? Execution!

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

И? Почему ты написал, что Go – AOT язык? Он компилируется в нативный код. А AOT – это предварительная компиляция байткода в нативный код.

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

Сходи уже, проверься

Я рад, что ты иногда смотришься в зеркало. Последуй своему же совету – иди, проверся

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

А AOT – это предварительная компиляция байткода в нативный код.

Почему только байт кода? Откуда ты это взял?

По твоему сорцы компилятся after of time of execution?

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

after of time of execution?

ЩИТО? По-моему, AOT присходит, когда виртуальная машина заранее компилирует байт-код в нативный код и кеширует результат. А ты говоришь про независимость от интерпретатора. Это вообще не связанные между собой вещи

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

Если внезапно на тебя найдет просветление и ты перестанешь троллить в моих ветках, придираясь к буквам и небольшим неточностям в формулировках, то до тебя возможно дойдёт, что я интересуюсь высокоуровневыми ЯП и транспайлерами для них, которые в результате на выходе компилируют в одиночные бинарники типа GoLang с максимальным количеством возможных таргетов.

Но GoLang мне не нравится своим синтаксисом.

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

придираясь к буквам и небольшим неточностям в формулировках

Ты просто свалил в одну кучу два абсолютно разными понятиями и поставил между ними знак тождества – ничего себе неточность!

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

ЩИТО? По-моему, AOT присходит, когда виртуальная машина заранее компилирует байт-код в нативный код и кеширует результат.

Где об этом написано на странице:

https://www.mono-project.com/docs/advanced/aot/

?

Ты AOT компилятор с JIT компилятором не перепутал случайно? Или виртуальную машину с SDK?

sanyo1234
() автор топика
Ответ на: комментарий от hateWin

Ты просто свалил в одну кучу два абсолютно разными понятиями и поставил между ними знак тождества – ничего себе неточность!

https://en.wikipedia.org/wiki/Ahead-of-time_compilation

Most often, it is associated with the act of compiling a higher-level programming language such as C or C++, or an intermediate representation such as Java bytecode 

Higher level OR bytecode, а НЕ только bytecode, как ты пишешь.

sanyo1234
() автор топика
Ответ на: комментарий от hateWin

Предварительная компиляция байт-кода в нативный код.

Цитату точно напиши с той страницы.

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

И? К той белиберде, которую ты писал про независимость от интерпретатора это не имеет отношения.

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

Прекрати указывать, что мне делать и начни читать книжки

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

Короче, не выэтовайся и бери PyPy.

PyPy может сгенерить одиночный бинарник аналогично Nuitka и чтобы такой бинарник не требовал для своего запуска ни сорцов, ни PyPy?

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

Вероятно, наиболее портируемыми ЯП будут те, для которых есть транспайлер

На основании чего ты сделал такой вывод? Написать кроссплатформенный интерпретатор гораздо проще, чем кроссплатформенный транспайлер.

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

На основании чего ты сделал такой вывод?

Возможно ты не так понял, я про кроссплатформенность выхлопа транспайлера (Сишка, Pascal, Rust), а не запуска самого транспайлера на разных платформах?

Написать кроссплатформенный интерпретатор гораздо проще,

Мне ненужен интерпретатор, мне нужен инструмент, который код на высокоуровневом ЯП превращает в одиночный бинарник как это происходит у GoLang.

Можно упростить вопрос, какие существуют высокоуровневые ЯП - аналоги GoLang с точки зрения деплоя выхлопа (много таргетов, где можно запустить выхлоп), но с более приятным синтаксисом, чем у GoLang.

Haxe ещё есть, у него один из языковых таргетов - Сишка, а у Сишки по идее должно быть много таргетов для запуска выхлопа (собранного бинарника).

sanyo1234
() автор топика
Последнее исправление: sanyo1234 (всего исправлений: 5)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)