Size: a a a

Compiler Development

2020 January 26

А⚙

Антон ⚙️ in Compiler Development
Ну в смысле "почему"? Стандарт языка так семантику определяет
источник

МБ

Михаил Бахтерев in Compiler Development
Антон ⚙️
Не обязательно
Ну... Есть же вполне себе научное исследование этого вопроса. Число багов зависит исключительно от объёма кода.
источник

AT

Alexander Tchitchigin in Compiler Development
Действительно. Что-то я в стандарте C(11) не припоминаю никакого формального описания какой бы то ни было абстрактной машины... 🤔
источник

МБ

Михаил Бахтерев in Compiler Development
Антон ⚙️
Ну в смысле "почему"? Стандарт языка так семантику определяет
Как? Там вообще никакой формализации нет
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
Ну... Есть же вполне себе научное исследование этого вопроса. Число багов зависит исключительно от объёма кода.
Ну так в C кода много
источник

МБ

Михаил Бахтерев in Compiler Development
Антон ⚙️
Ну так в C кода много
Ну. Либо мне писать 10 строчек для списка на Си, либо 100 на Rust. Разница есть. Всё же.
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
Как? Там вообще никакой формализации нет
С полной строгостью — да. Что не отменяет того факта, что C не работает также, как реальные компьютеры
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
Ну. Либо мне писать 10 строчек для списка на Си, либо 100 на Rust. Разница есть. Всё же.
Ты забыл весь остальной код
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Ну... Есть же вполне себе научное исследование этого вопроса. Число багов зависит исключительно от объёма кода.
Это, вообще-то, не верное утверждение. Не исключительно.
Точнее будет, количество багов прямо пропорционально объёму кода для фиксированной пары программист x язык программирования.
источник

А⚙

Антон ⚙️ in Compiler Development
Alexander Tchitchigin
Это, вообще-то, не верное утверждение. Не исключительно.
Точнее будет, количество багов прямо пропорционально объёму кода для фиксированной пары программист x язык программирования.
Тут ещё надо учесть, что программист вообще-то учиться с течением времени
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Это, вообще-то, не верное утверждение. Не исключительно.
Точнее будет, количество багов прямо пропорционально объёму кода для фиксированной пары программист x язык программирования.
Неа. Я скидывал статью же с исследованием гитхаба. Из общей картины выбивается Perl, а для остальных языков примерно одинаковая зависимость
источник

AT

Alexander Tchitchigin in Compiler Development
Антон ⚙️
Тут ещё надо учесть, что программист вообще-то учиться с течением времени
Рассматриваем уже выучившихся. Т.е. стационарный процесс внесения багов. 😊
источник

А⚙

Антон ⚙️ in Compiler Development
Михаил Бахтерев
Неа. Я скидывал статью же с исследованием гитхаба. Из общей картины выбивается Perl, а для остальных языков примерно одинаковая зависимость
Скинь ещё раз, пожалуйста
источник

А

Алексей in Compiler Development
Berkus Decker
чем это отличается от C?
синтаксисом же
источник

МБ

Михаил Бахтерев in Compiler Development
источник

А⚙

Антон ⚙️ in Compiler Development
И да, github не то чтобы прям репрезентативный источник информации
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Неа. Я скидывал статью же с исследованием гитхаба. Из общей картины выбивается Perl, а для остальных языков примерно одинаковая зависимость
Так регрессия усредняет по отдельным разработчикам, нет? Или там контролировали по автору коммита?
Кроме того, существуют исследования, показывающие сильную разницу в качестве кода от программиста к программисту на одном и том же языке. Да и разницу между языками - тоже.
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Так регрессия усредняет по отдельным разработчикам, нет? Или там контролировали по автору коммита?
Кроме того, существуют исследования, показывающие сильную разницу в качестве кода от программиста к программисту на одном и том же языке. Да и разницу между языками - тоже.
Но мы ж ставим вопрос о языке, а не о конкретном человеке. Поэтому усреднялось. Но там много статистики
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Но мы ж ставим вопрос о языке, а не о конкретном человеке. Поэтому усреднялось. Но там много статистики
Общая тенденция понятна и (мной) не оспаривается. Тем не менее, из-за огромной вариации в выразительности языков программирования эквивалент в строчках и, соответственно, багах построить затруднительно. Т.е. в конкретных случаях переход с одного языка на другой может одновременно и увеличить количество строк, и уменьшить общее количество багов.
источник

AT

Alexander Tchitchigin in Compiler Development
Думается, эффект будет особенно заметен для сравнительно многословных, но тем не менее весьма безопасных языков типа Go.
источник