OberonCore
https://forum.oberoncore.ru/

Какая типизация у Oberon?
https://forum.oberoncore.ru/viewtopic.php?f=1&t=6510
Страница 1 из 2

Автор:  Pimbom [ Воскресенье, 08 Декабрь, 2019 22:41 ]
Заголовок сообщения:  Какая типизация у Oberon?

Как можно охарактеризовать типизацию Oberon? Нашел здесь https://proglib.io/p/literacy-project-type-checking/ таблицу для примера.

JavaScript - Динамическая | Слабая | Неявная
Ruby - Динамическая | Сильная | Неявная
Python - Динамическая | Сильная | Неявная
Java - Статическая | Сильная | Явная
PHP - Динамическая | Слабая | Неявная
C - Статическая | Слабая | Явная
C++ - Статическая | Слабая | Явная
Perl - Динамическая | Слабая | Неявная
Objective-C - Статическая | Слабая | Явная
C# - Статическая | Сильная | Явная
Haskell - Статическая | Сильная | Неявная
Common Lisp - Динамическая | Сильная | Неявная
D - Статическая | Сильная | Явная
Delphi - Статическая | Сильная | Явная
Примечания к таблице:

C# – сохраняет динамическую типизацию, с помощью особого псевдо-типа dynamic с версии 4.0. А также оказывает содействие неявной типизации посредством dynamic и var.

С++ – после стандарта C++11 обрёл опору неявной типизации посредством ключевых слов auto и decltype. Сохраняет динамическую типизацию, в момент использования библиотеки Boost (boost::any, boost::variant). Содержит в себе черты как сильной, так и слабой типизации.

Common Lisp – стандарт предполагает декларации типов, благодаря которым некие реализации используются также для статической проверки типов.

D – также осуществляет поддержание неявной типизации.

Delphi – осуществляет поддержку динамической типизации, с помощью особого типа Variant.

Есть вероятность, что я где-то мог ошибиться, в особенности с CL, PHP и Obj-C, если по какому-либо языку у Вас есть другое мнение – пишите в комментариях.

Автор:  Wlad [ Понедельник, 09 Декабрь, 2019 02:11 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

С/Д|С|Я

Автор:  Info21 [ Понедельник, 09 Декабрь, 2019 08:27 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Статическая Сильная Явная

Автор:  Pimbom [ Понедельник, 09 Декабрь, 2019 09:10 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Цитата:
С/Д|С|Я
А почему тогда буква Д указана?

Автор:  Rifat [ Понедельник, 09 Декабрь, 2019 09:47 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

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

Автор:  Pimbom [ Понедельник, 09 Декабрь, 2019 11:36 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Цитата:
И у многих других языков, где написано статическая получается не только статическая
Это у каких языков?

Автор:  Rifat [ Понедельник, 09 Декабрь, 2019 12:17 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

У всех объекто-ориентированных.

Автор:  Pimbom [ Понедельник, 09 Декабрь, 2019 12:19 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

А если хочу, чтобы динамическая типизация не помешала в работе, то как быть?

Автор:  Rifat [ Понедельник, 09 Декабрь, 2019 12:26 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Непонятный вопрос. Чтобы ответить на него надо понимать какая у вас работа. Что и как вы там делаете и что вам там мешает.
Вспоминается старый анекдот:
Цитата:
- Доктор, когда я делаю вот так, у меня тут болит.
- А Вы так не делайте.

Автор:  Pimbom [ Понедельник, 09 Декабрь, 2019 12:47 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Цитата:
У всех объекто-ориентированных.
А из чего следует, что в C# динамическая типизация присутствует? Она есть, даже если не использовать dynamic?

Автор:  Ярослав Романченко [ Понедельник, 09 Декабрь, 2019 12:59 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Rifat писал(а):
У всех объекто-ориентированных.
Имеется в виду полиморфизм? 8)
А то, эта череда бинарных ответов Да/Нет, действительно анекдот какой-то напоминает :lol:

Автор:  Rifat [ Понедельник, 09 Декабрь, 2019 13:07 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Да. Просто в этой (не самой лучшей) статье есть следующее определение:
Цитата:
Статическая типизация формируется из того, что окончательные типы переменных и функций складываются на этапе сбора данных, то есть в этот момент компилятор убеждён на 100%, какой тип, где находится.

Если следовать этому определению, то любой объекто-ориентированный язык не является статически типизированным.
Если взять более привычное определение http://progopedia.ru/typing/static/:
Цитата:
Статическая типизация означает, что все проверки типов данных выполняются на этапе компиляции, а не на этапе выполнения программы. Кроме того, типы данных ассоциируются с переменными, а не с конкретными значениями.
, то объектно-ориентированные языки снова становятся статическими.
В общем от определения зависит.

Автор:  Pimbom [ Понедельник, 09 Декабрь, 2019 13:13 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

А есть ещё такая формулировка, как безопасная типизация. Что Вы думаете по этому поводу?

Автор:  Rifat [ Понедельник, 09 Декабрь, 2019 13:14 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Да, много чего есть. Вы то что хотите узнать или доказать?

Автор:  Pimbom [ Понедельник, 09 Декабрь, 2019 13:17 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Конечно хочу узнать, поэтому и задал вопрос про безопасную типизацию. А по поводу того, что много чего есть, это интересует в контексте минимизации возможных ошибок.

Автор:  PSV100 [ Понедельник, 09 Декабрь, 2019 18:42 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Pimbom писал(а):
А есть ещё такая формулировка, как безопасная типизация. Что Вы думаете по этому поводу?

Типобезопасность? Заодно там же в вики по теме:
Сильная и слабая типизация
Каламбур типизации

«Сильная и слабая типизация» писал(а):
В статье Луки Карделли «Полнотиповое программирование», система типов называется «сильной», если она исключает возможность возникновения ошибки согласования типов времени выполнения. Иначе говоря, отсутствие непроконтролированных ошибок времени выполнения называется типобезопасностью; ранние работы Хоара называют это свойство безопасностью (англ. security).

Автор:  PSV100 [ Понедельник, 09 Декабрь, 2019 18:44 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Pimbom писал(а):
Как можно охарактеризовать типизацию Oberon?

Info21 писал(а):
Статическая Сильная Явная

С учётом уточнения насчёт "сильной" или "строгой" -- допускаются некоторые неявные преобразования между типами (без потери данных). К примеру, языки ML-семейства "построже" (все преобразования должны быть явными, такое положение в некотором смысле является платой за возможность полноценного вывода типов).

Автор:  Pimbom [ Понедельник, 09 Декабрь, 2019 18:52 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Цитата:
допускаются некоторые неявные преобразования между типами
Кем допускаются неявные преобразования? Программистом или компьютер в своих недрах эти преобразования сам по себе делает?

Автор:  PSV100 [ Понедельник, 09 Декабрь, 2019 19:56 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Pimbom писал(а):
Цитата:
допускаются некоторые неявные преобразования между типами
Кем допускаются неявные преобразования? Программистом или компьютер в своих недрах эти преобразования сам по себе делает?

Правилами языка (системой типов, о типизации, вроде бы, речь). Можно применять "меньшие" значения там, где ожидаются более "широкие" (к примеру, для переменной/параметра типа LONGINT допустимо присваивание значения вида SHORTINT, или для переменных вещественного типа совместимы целочисленные значения). Компилятор встроит неявные преобразования (если необходимо), затем компьютер исполнит то, что ему предписали.

Автор:  Info21 [ Вторник, 10 Декабрь, 2019 10:14 ]
Заголовок сообщения:  Re: Какая типизация у Oberon?

Pimbom писал(а):
А если хочу, чтобы динамическая типизация не помешала в работе, то как быть?
Вставлять в каждую процедуру проверки типов всех используемых переменных -- см. ветку против питона, там есть пример из реальной жизни ))

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/