Статическая типизация
Стати́ческая типиза́ция — приём, широко используемый в языках программирования, при котором переменная, параметр подпрограммы, возвращаемое значение функции связывается с типом в момент объявления и тип не может быть изменён позже (переменная или параметр будут принимать, а функция — возвращать значения только этого типа). Примеры статически типизированных языков — Ада, Си, C++, C#, D, Java, ML, Паскаль, Solidity, Go, Фортран. Противоположный приём — динамическая типизация.
Некоторые статически типизированные языки позже получили возможность также использовать динамическую типизацию при помощи специальных подсистем. Например, Variant в Delphi, пакеты в AliceML, Data.Dynamic в Haskell.
Статическая типизация даёт самый простой машинный код, поэтому она удобна для языков, дающих исполняемые файлы операционных систем или JIT-компилируемые промежуточные коды. Многие ошибки исключаются уже на стадии компиляции, поэтому статическая типизация хороша для написания сложного, но быстрого кода. В интегрированной среде разработки осуществимо более релевантное автодополнение, особенно если типизация — сильная статическая: множество вариантов можно отбросить как не подходящие по типу. Чем больше и сложнее проект, тем большее преимущество даёт статическая типизация, и наоборот.
В то же время, статически типизированные языки с недостаточно проработанной математической базой оказываются довольно многословными: каждый раз надо указывать, какой тип будет иметь переменная. В некоторых языках есть автоматическое выведение типа, однако оно может привести к трудноуловимым ошибкам. Это не верно для языков семейства ML, основанных на так называемой «главной типизации» (англ. principal typing scheme), которая одновременно автоматически выводит наиболее общий тип всякого выражения и строго проверяет согласование типов зависимостей. Это придаёт языку выразительность динамически типизируемых, при этом обеспечивает лучшее быстродействие и типобезопасность.
Примечания
- AliceML packages. Дата обращения: 13 февраля 2015. Архивировано 15 февраля 2015 года.
- Dynamic in Haskell. Дата обращения: 13 февраля 2015. Архивировано 13 февраля 2015 года.
- Pierce, 2012, 22 Реконструкция типов, с. 360—361.
Литература
- Pierce, Benjamin C. Types and Programming Languages. — MIT Press, 2002. — ISBN 0-262-16209-1. Перевод на русский язык: Пирс Б. Типы в языках программирования. — , 2012. — 680 с. — ISBN 978-5-7913-0082-9.
Для улучшения этой статьи желательно: |
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Статическая типизация, Что такое Статическая типизация? Что означает Статическая типизация?
Stati cheskaya tipiza ciya priyom shiroko ispolzuemyj v yazykah programmirovaniya pri kotorom peremennaya parametr podprogrammy vozvrashaemoe znachenie funkcii svyazyvaetsya s tipom v moment obyavleniya i tip ne mozhet byt izmenyon pozzhe peremennaya ili parametr budut prinimat a funkciya vozvrashat znacheniya tolko etogo tipa Primery staticheski tipizirovannyh yazykov Ada Si C C D Java ML Paskal Solidity Go Fortran Protivopolozhnyj priyom dinamicheskaya tipizaciya Nekotorye staticheski tipizirovannye yazyki pozzhe poluchili vozmozhnost takzhe ispolzovat dinamicheskuyu tipizaciyu pri pomoshi specialnyh podsistem Naprimer Variant v Delphi pakety v AliceML Data Dynamic v Haskell Staticheskaya tipizaciya dayot samyj prostoj mashinnyj kod poetomu ona udobna dlya yazykov dayushih ispolnyaemye fajly operacionnyh sistem ili JIT kompiliruemye promezhutochnye kody Mnogie oshibki isklyuchayutsya uzhe na stadii kompilyacii poetomu staticheskaya tipizaciya horosha dlya napisaniya slozhnogo no bystrogo koda V integrirovannoj srede razrabotki osushestvimo bolee relevantnoe avtodopolnenie osobenno esli tipizaciya silnaya staticheskaya mnozhestvo variantov mozhno otbrosit kak ne podhodyashie po tipu Chem bolshe i slozhnee proekt tem bolshee preimushestvo dayot staticheskaya tipizaciya i naoborot V to zhe vremya staticheski tipizirovannye yazyki s nedostatochno prorabotannoj matematicheskoj bazoj okazyvayutsya dovolno mnogoslovnymi kazhdyj raz nado ukazyvat kakoj tip budet imet peremennaya V nekotoryh yazykah est avtomaticheskoe vyvedenie tipa odnako ono mozhet privesti k trudnoulovimym oshibkam Eto ne verno dlya yazykov semejstva ML osnovannyh na tak nazyvaemoj glavnoj tipizacii angl principal typing scheme kotoraya odnovremenno avtomaticheski vyvodit naibolee obshij tip vsyakogo vyrazheniya i strogo proveryaet soglasovanie tipov zavisimostej Eto pridayot yazyku vyrazitelnost dinamicheski tipiziruemyh pri etom obespechivaet luchshee bystrodejstvie i tipobezopasnost PrimechaniyaAliceML packages neopr Data obrasheniya 13 fevralya 2015 Arhivirovano 15 fevralya 2015 goda Dynamic in Haskell neopr Data obrasheniya 13 fevralya 2015 Arhivirovano 13 fevralya 2015 goda Pierce 2012 22 Rekonstrukciya tipov s 360 361 LiteraturaPierce Benjamin C Types and Programming Languages MIT Press 2002 ISBN 0 262 16209 1 Perevod na russkij yazyk Pirs B Tipy v yazykah programmirovaniya 2012 680 s ISBN 978 5 7913 0082 9 Dlya uluchsheniya etoj stati zhelatelno Prostavit snoski vnesti bolee tochnye ukazaniya na istochniki Najti i oformit v vide snosok ssylki na nezavisimye avtoritetnye istochniki podtverzhdayushie napisannoe Pozhalujsta posle ispravleniya problemy isklyuchite eyo iz spiska parametrov Posle ustraneniya vseh nedostatkov etot shablon mozhet byt udalyon lyubym uchastnikom
