| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Философия программирования > Пластилиновая типизация - Концепция языка |
| Автор: lukas 24.4.2011, 09:01 | ||||||
| Данная концепция придумана мной (http://dim-s.net). Возможно что-то похожее где-то есть, но во всех популярных языках я ничего подобного еще не видел. Я пишу свой язык http://orion-lang.org, который очень напоминает синтаксически пхп, но далеко ушедший в возможностях от пхп. Пластилиновая типизация - это проверка типов во время выполнения, на каждое передаваемое значение в функцию, в метод, в свойство можно наложить модификатор (фильтр). Задача модификатора - модифицировать значение в то что нам нужно, если у него это не получается - выдать ошибку. Модификатор похож на скульптора, который лепит из глины то что ему нужно. Глина - это поступающая информация, скульптор - это наш фильтр-модификатор, скульптор знает во что надо превратить глину (т.е. к какому типу привести значение). В случае если глины не хватает, или она не подходит для скульптуры, скульптор недоволен (т.е. происходит фатальная ошибка). "Скульптор" - Модификатор - это обычно метод класса, который вызывается, тогда, когда значение нужно модифицировать в объект данного класса. В метод первым параметром передается значение. Скульптор одновременно может и фильтровать (т.е. контролировать поступающие значения) и модифицировать поступающие значения. "Скульптура" - то что нужно лепить из значения, обычно это название класса или типа, у которых есть методы для произведения модификации. Если их нет или они вызываются неудачно, происходит ошибка приведения типов. Применение 1. С помощью пластилиновой типизации можно реализовать что-то похожее на перегрузку методов и функций в языках без строгой типизации 2. С помощью данной концепции можно легко контролировать поступающие данные из одного места в исходниках. Тем самым повышается безопасность, т.к. мы можем с одного места в исходных кодах контролировать поступающую информацию в сотнях функций и методах нашего проекта. 3. Концепция очень хорошо вписывается в юнит тестирование. С помощью нее юнит-тесты создавать намного проще, короче и понятнее. Повышается уровень отладки проекта. В динамических языках юнит-тестирование призвано вычислить все ошибки связанные с приведением типов, оно очень важно. 4. С помощью данной концепции можно легко организовывать логирование. Примеры в языке В методе и в функции мы можем указать к какой "скульптуре" (т.е. типу или классу) приводить переданное значение, если оно не того типа, что нам нужно.
Приведение к классам, основная концепция Вы можете назначить модификаторами кроме скалярных типов ->int, ->float, ->string и т.п. целые классы. Сейчас рассмотрим пример:
|