lqp - Andrew Tomazos
November 27th, 2024
01:31 pm

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
Andrew Tomazos

(27 comments | Leave a comment)

Comments
 
From:(Anonymous)
Date:November 27th, 2024 - 07:07 am

Каша в голове

(Link)
>от компиляции программы на Джаве

невежественная хуйня какая-то, как и всё у коммуняк. У джавы свой собственный компилятор. AOT компилятор жабы GCJ из gcc никто вообще не использует, потому что он медленный и нихуя не совместимый.

Использование бекенда от C для языков отличных от C ведет к всяким нежелательным последствиям, от невозможности компиляции в быстрый код, до вторжения С-сематики в семантику языка, который вынужден по тем или иным причинам использовать бекенд ориентированный на С/C++(в основном по причинам абсурдной стоимости написания своего бекенда). Сейчас у раста например куча проблем из-за использования llvm (смотреть в t-opsem), где llvm не может предоставить гарантии которые нужны расту.

Ещё нужно отметить, что в жабе практически нет undefined behavior -- это highly defined language.

>Это фича и любой язык программирования занимающий ту же нишу что и Це будет должен обладать теми же свойствами.

Бред сивой кобылы. Ничто не мешает языку системного программирования минимизировать undefined behavior до уровня после которого его просто не получится избежать. Например unsafe write по указателю куда-нибудь, где layout не определен.

UB перекочевал из ранних компиляторов, из времен когда был жуткий зоопарк архитектур, и какие-то детали просто нельзя было определить для языка, не сломав поддержку какой-нибудь архитектуры. Ещё он полезен для оптимизации. Но чтоб авторитетно сказать сколько UB дает процентов производительности на современных компиляторах нужно быть специалистом по компиляторам. Я прозреваю что там не так много процентов.

...

Вообще весь пост какой-то шизофренический -- в цитате ставится под вопрос юридический статус организации, а в теле поста какие-то невнятные профанские рассуждения об устройстве языков и компиляторов, природе "опеки".

UB в целом признан исторической ошибкой, которая в том числе ведет к уязвимостям, поэтому его и пытаются минимизировать.
From:[info]lqp
Date:November 27th, 2024 - 01:04 pm

Re: Каша в голове

(Link)
компилятор жабы GCJ из gcc никто вообще не использует,


Да, действительно. Я вообще-то имел в виду весь зоопарк, от C++ до Go, но перечислять его каждый раз неудобно. И GCC не единственный компилятор.

языку системного программирования минимизировать undefined behavior


Undefined behavior ( как отличная от unspecified behavior, implementation-defined behavior etc etc сущность) это вообще внутренний жаргон стандарта С/С++, даже не самого языка. Никто не заставляет пользоваться им при описании других языков. Более того, даже при описании Це оно появилось далеко не сразу.

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

цитате ставится под вопрос юридический статус организации, а в теле поста какие-то невнятные профанские рассуждения об устройстве языков и компиляторов,


Потому что это репост двух различных постов в фсбуке, посвященных разным аспектам одного и того же события. Я даже специально горизонтальной чертой их разделил.
From:(Anonymous)
Date:November 27th, 2024 - 04:26 pm

Re: Каша в голове

(Link)
>даже не самого языка.

Какой-то бред написан. UB это часть языка. Программист должен знать что это такое, и это объясняется в книжках.

>Никто не заставляет пользоваться им при описании других языков

в unsafe языках это неизбежность, и unsafe языки вроде раста используют undefined behavior терминологию тоже. В safe языках, да, можно определить почти всё.

>а управление реальной железной машиной как она есть

UB тут ни при чем. Зависит от того что определено в стандарте языка. Определить можно всё что угодно, в том числе всё то, что нужно для написания операционки. Для этого правда нужно более тесное сотрудничество процессоро-делателей и языков.
[User Picture]
From:[info]necax
Date:November 28th, 2024 - 01:38 am

Re: Каша в голове

(Link)
Значение знаешь? Раст это [йет очередная] попытка жабаскрипт-макак сделать убийцу крестов с закономерным итогом. И, естественно, обезьянки заимствовали красивое слово "undefined behavior", не поняв толком, что это значит. Впрочем, и ты тоже. Unsafe это unsafe, а UB это задокументорованный не-баг-а-фича a++ - a++.

> операционки
> процессор
Такую хуиту пишешь...
From:[info]lqp
Date:November 28th, 2024 - 03:08 am

Re: Каша в голове

(Link)
UB это задокументорованный не-баг-а-фича a++ - a++.


"a++ - a++" - это как раз unspecified behavior и такого в любом языке системного программирования высокого уровня действительно будет полно.

А Undefined Behavior - это про другое, не про специфику железа а про бондаж и дисциплину.
[User Picture]
From:[info]necax
Date:November 28th, 2024 - 04:21 am

Re: Каша в голове

(Link)
В нормальных языках такого нет.
И в Цє такого бы тоже не было, если бы такие структуры, как коммитет не подразумевали засилья красножопого актива и бюрократизацию всего и вся. Поэтому структура, в своё время неспешно легализовавшая bool теперь способна думать только о жидах и ребе Марксе (всё в соответстствии с законом Паркинсона, в принципе).

> unspecified behavior
> Undefined Behavior
Просто играешь словами и проигрываешь, потому что (a) это одно и то же, (b) unsafe это unsafe это unsafe, кому нужен баунд-чекер, пишут на С++/CLI и (c) int a, b; bool c = &a < &b;
Powered by LJ.Rossia.org