
Квадранты типизации в языках программирования

Поэтому нарисовал вот такую картинку.

(*) Java, C# и Obj-c обладают возможностями динамической типизации. Например, боксинг в Object в Java и C#. Кроме того, в C# 4.0 ввели новое ключевое слово dynamic.
(**) В CL и Clojure присутствуют опциональные декларации типов, так что можно считать, что в них есть немного статической типизации. Современные реализации Common Lisp проводят агрессивный вывод типов при компиляции.
(***) Форт и языки ассемблера принято считать бестиповыми. Но, машинные слова разного размера это ведь тоже типы какие-никакие.
Вообще же, отличия вот в чем - статическая типизация предполагает проверку типов на этапе трансляции кода, динамическая - на этапе его выполнения. Сильная типизация предполагает множество проверок типов и минимум неявных преобразований между данными разных типов, а слабая - минимум проверок и максимум неявных преобразований.
Upd: вот еще
![Квадранты типизации в языках программирования [info]](http://l-stat.livejournal.com/img/userinfo.gif?v=2)