Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 28 мар 2024, 17:48

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




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

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

_________________
Работаю в Windows 10. В то же время также установлен Линукс для некоторых ситуаций


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

Сообщения: 67
Откуда: Equestria
Статическая, Сильная, Явная.


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

Сообщения: 53
Во время обсуждения в теме https://forum.oberoncore.ru/viewtopic.php?f=1&t=6510 начал сомневаться, что в Обероне нету динамической типизации.

_________________
Работаю в Windows 10. В то же время также установлен Линукс для некоторых ситуаций


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

Сообщения: 15
Откуда: Рига, Латвийская ССР
В Free Oberon сейчас использутеся Oberon-2 со слегка обновлённой системой типов (INTEGER в 4 байта).

Soviet Pony правильно ответил:
В Обероне система типов статическая, сильная, явная.

Динамическая типизация тут не к месту, просто в приведённой вами статье нет, например, определения «статической типизации», а вместо него мешок признаков.


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

Сообщения: 53
Цитата:
В Free Oberon сейчас использутеся Oberon-2 со слегка обновлённой системой типов (INTEGER в 4 байта).
А в Oberon-2 типизация тоже статическая, сильная, явная, как и в Оберон?
Цитата:
со слегка обновлённой системой типов (INTEGER в 4 байта)
А для чего это сделано и как повлияло на типизацию?

_________________
Работаю в Windows 10. В то же время также установлен Линукс для некоторых ситуаций


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

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


У Objective-C динамическая типизация поверх традиционной сишной. Гремучая смесь.
Появление boost::any/boost::variant в С++ никак не меняет его статус статически типизированного языка. boost::any/boost::variant - это всего лишь контейнеры, куда можно положить что угодно (boost::any) или что-то из списка типов (boost::variant). Использовать эти контейнеры в страдиционном динамическом duck typing нельзя.


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

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


У Objective-C динамическая типизация поверх традиционной сишной. Гремучая смесь.
Появление boost::any/boost::variant в С++ никак не меняет его статус статически типизированного языка. boost::any/boost::variant - это всего лишь контейнеры, куда можно положить что угодно (boost::any) или что-то из списка типов (boost::variant). Использовать эти контейнеры в традиционном динамическом duck typing нельзя.


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

Сообщения: 1019
Откуда: Днепропетровская обл.
Pimbom писал(а):
А в Oberon-2 типизация тоже статическая, сильная, явная, как и в Оберон?
Ну, она ничем не хуже, чем в Оберон. А вообще это игра словами. Да, она в Оберонах "статическая, сильная, явная". Но если объявить две переменные: часы и минуты, и сложить их, то и часы в минуты пересчитаны не будут, и сложить запросто даст. А Ада не даст.

Pimbom писал(а):
Цитата:
со слегка обновлённой системой типов (INTEGER в 4 байта)
А для чего это сделано и как повлияло на типизацию?
На типизацию это не повлияло. Просто подогнали названия типов к современным реалиям: самый используемый в современных архитектурах целый тип размером 32 бита сделали основным и назвали INTEGER, а раньше в O1/O2/A2 он назывался LONGINT.


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

Сообщения: 53
Благодарю за информацию.
Цитата:
А Ада не даст
А за счет чего это достигается? А как добиться таких же высоких результатов контроля ошибок в Оберонах?

_________________
Работаю в Windows 10. В то же время также установлен Линукс для некоторых ситуаций


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

Сообщения: 67
Откуда: Equestria
Pimbom писал(а):
А за счет чего это достигается? А как добиться таких же высоких результатов контроля ошибок в Оберонах?
В Аде можно объявлять новые целочисленные типы данных с ограничениями вроде диапазонов возможных значений. В Оберонах такой фичи нет.


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

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


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club