Войти

Показать полную графическую версию : Качество компиляции или компилятор по-взрослому


Страниц : [1] 2

ALLY
21-03-2024, 10:36
ВБП!
Подскажите, дате линк на С/С++/С# код, компиляция которого наглядно показывает качество компилятора.
Пллизз.

shisik
22-03-2024, 03:23
А что такое качество? А еще это разные языки и разные компиляторы. К тому же, C# компилируется в байткод и выполняется в виртуальной машине (как джава), так что ставить его в один ряд с C и C++ некорректно.

ALLY
22-03-2024, 09:58
А что такое качество? »

Качество компиляции это ВСЁ.
Не имеет значения какой язык.
Для чего вообще существует кодирование?
Чтобы в результате получился "мягкий" продукт, продукция.
А у продукции имеются характеристики - повторяемость, производительность, объём кода и др.
Зачем популярные компиляторы имеют в исходниках сотни тысяч строк кода?

shisik
22-03-2024, 20:18
ALLY, вы чего-то путаете. Качество кода зависит от прямоты рук того, кто его пишет, а не от компилятора.

yurfed
22-03-2024, 20:26
компиляция которого наглядно показывает качество компилятора. »А нет таких. Зависит скорей от исходника. Можно выстроить и в одну строку, а можно и кулак соплями обматать, при этом результат хоть и будет одним и тем же, но алгоритм построения самой программы - совсем разным.
Компилятор ни чем не поможет.
Смотри лучше на сам алгоритм написанного кода.
ЗЫ Поддержу shisikа. Не заметил что добавлено им уже всё то, что сам сказал.

Grabber2006
22-03-2024, 20:52
Современные компиляторы оптимизируют код. Например, убирают выделение памяти под неиспользуемые переменные, убирают лишние повторы в циклах. Но, в основном, зависит от программиста. Можно такое понаписать...

Сейчас нейросети прекрасно справляются с написанием кода. Вопрос времени, когда программисту надо будет только грамотно составить ТЗ.

ALLY
23-03-2024, 01:17
Качество кода зависит от прямоты рук того, кто его пишет, а не от компилятора. »

Качество какого "мягкого" продукта будет выше:
1 Компиляция на Бэйсике?
2 Компиляция на Ассемблере?
3 Компиляция на Си?
4 Компиляция на D?
5 Компиляция на Digital Mars?
6 Компиляция на Go?
7 Компиляция на V?

А нет таких. »

Похоже, что так. А я то губищу раскатал.

когда программисту надо будет только грамотно составить ТЗ. »

Сначала эту самую сеть потребуется научить.
Сама по себе нейросеть, тупак-тупаком.
Представляете, какой объем знаний потребуется?

ПС.
Значит вы хором говорите, что плевать на какой "железяке" код воплощается?
Если код создал "пряморукий" кодер, то всё будет ОК?
Даже если код 64-рядный, а "железяка" 16-рядная?

shisik
23-03-2024, 01:26
Качество какого "мягкого" продукта будет выше:
1 Компиляция на Бэйсике?
2 Компиляция на Ассемблере?
3 Компиляция на Си?
4 Компиляция на D?
5 Компиляция на Digital Mars?
6 Компиляция на Go?
7 Компиляция на V? »

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

Значит вы хором говорите, что плевать на какой "железяке" код воплощается?
Если код создал "пряморукий" кодер, то всё будет ОК?
Даже если код 64-рядный, а "железяка" 16-рядная? »

Совершенно верно. Ведь если программист будет запускать 64-битное приложение на 16-битной платформе, то он точно дурак.

ALLY
23-03-2024, 01:58
shisik,

Хорошо, если главное это "пряморукость", хотя не представлю как физически можно набрать код шлёпая несгибаемыми ладонями по клаве?
Тогда почему значимые компании обзавелись собственными компиляторами?
У Интэл - DPC++ SYCL, у Гугла - LLVM Clang, у Виндовс - Рослин?
Получается, что они "криворукие".

shisik
23-03-2024, 02:53
Тогда почему значимые компании обзавелись собственными компиляторами? »

А еще они новые языки создают, и что? В мире вообще мало что не имеет альтернатив. Даже архитектур процессоров существует уйма, и синтаксисов ассемблера есть минимум два. Хотя казалось бы: пользуйтесь тем, что уже есть. Но нет, велосипедостроительством любят заниматься очень многие. А потом продавать это дело.

Только при чём здесь криворукость? Дай кодеру с прямыми руками любые инструменты - и он сделает хорошо (в рамках той задачи, для чего подходят эти инструменты). А криворукому ничего не поможет, часто даже ментор уровня "гуру", не говоря уже об инструментах.

ALLY
23-03-2024, 10:48
shisik,

Продолжаем разговор.
Скажем у вас имеется Надёжный-Проверенный-Компилятор.
По ходу жизни вам потребовалось изменить ваш НПК, что-то к нему "прикрутив", возможно языковой сервер.
Вы продолжите считать ваш НПК таковым?
Как это проверить?
Можно дважды запустить компиляцию и потом сравнить получившиеся бинарники.
А это время и ресурсы.
Тут логично, после изменения НПК запустить на компиляцию каноническо-образцовый код и проверить результат.
Если он отличается от более ранних результатом, то ветвление:
Отказаться от предложенной работы
Учесть результат при написании заказанного кода.
Якши?

shisik
23-03-2024, 17:00
ALLY, компилятор какого языка и что значит "прикрутить" что-то? Зачем? Компилятор есть компилятор, он получает на входе текст пррограммы на ЯП, а на выходе - объектный файл. К слову, испольлняемый файл, как и библиотеки, создаёт не компилятор, а линковщик из вот этих объктных файлов. Так куда вы чего-то прикрутить предлагаете?

ALLY
23-03-2024, 19:03
Зачем? Компилятор есть компилятор, »

Вы наивный человек.
У последнего Лязга++ номер 18.1.2.
Как вы думаете почему?
Может быть потому, что к нему постоянно "прикручивают и прикручивают"?
Пытаясь повысить качество компиляции?

shisik
23-03-2024, 20:13
ALLY, что-то вы всё в одну кучу валите. Выпуск новой версии разработчиком - это их дело. Сами языки тоже, между прочим, на месте не стоят. А вот что вы как пользователь прикручивать собираетесь?

ALLY
23-03-2024, 23:18
что вы как пользователь »

А я не пользователь.
Я автор.

shisik
23-03-2024, 23:33
А я не пользователь.
Я автор. »

Автор чего? Компилятора? Чего-то очень сильно не похоже, столько косяков в элементарных вещах, начиная от сваливания в одну кучу разных языков. Хотя если вспомнить Попова и Бабушкина, то почему бы и нет?

ALLY
24-03-2024, 01:28
shisik,

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

shisik
24-03-2024, 02:00
ALLY, вы лучше начните с чего-то совсем простого. Ну там с классического C например. Попробуйте добиться чтоб оно хотя бы в одной ОС хотя бы на одном процессоре работало без ошибок. Ну чтоб хотя бы hello world компилировался и запускался. И попробовав, через несколько недель забросите это дело...

Тут важно, чтоб не получилось как в той истории про олимпиаду по программированию, когда в конкурсе архиваторов победила программа копирования. Остальные "архиваторы" просто были не в состоянии распаковать то, что запаковали.

ALLY
24-03-2024, 13:24
И попробовав, через несколько недель забросите это дело... »

Дорогу осилит идущий.
Года через три кубитовая информатика вытеснит всё ныне имеющееся.
Пока у них всё разваливается после тридцатого кубита, но они бодро говорят о 50-ти кубитах.
Все ваши знания, все ваши умения превратятся в ничто, в блоб.
Кто не успел, тот опаздун.
Лет пятнадцать назад, я видел на форуме фото молодого человека стоящего на обочине, с картонкой в руках.
На картонке надпись : Программирую на С.
Дорогу осилит идущий.

shisik
24-03-2024, 18:32
Мне нечего добавить к тому, что я уже сказал. Сколько уже таких "авторов" было? Я создам лучшую в мире операционную систему, язык программирования, архиватор, 3D движок, компилятор (нужное подчеркнуть). И где оно всё? В 99% случаев бросают через пару недель, в оставшемся 1% у особо упоротых получается что-то едва работающее и ни разу не похожее на "лучшее в мире". Почему так происходит? Потому что эффект Даннинга-Крюгера.




© OSzone.net 2001-2012