Показать полную графическую версию : Качество компиляции или компилятор по-взрослому
ВБП!
Подскажите, дате линк на С/С++/С# код, компиляция которого наглядно показывает качество компилятора.
Пллизз.
А что такое качество? А еще это разные языки и разные компиляторы. К тому же, C# компилируется в байткод и выполняется в виртуальной машине (как джава), так что ставить его в один ряд с C и C++ некорректно.
А что такое качество? »
Качество компиляции это ВСЁ.
Не имеет значения какой язык.
Для чего вообще существует кодирование?
Чтобы в результате получился "мягкий" продукт, продукция.
А у продукции имеются характеристики - повторяемость, производительность, объём кода и др.
Зачем популярные компиляторы имеют в исходниках сотни тысяч строк кода?
ALLY, вы чего-то путаете. Качество кода зависит от прямоты рук того, кто его пишет, а не от компилятора.
компиляция которого наглядно показывает качество компилятора. »А нет таких. Зависит скорей от исходника. Можно выстроить и в одну строку, а можно и кулак соплями обматать, при этом результат хоть и будет одним и тем же, но алгоритм построения самой программы - совсем разным.
Компилятор ни чем не поможет.
Смотри лучше на сам алгоритм написанного кода.
ЗЫ Поддержу shisikа. Не заметил что добавлено им уже всё то, что сам сказал.
Grabber2006
22-03-2024, 20:52
Современные компиляторы оптимизируют код. Например, убирают выделение памяти под неиспользуемые переменные, убирают лишние повторы в циклах. Но, в основном, зависит от программиста. Можно такое понаписать...
Сейчас нейросети прекрасно справляются с написанием кода. Вопрос времени, когда программисту надо будет только грамотно составить ТЗ.
Качество кода зависит от прямоты рук того, кто его пишет, а не от компилятора. »
Качество какого "мягкого" продукта будет выше:
1 Компиляция на Бэйсике?
2 Компиляция на Ассемблере?
3 Компиляция на Си?
4 Компиляция на D?
5 Компиляция на Digital Mars?
6 Компиляция на Go?
7 Компиляция на V?
А нет таких. »
Похоже, что так. А я то губищу раскатал.
когда программисту надо будет только грамотно составить ТЗ. »
Сначала эту самую сеть потребуется научить.
Сама по себе нейросеть, тупак-тупаком.
Представляете, какой объем знаний потребуется?
ПС.
Значит вы хором говорите, что плевать на какой "железяке" код воплощается?
Если код создал "пряморукий" кодер, то всё будет ОК?
Даже если код 64-рядный, а "железяка" 16-рядная?
Качество какого "мягкого" продукта будет выше:
1 Компиляция на Бэйсике?
2 Компиляция на Ассемблере?
3 Компиляция на Си?
4 Компиляция на D?
5 Компиляция на Digital Mars?
6 Компиляция на Go?
7 Компиляция на V? »
Постановка вопроса некорректна. На любом языке можно написать хорошо, а можно написать плохо. Соответственно качество будет выше там, где написано хорошо. А еще решение реальной задачи с использованием разных языков программирования подразумевает еще и использование разных библиотек и фреймворков, так что вопрос тем более некорректен.
Значит вы хором говорите, что плевать на какой "железяке" код воплощается?
Если код создал "пряморукий" кодер, то всё будет ОК?
Даже если код 64-рядный, а "железяка" 16-рядная? »
Совершенно верно. Ведь если программист будет запускать 64-битное приложение на 16-битной платформе, то он точно дурак.
shisik,
Хорошо, если главное это "пряморукость", хотя не представлю как физически можно набрать код шлёпая несгибаемыми ладонями по клаве?
Тогда почему значимые компании обзавелись собственными компиляторами?
У Интэл - DPC++ SYCL, у Гугла - LLVM Clang, у Виндовс - Рослин?
Получается, что они "криворукие".
Тогда почему значимые компании обзавелись собственными компиляторами? »
А еще они новые языки создают, и что? В мире вообще мало что не имеет альтернатив. Даже архитектур процессоров существует уйма, и синтаксисов ассемблера есть минимум два. Хотя казалось бы: пользуйтесь тем, что уже есть. Но нет, велосипедостроительством любят заниматься очень многие. А потом продавать это дело.
Только при чём здесь криворукость? Дай кодеру с прямыми руками любые инструменты - и он сделает хорошо (в рамках той задачи, для чего подходят эти инструменты). А криворукому ничего не поможет, часто даже ментор уровня "гуру", не говоря уже об инструментах.
shisik,
Продолжаем разговор.
Скажем у вас имеется Надёжный-Проверенный-Компилятор.
По ходу жизни вам потребовалось изменить ваш НПК, что-то к нему "прикрутив", возможно языковой сервер.
Вы продолжите считать ваш НПК таковым?
Как это проверить?
Можно дважды запустить компиляцию и потом сравнить получившиеся бинарники.
А это время и ресурсы.
Тут логично, после изменения НПК запустить на компиляцию каноническо-образцовый код и проверить результат.
Если он отличается от более ранних результатом, то ветвление:
Отказаться от предложенной работы
Учесть результат при написании заказанного кода.
Якши?
ALLY, компилятор какого языка и что значит "прикрутить" что-то? Зачем? Компилятор есть компилятор, он получает на входе текст пррограммы на ЯП, а на выходе - объектный файл. К слову, испольлняемый файл, как и библиотеки, создаёт не компилятор, а линковщик из вот этих объктных файлов. Так куда вы чего-то прикрутить предлагаете?
Зачем? Компилятор есть компилятор, »
Вы наивный человек.
У последнего Лязга++ номер 18.1.2.
Как вы думаете почему?
Может быть потому, что к нему постоянно "прикручивают и прикручивают"?
Пытаясь повысить качество компиляции?
ALLY, что-то вы всё в одну кучу валите. Выпуск новой версии разработчиком - это их дело. Сами языки тоже, между прочим, на месте не стоят. А вот что вы как пользователь прикручивать собираетесь?
что вы как пользователь »
А я не пользователь.
Я автор.
А я не пользователь.
Я автор. »
Автор чего? Компилятора? Чего-то очень сильно не похоже, столько косяков в элементарных вещах, начиная от сваливания в одну кучу разных языков. Хотя если вспомнить Попова и Бабушкина, то почему бы и нет?
shisik,
Спасибо за содержательную беседу.
Но поскольку искомый мною код проверки качества компиляции в природе отсутствует, прощевайте.
Пойду создавать.
Начать следует с повторяемости и воспроизводимости.
С индукции нисходящей левосторонней рекурсии.
ALLY, вы лучше начните с чего-то совсем простого. Ну там с классического C например. Попробуйте добиться чтоб оно хотя бы в одной ОС хотя бы на одном процессоре работало без ошибок. Ну чтоб хотя бы hello world компилировался и запускался. И попробовав, через несколько недель забросите это дело...
Тут важно, чтоб не получилось как в той истории про олимпиаду по программированию, когда в конкурсе архиваторов победила программа копирования. Остальные "архиваторы" просто были не в состоянии распаковать то, что запаковали.
И попробовав, через несколько недель забросите это дело... »
Дорогу осилит идущий.
Года через три кубитовая информатика вытеснит всё ныне имеющееся.
Пока у них всё разваливается после тридцатого кубита, но они бодро говорят о 50-ти кубитах.
Все ваши знания, все ваши умения превратятся в ничто, в блоб.
Кто не успел, тот опаздун.
Лет пятнадцать назад, я видел на форуме фото молодого человека стоящего на обочине, с картонкой в руках.
На картонке надпись : Программирую на С.
Дорогу осилит идущий.
Мне нечего добавить к тому, что я уже сказал. Сколько уже таких "авторов" было? Я создам лучшую в мире операционную систему, язык программирования, архиватор, 3D движок, компилятор (нужное подчеркнуть). И где оно всё? В 99% случаев бросают через пару недель, в оставшемся 1% у особо упоротых получается что-то едва работающее и ни разу не похожее на "лучшее в мире". Почему так происходит? Потому что эффект Даннинга-Крюгера.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.