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 писал(а): У всех объекто-ориентированных. Имеется в виду полиморфизм? А то, эта череда бинарных ответов Да/Нет, действительно анекдот какой-то напоминает |
Автор: | 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/ |