Модераторы: Се ля ви
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> static/dynamic typing и strong/weak typing 
:(
    Опции темы
nerezus
  Дата 4.11.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



В чем разница между static/dynamic typing и strong/weak typing?

1) Объявление типа данных
2)Смена типа в процессе работы программы? (a = 5; a = "hello")
3) Автоматическое приведение типа? (a = 5; b = "10"; c = a + b;)

Т.е. что из пунктов относится к static/dynamic typing и что относится к strong/weak typing?

Это сообщение отредактировал(а) nerezus - 4.11.2006, 12:19


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
skyboy
Дата 4.11.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



static/dynamic типизация - это возможность объявить явно или типизирование в момент присвоения. Статическая типизация: объявил единожды, как целое число - будь добр, работай аки с целым. 
Динамическая типизация: присвоил a= "sssss"; компилятор/интерпретатор сам выделит память под массив знаков, сам создаст переменную типа string. 
А слабая/сильная типизация определяется приведением типов(в любом случае - это будет "ослаблением" типизации, даже если приводится целое число к вещественному типу - с точки зрения человека точность повышается, а с точки зрения машины число может измениться; вобщем, слабая типизация) и тем, как проверяются/не проверяются параметры функций: если вместо массива(ожидаемого) можно передать целое число и никак нельзя это дело проконтролировать "автоматически" - это слабая типизация.
зы Не встречалось мне ещё сочетание динамической и сильной типизации - если уж присвоение без "ошибки типа", то и в функцию, как в мусорный бак, можно что угодно скидывать.
PM MAIL   Вверх
nerezus
Дата 4.11.2006, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Цитата

зы Не встречалось мне ещё сочетание динамической и сильной типизации 
 Python(нет приведения типов, ну кроме чисел в числа.)

Спасибо за разъяснения.

Это сообщение отредактировал(а) nerezus - 4.11.2006, 12:54


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
LSD
Дата 4.11.2006, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 3
Всего: 538



Статическая типизация, это проверка типов во время компиляции программы. Динамическая - во время исполнения. 
Пример статической: объявляем переменную типа int и мы можем быть уверены, что в ней будут храниться только целые числа, в некотором диапазоне (от -2^31 до +2^31-1). О том чтобы в нее не попали строка, или дробное число или еще какое нибудь другое значение, позаботится компилятор.
Пример динамической типизации: в Perl объявляем скалярную переменную, записываем туда число 5, и пытаемся эту переменную умножить на другое число. Интерпретатор проверяет, что переменная действительно хранит в себе число во время выполнения программы.
Большинство современных языков используют оба типа типизации.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
skyboy
Дата 4.11.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



Цитата(LSD @  4.11.2006,  11:49 Найти цитируемый пост)
Большинство современных языков используют оба типа типизации. 

и не только "современные". если мне не изменяет память, в BASIC(реализация для ПК "Микроша") можно было объявить переменную целого типа(именно "объявить"), а позже записать в него число - я так понимаю, ты об этом говоришь про "оба типа" ;)
Правда, там никакой "проверки во время компиляции" быть не могло, т.к. не было самой компиляции... 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.