Многогранность различных слов позволяет применять их в различных сферах деятельности человека, причем понимание данных понятий различно. Одним из таких многогранных слов является «типизация». Это понятие чаще всего встречается в метрологии, проектировании, архитектуре. Используют данный термин и программисты.
Что значит типизация
Решение различных задач может заключаться в создании различных форм и эталонов, которых стоит придерживаться при работе с технологиями и производственными процессами. Стандартизацией и разработкой универсальных решений занимается типизация. Значение слова означает направление в строительстве, проектировании, позволяющее осуществлять строительство различных объектов на основании стандартных проектов. Разработка нескольких основных принципов значительно ускоряет процесс возведения конструкции либо же повышает эффективность работы системы в целом.
Типизация в строительстве
Что значит типизация для строителя? Скорее всего, применение специально разработанных типов, правил и норм, стандартизированных инструментов и конструкций. Такая типизация призвана значительно повысить отдачу от действий строителя, увеличить КПД задействованных машин и механизмов, ускорить возведение объекта строительства.
Отдельные элементы типизации известны еще с античных времен. Археологи находят следы повторного использования отдельных фрагментов сооружений, дублирование стандартных приемов строительства. Применение отдельных элементов типизации имело место и в постройках Средневековья, и в классических сооружениях Нового времени. Но самую большую роль типизация сыграла в архитектуре постсоветских стран. Индустриализация требовала огромного притока рабочей силы – а значит, возведения стандартных и экономичных многоэтажных зданий. Так и появились знаменитые «хрущевки» - типичные проекты 50-70-х годов, которые, благодаря типизации, в короткие сроки возводились во всех уголках бывшего Союза.
Типизация в стандартизации
Стандартизация охватывает множество смежных технических дисциплин. Благодаря этой науке приборы учета показывают одни и те же значения, рабочие инструменты предназначены для одних и тех же работ, а предлагаемые покупателям товары сертифицируются по одним и тем же параметрам. Типизация – это установление единых правил и норм при производстве тех или иных товаров, орудий труда и прочее. Данный процесс развивается в различных направлениях стандартизации технологий, учитывается при разработке нормативной документации, влияет на стандартные методики расчетов и составления смет.
Типизация в программировании
Что значит типизация в данном случае? Программирование, по сути своей, является процессом общения человека и компьютера. Как и любое общение, такой разговор возможен лишь при помощи языка, который является инструментом для перевода команд человека в сигналы, понятные для вычислительной машины. Все стандартные процессы в программировании ведутся на том или ином языке. Огромную роль в классификации таких языков играет типизация. Значение и смысл этого понятия делают вопрос типизации основой для использования существующих языков и создания новых.
Две группы языков программирования
В целом существующие языки делятся на две большие группы:
- бестиповые языки;
- типизированные языки.
Как можно видеть, типизация – это тот самый ориентир, по которому можно разделить огромное количество существующих языков по простому и понятному признаку. Бестиповые языки – ассемблер, Brainfuck или тот же Forth - предназначены для решения узкого круга задач. Их невозможно приспособить или усовершенствовать. Другое дело – языки, в которых присутствует типизация. Это Scala, PHP, C, Python и Lua, а также некоторые другие инструменты.
Структуры типизированных языков
Типизированные языки гораздо сложенее и интереснее. Поэтому появилась необходимость разделить их снова на несколько групп по определенным признакам, в которых, опять же, не последнюю роль играет типизация.
- Языки динамической или статистической типизации. Разделение по этому признаку ведется по конечным типам переменных функций. Статистическая типизация ведется еще на стадии компиляции. То есть при обработке команды компилятор уже «знает», где нужно искать тот или иной тип. Иное дело – динамическая типизация. Значение типов выясняются уже во время обработки команды. Пример статистической типизации: C, Java, C#; динамическая подгруппа представлена: Python, JavaScript, Ruby.
- Языки строгой и нестрогой типизации. Первая не позволяет языку смешивать различные типы в используемых выражениях – к примеру, вычесть из единицы бесконечность в таком языке нельзя. Языки с нестрогой типизацией вполне могут совершить неявное преобразование, правда с существенной потерей точности. Примеры разделения по этому признаку: строгая: Python, Lisp, Haskell, Java; нестрогая: C, Visual Basic, JavaScript, PHP.
- Неявная и явная типизация. Разделение ведется через компилятор. Явно типизированный язык создает используемые и новые переменные явно. В неявных языках эта функция лежит на компиляторе. Примеры языков с явной типизацией - C++, D, C#. Неявная: Lua, PHP, JavaScript.
Как можно видеть, типизация играет большую роль в различных видах деятельности. С учетом нарастающих процессов глобализации ее роль будет только возрастать. Понадобиться немало сил и времени, чтобы типизировать все существующие и будущие процессы и технологии, привести их к одному знаменателю, тем самым значительно облегчая жизнь людям во всех уголках Земли.