![]() |
|
Модераторы: Се ля ви |
![]()
|
|
| lukas |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: нет Всего: 15 |
Данная концепция придумана мной (http://dim-s.net). Возможно что-то похожее где-то есть, но во всех популярных языках я ничего подобного еще не видел. Я пишу свой язык Орион, который очень напоминает синтаксически пхп, но далеко ушедший в возможностях от пхп.
Пластилиновая типизация - это проверка типов во время выполнения, на каждое передаваемое значение в функцию, в метод, в свойство можно наложить модификатор (фильтр). Задача модификатора - модифицировать значение в то что нам нужно, если у него это не получается - выдать ошибку. Модификатор похож на скульптора, который лепит из глины то что ему нужно. Глина - это поступающая информация, скульптор - это наш фильтр-модификатор, скульптор знает во что надо превратить глину (т.е. к какому типу привести значение). В случае если глины не хватает, или она не подходит для скульптуры, скульптор недоволен (т.е. происходит фатальная ошибка). "Скульптор" - Модификатор - это обычно метод класса, который вызывается, тогда, когда значение нужно модифицировать в объект данного класса. В метод первым параметром передается значение. Скульптор одновременно может и фильтровать (т.е. контролировать поступающие значения) и модифицировать поступающие значения. "Скульптура" - то что нужно лепить из значения, обычно это название класса или типа, у которых есть методы для произведения модификации. Если их нет или они вызываются неудачно, происходит ошибка приведения типов. Применение 1. С помощью пластилиновой типизации можно реализовать что-то похожее на перегрузку методов и функций в языках без строгой типизации 2. С помощью данной концепции можно легко контролировать поступающие данные из одного места в исходниках. Тем самым повышается безопасность, т.к. мы можем с одного места в исходных кодах контролировать поступающую информацию в сотнях функций и методах нашего проекта. 3. Концепция очень хорошо вписывается в юнит тестирование. С помощью нее юнит-тесты создавать намного проще, короче и понятнее. Повышается уровень отладки проекта. В динамических языках юнит-тестирование призвано вычислить все ошибки связанные с приведением типов, оно очень важно. 4. С помощью данной концепции можно легко организовывать логирование. Примеры в языке В методе и в функции мы можем указать к какой "скульптуре" (т.е. типу или классу) приводить переданное значение, если оно не того типа, что нам нужно.
Приведение к классам, основная концепция Вы можете назначить модификаторами кроме скалярных типов ->int, ->float, ->string и т.п. целые классы. Сейчас рассмотрим пример:
Это сообщение отредактировал(а) lukas - 24.4.2011, 09:47 -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
||||||
|
|||||||
![]()
|
| Правила раздела "Философия программирования": | |
|
|
Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО: • вопросы перспективного развития методов написания ПО; • изменяющиеся языки и методологии программирования; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Философия программирования | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |