Я прочитал несколько страниц, в том числе страницу wiki http://en.wikipedia.org/wiki/Strong_and_weak_typing, в которой описаны сильно и слабо типизированные языки. По большей части, я думаю, я понимаю разницу. Тем не менее, я хотел бы прямо ответить на вопрос, дифференцируя их.
По моему мнению, на слабо типизированных языках типы данных не обязательно должны быть явно вызваны. Это был бы такой язык, как Matlab, где вы можете добавить 4 и 2.3 без приведения типов. Сильно типизированные языки требуют от программиста объявления типа данных для каждой переменной и/или значения. Например, в C вам нужно будет сделать что-то вроде 4 + (int) 2.3 или (float) 4 + 2.3 (не помню, если это допустимо C-литье).
Приветствуется всякая информация, расширяющая или корректирующая мое понимание этих понятий.