Re[3]: Инструмент для моделирования среды (иерархия объектов
От: Quintanar Россия  
Дата: 10.03.05 09:49
Оценка:
Здравствуйте, E.L., Вы писали:

EL>Что то я вообще не понимаю, как нем можно описывать объекты (в указанном выше смысле) ...

EL>Нельзя ли пример?
EL>Да, и мне всегда казалось, что это практически мертвый язык. Существуют ли под него вообще развитые и поддерживаемые IDE?

Из твоего сообщения трудно понять, что тебе конкретно необходимо. Возможно ты и сам еще не до конца это понял. Именно поэтому Лисп идеальный язык для моделирования. Он позволяет в runtime менять абсолютно что угодно — реализации классов, методов, функций и т.п + с помощью макросов ты можешь встроить в язык необходимые лично тебе концепции. Как описывать объекты это уж тебе решать, в самом Лиспе есть поддержка ООП — CLOS, а дальше уж сам решай насколько она тебе подходит. Бытует мнение, что Лисп функциональный язык, на самом деле он поддерживает одинаково хорошо все подходы — и императивный и функциональный и объектно-ориентированный.
Если не нравится тяжеловесность Common Lisp, можно взять Scheme, он легче и понятнее, хотя не предназначен для разработки крупных программ. Я не призываю писать все на Лисп. Основная задача, как я понял, систематизировать сначала предметную область, понять, так сказать, что и как нужно реализовывать. Выбор статического языка типа Паскаля, С++ был бы на мой взгляд ошибкой. Прототип лучше писать на чем-то гибком, пусть не на Лиспе, но тогда на O'Caml, например, или Python.
Лисп не мертвый язык, есть коммерческие реализации со своими IDE — lispworks, franz (можно скачать demo версию). Для open source (SBCL, CMUCL) есть очень хорошая поддержка в виде пакета slime для Emacs. Но народ боится Emacs, так что тут смотри сам.

Пример приводить смысла нет, все похоже на обычную реализацию. Главное отличие — это то, что главные в CLOS не классы, а методы. Т.е. не класс имеет некоторые методы, а метод имеет некоторые классы, и методы можно специализировать сразу для нескольких классов (мультиметоды). Еще там довольно сложная иерархия методов — есть дополнительные after, before и around методы. Before выполняются до вызова основного метода, after — после, а around — вместо.

EL>P.S. Присматриваюсь к Python как инструменту описания объектов и Delphi для GUI.

EL>Что скажете? Эх, увидеть бы пример реализации похожей задачи!
EL>А то странно получается, на всех углах идет обсуждение ООП, а как на практике реализуется самая типичная задача, для которой собственно и идеология ООП разрабатывалась — непонятно.

Я с Python'ом не работал, пусть специалисты скажут подходит он или нет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.