Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Какая типизация у Free Oberon? https://zx.oberon.org/forum/viewtopic.php?f=116&t=483 |
Страница 1 из 2 |
Автор: | Pimbom [ 08 дек 2019, 21:28 ] |
Заголовок сообщения: | Какая типизация у Free Oberon? |
Как можно охарактеризовать типизацию 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, если по какому-либо языку у Вас есть другое мнение – пишите в комментариях. |
Автор: | SovietPony [ 09 дек 2019, 06:14 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
Статическая, Сильная, Явная. |
Автор: | Pimbom [ 09 дек 2019, 11:50 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
Во время обсуждения в теме https://forum.oberoncore.ru/viewtopic.php?f=1&t=6510 начал сомневаться, что в Обероне нету динамической типизации. |
Автор: | kekc_leader [ 12 дек 2019, 23:33 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
В Free Oberon сейчас использутеся Oberon-2 со слегка обновлённой системой типов (INTEGER в 4 байта). Soviet Pony правильно ответил: В Обероне система типов статическая, сильная, явная. Динамическая типизация тут не к месту, просто в приведённой вами статье нет, например, определения «статической типизации», а вместо него мешок признаков. |
Автор: | Pimbom [ 13 дек 2019, 07:09 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
Цитата: В Free Oberon сейчас использутеся Oberon-2 со слегка обновлённой системой типов (INTEGER в 4 байта). А в Oberon-2 типизация тоже статическая, сильная, явная, как и в Оберон?Цитата: со слегка обновлённой системой типов (INTEGER в 4 байта) А для чего это сделано и как повлияло на типизацию?
|
Автор: | vlad [ 14 дек 2019, 04:12 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
Pimbom писал(а): Есть вероятность, что я где-то мог ошибиться, в особенности с CL, PHP и Obj-C, если по какому-либо языку у Вас есть другое мнение – пишите в комментариях. У Objective-C динамическая типизация поверх традиционной сишной. Гремучая смесь. Появление boost::any/boost::variant в С++ никак не меняет его статус статически типизированного языка. boost::any/boost::variant - это всего лишь контейнеры, куда можно положить что угодно (boost::any) или что-то из списка типов (boost::variant). Использовать эти контейнеры в страдиционном динамическом duck typing нельзя. |
Автор: | vlad [ 14 дек 2019, 04:13 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
Pimbom писал(а): Есть вероятность, что я где-то мог ошибиться, в особенности с CL, PHP и Obj-C, если по какому-либо языку у Вас есть другое мнение – пишите в комментариях. У Objective-C динамическая типизация поверх традиционной сишной. Гремучая смесь. Появление boost::any/boost::variant в С++ никак не меняет его статус статически типизированного языка. boost::any/boost::variant - это всего лишь контейнеры, куда можно положить что угодно (boost::any) или что-то из списка типов (boost::variant). Использовать эти контейнеры в традиционном динамическом duck typing нельзя. |
Автор: | Zorko [ 14 дек 2019, 17:20 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
Pimbom писал(а): А в Oberon-2 типизация тоже статическая, сильная, явная, как и в Оберон? Ну, она ничем не хуже, чем в Оберон. А вообще это игра словами. Да, она в Оберонах "статическая, сильная, явная". Но если объявить две переменные: часы и минуты, и сложить их, то и часы в минуты пересчитаны не будут, и сложить запросто даст. А Ада не даст.Pimbom писал(а): Цитата: со слегка обновлённой системой типов (INTEGER в 4 байта) А для чего это сделано и как повлияло на типизацию? |
Автор: | Pimbom [ 14 дек 2019, 17:27 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
Благодарю за информацию. Цитата: А Ада не даст А за счет чего это достигается? А как добиться таких же высоких результатов контроля ошибок в Оберонах?
|
Автор: | SovietPony [ 14 дек 2019, 17:49 ] |
Заголовок сообщения: | Re: Какая типизация у Free Oberon? |
Pimbom писал(а): А за счет чего это достигается? А как добиться таких же высоких результатов контроля ошибок в Оберонах? В Аде можно объявлять новые целочисленные типы данных с ограничениями вроде диапазонов возможных значений. В Оберонах такой фичи нет.
|
Страница 1 из 2 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |