OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 09 Август, 2020 20:14

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Какая типизация у Oberon?
СообщениеДобавлено: Воскресенье, 08 Декабрь, 2019 22:41 

Зарегистрирован: Понедельник, 02 Декабрь, 2019 18:38
Сообщения: 13
Как можно охарактеризовать типизацию 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, если по какому-либо языку у Вас есть другое мнение – пишите в комментариях.


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

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1470
С/Д|С|Я


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8351
Откуда: Троицк, Москва
Статическая Сильная Явная


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

Зарегистрирован: Понедельник, 02 Декабрь, 2019 18:38
Сообщения: 13
Цитата:
С/Д|С|Я
А почему тогда буква Д указана?


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

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 935
Откуда: Казань
Так как от определения зависит. Если отталкиваться от того, возможно, неправильного определенения данного в статье, то не только статическая. И у многих других языков, где написано статическая получается не только статическая. А так у Оберона типизация статическая. А определение в статье не айс.


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

Зарегистрирован: Понедельник, 02 Декабрь, 2019 18:38
Сообщения: 13
Цитата:
И у многих других языков, где написано статическая получается не только статическая
Это у каких языков?


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

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 935
Откуда: Казань
У всех объекто-ориентированных.


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

Зарегистрирован: Понедельник, 02 Декабрь, 2019 18:38
Сообщения: 13
А если хочу, чтобы динамическая типизация не помешала в работе, то как быть?


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

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 935
Откуда: Казань
Непонятный вопрос. Чтобы ответить на него надо понимать какая у вас работа. Что и как вы там делаете и что вам там мешает.
Вспоминается старый анекдот:
Цитата:
- Доктор, когда я делаю вот так, у меня тут болит.
- А Вы так не делайте.


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

Зарегистрирован: Понедельник, 02 Декабрь, 2019 18:38
Сообщения: 13
Цитата:
У всех объекто-ориентированных.
А из чего следует, что в C# динамическая типизация присутствует? Она есть, даже если не использовать dynamic?


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

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1387
Откуда: Украина, Киев
Rifat писал(а):
У всех объекто-ориентированных.
Имеется в виду полиморфизм? 8)
А то, эта череда бинарных ответов Да/Нет, действительно анекдот какой-то напоминает :lol:


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

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

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


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

Зарегистрирован: Понедельник, 02 Декабрь, 2019 18:38
Сообщения: 13
А есть ещё такая формулировка, как безопасная типизация. Что Вы думаете по этому поводу?


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

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 935
Откуда: Казань
Да, много чего есть. Вы то что хотите узнать или доказать?


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

Зарегистрирован: Понедельник, 02 Декабрь, 2019 18:38
Сообщения: 13
Конечно хочу узнать, поэтому и задал вопрос про безопасную типизацию. А по поводу того, что много чего есть, это интересует в контексте минимизации возможных ошибок.


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

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 434
Pimbom писал(а):
А есть ещё такая формулировка, как безопасная типизация. Что Вы думаете по этому поводу?

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

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


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

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 434
Pimbom писал(а):
Как можно охарактеризовать типизацию Oberon?

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

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


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

Зарегистрирован: Понедельник, 02 Декабрь, 2019 18:38
Сообщения: 13
Цитата:
допускаются некоторые неявные преобразования между типами
Кем допускаются неявные преобразования? Программистом или компьютер в своих недрах эти преобразования сам по себе делает?


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

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 434
Pimbom писал(а):
Цитата:
допускаются некоторые неявные преобразования между типами
Кем допускаются неявные преобразования? Программистом или компьютер в своих недрах эти преобразования сам по себе делает?

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


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8351
Откуда: Троицк, Москва
Pimbom писал(а):
А если хочу, чтобы динамическая типизация не помешала в работе, то как быть?
Вставлять в каждую процедуру проверки типов всех используемых переменных -- см. ветку против питона, там есть пример из реальной жизни ))


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2020, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB