Тут намедни спор о терминологии вышел. Языки, стало быть, бывают со строгой и нестрогой типизацией. Со строгой статически типизированные, а с нестрогой - динамические. Так? А вот и фигушки!Языки действительно бывают со строгой и нестрогой типизацией, а еще со статической и динамической, но вот строгая (сильная) и нестрогая (слабая) это не синонимы статической и динамической. Вообще не связанные понятия.Бывает статическая и динамическая типизация. При статической ты обязан на этапе написания кода указать, какой тип будет у значения, и постоянно про эти типы помнить. При динамической типизации, на типы можно плевать, а переменная может *менять* свой тип во время исполнения программы.А со строгостью как? Вот есть язык Си. Строгий и консервативный донельзя. Язык суровых бородатых викингов от Айти, кроссплатформенный ассемблер и lingua franca всех программистов. Типизация в нем статическая. Вообще никакой динамики, каждая переменная должна иметь известный на этапе разработки тип. Но он ведь нестрогий вообще. Там типизация это буквально рекомендации, а не правила. Объяви переменную и прикастуй ее к чему угодно. При определенной доле везения даже работать будет. В си можно объявить массив сложных объектов и обращаться к нему, как к массиву чисел. И даже по индексу минус один тоже можно, никаких проблем. Вы видели массив с обращением по отрицательному индексу? В си - запросто, там это просто вычисление АдресПервогоЭлемента + Индекс. Отрицательный индекс? Да пожалуйста, это всего лишь означает адрес *перед* массивом.Кстати, ходят слухи (я не проверял), что malloc именно там хранит служебные данные о блоке выделенной им памяти, чтобы потом нормально сделать free.Таким образом, виды типизации это координатная плоскость, а не прямая. Ось X динамическая/статическая, ось Y - строгая/нестрогая. Жаба - статическая строгая, Си - статический нестрогий, 1C динамический... строгий? Давайте разбираться.В 1С нет понятия приведения типа, но и обращаться к объекту, как к объекту другого типа мы там не можем (не найдет свойство и упадет). Получается, в 1С строгая типизация? В 1С, да ты че, там вообще код на русском пишут и типизации нет! Лезем за академическими определениями в википедию и читаем там... набор невнятного абстрактного булшита от именитых академиков... Так как же быть? В какое место на координатной плоскости типизации нам поместить язык 1С?
Оставить комментарий/отзыв