?

Log in

No account? Create an account

Рабочее - Ваши рубидии уже у кобальта во ртути

Jan. 3rd, 2014

04:54 pm - Рабочее

Previous Entry Share Next Entry

Comments:

[User Picture]
From:morfizm
Date:January 4th, 2014 03:36 am (UTC)
(Link)
Первый.

Я считаю, что неявные касты и численные сравнения для разных типов допустимы только в C и в C++, исключительно из уважения к истории.

В во всех остальных языках это выглядит отвратительно. Надо требовать явный каст на этапе компиляции.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:January 4th, 2014 04:12 am (UTC)
(Link)
Верилог всего на год моложе, чем С++, так что и его можно уважить.
А язык с явными кастами на этапе компиляции в индустриальном использовании приводит к тому, что разработчики с ума сходят и пишут белиберду вместо эффективного кода.
(Reply) (Parent) (Thread)
[User Picture]
From:morfizm
Date:January 4th, 2014 04:44 am (UTC)
(Link)
В отношении года создания - да, справедливо. Но про Верилог я узнал только сегодня, а про C++ я знал почти с самого начала.

Можно примеры? (Если не белиберды, то хотя бы языков, где вы её видели).
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:January 4th, 2014 04:56 am (UTC)
(Link)
Язык был, вестимо, VHDL, а код был связан с размножением знакового бита при преобразовании с увеличением ширины данных, где данные были не числа, а битовые векторы. Безымянный автор кода, который мне пришлось отлаживать, отчаявшись написать компилируемый код, не придумал ничего лучше, чем присваивать биты в цикле по одному. В его оправдание скажу, что и у меня получилось правильно написать необходимую функциональность не с первого раза. А на weakly typed language это пишется тривиально, типа b = signed(a);
(Reply) (Parent) (Thread)
[User Picture]
From:morfizm
Date:January 4th, 2014 05:06 am (UTC)
(Link)
Спасибо! Интересная штука.
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:January 4th, 2014 05:36 am (UTC)
(Link)
Сравнения (на равенство, больше-меньше, я о целых и вещественных числах) должны быть автоматически математические без требования явного приведения типов в коде программистом, даже если язык поддерживает целочисленные типы со знаком и без. Прошлый век же такое требовать или за кулисами нематематически приводить знаковые к беззнаковым, ломая простую и понятную всем математическую идиому.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:January 4th, 2014 05:57 am (UTC)
(Link)
Математические сравнения бывают и по модулю 2n.

(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:January 4th, 2014 06:51 am (UTC)
(Link)
Много чего бывает. В мире полно кода, где неправильно сравниваются signed и unsigned.
(Reply) (Parent) (Thread)