Зеленым отмечены синонимы, присутствующие в словаре. Красным отмечены синонимы, отсутствующие в словаре.
Зеленым отмечены антонимы, присутствующие в словаре. Красным отмечены антонимы, отсутствующие в словаре.
Еще про статическую типизацию
Источник: 003540 Еще про статическую типизацию
Немного подумал про статическую типизацию.
Источник: 003540 Еще про статическую типизацию
Буду использовать определение: статическая типизация — это такая система, которая по тексту программы может доказать какие-то свойства программы в отношении типов данных.
Источник: 003540 Еще про статическую типизацию
Подобным образом заданная статическая типизация может использоваться для:
Источник: 003540 Еще про статическую типизацию
Собственно статическую типизацию можно представить как предикат ST(Property,P), где Property — некоторое свойство, а P — кусок программы, который проверяет, выполняется ли свойство Property в P.
Источник: 003540 Еще про статическую типизацию
То есть, статическая типизация может и не давать точного ответа на вопрос, выполняется ли свойство Property в P, или нет.
Источник: 003540 Еще про статическую типизацию
Хотя, любой нормальный программист скажет, что если бы правила языка подразумевали динамическую типизацию, а не статическую, то должен был получиться вполне определенный и корректный результат (а именно, должна была быть выведена строка «1+2=3»).
Источник: 003540 Еще про статическую типизацию
На простом примере видно, что если реализовывать статическую типизацию определенным образом, то это накладывает ограничение на программиста (многие корректные программы не могут быть написаны).
Источник: 003540 Еще про статическую типизацию
Полностью динамическая типизация (т.е., отказ от динамической типизации вообще) не ограничивает программиста в написании корректных программ, но взамен этого компилятор не может находить огромное число ошибок, которые мог бы находить.
Источник: 003540 Еще про статическую типизацию
Полностью динамическая типизация (т.е., отказ от динамической типизации вообще) не ограничивает программиста в написании корректных программ, но взамен этого компилятор не может находить огромное число ошибок, которые мог бы находить.
Источник: 003540 Еще про статическую типизацию
Всякие различные усовершенствования систем типов (templates, GADT, dependent types) сужают то множество программ, в которых статическая типизация не может доказать выполнение свойств, но не устраняет его полностью.
Источник: 003540 Еще про статическую типизацию
Поэтому, хотелось бы видеть в ЯП следующие особенности статической типизации:
Источник: 003540 Еще про статическую типизацию
1. Если статическая типизация может доказать, что необходимые для корректности свойства программы не выполняются, то это должно приводить к ошибкам компиляции.
Источник: 003540 Еще про статическую типизацию
2. Если статическая типизация не может доказать, что необходимое для корректности программы свойство выполняется, то это не должно быть ошибкой компиляции, а warning'ом.
Источник: 003540 Еще про статическую типизацию