Редактирование: Языки программирования, 05 лекция (от 19 сентября)
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 110: | Строка 110: | ||
<p>В [[Modula|Modula-2]] было два типа INTEGER и CARDINAL, которые неявно друг к другу не преобразовывались.</p> | <p>В [[Modula|Modula-2]] было два типа INTEGER и CARDINAL, которые неявно друг к другу не преобразовывались.</p> | ||
<p>Программист-профессионал должен включать макс уровень предупреждений и добиваться, чтобы у него предупреждений не было.</p> | <p>Программист-профессионал должен включать макс уровень предупреждений и добиваться, чтобы у него предупреждений не было.</p> | ||
- | <p>Была мода в [[1980-е|80-е годы]] делать знаковый и беззнаковый типы несовместимыми, так как явное преобразование заставляет задумываться над ошибками. Страуструп в первом варианте Си с классами запретил преобразование между знаковыми и беззнаковыми типами. Ни одна из существ программ на языке C не прошла тест на компиляцию в первом варианте C++. Но эти программы работают, правильно | + | <p>Была мода в [[1980-е|80-е годы]] делать знаковый и беззнаковый типы несовместимыми, так как явное преобразование заставляет задумываться над ошибками. Страуструп в первом варианте Си с классами запретил преобразование между знаковыми и беззнаковыми типами. Ни одна из существ программ на языке C не прошла тест на компиляцию в первом варианте C++. Но эти программы работают, правильно работаю. Объяснение состоит в том, что профессионалы представляют проблемы, с этим связанные, и эти проблемы решают. В результате неявные преобразования были разрешены (так как главным критерием при проектировании С++ являлась совместимость со стандартными библиотеками), но при опасных выдаётся предупреждения. Дабы не ограничивать возможности программиста, [[Страуструп]] в результате сдался.</p> |
<p>Другим решением была в [[Java]], самое простое решение — запретили беззнаковые типы данных. А зачем вообще нужны беззнаковые типы? Чуть больше диапазон значений в одну сторону, что было важно раньше, когда ''машины были большие, а байты маленькие''. И беззнаковые типы тогда были нужны. </p> | <p>Другим решением была в [[Java]], самое простое решение — запретили беззнаковые типы данных. А зачем вообще нужны беззнаковые типы? Чуть больше диапазон значений в одну сторону, что было важно раньше, когда ''машины были большие, а байты маленькие''. И беззнаковые типы тогда были нужны. </p> |