LINUX.ORG.RU

Закончена формализация парадигмы объектно-ориентированного программирования


1

0

http://www.realcoding.net/dn/docs/machine.pdf http://www.realcoding.net/dn/docs/MachineInheritance.pdf

В статье содержится формализация основных понятий объектно - ориентированного программирования. Даются определения таким понятиям ООП как класс, объект, наследование, инкапсуляция, полиморфизм через математические термины: множество, отношение, функция, абстрактный автомат. Строго различаются понятия тип (множество состояний абстрактного автомата) и класс (абстрактный автомат).

anonymous

А кому-то лишь бы всё формализовать... Вот на кой фиг это надо, кто-то может объяснить?

JackYF ★★★★
()
Ответ на: комментарий от JackYF

> Вот на кой фиг это надо, кто-то может объяснить?

Диссертацию писать :)

dr_jumba
()
Ответ на: комментарий от JackYF

> Вот на кой фиг это надо, кто-то может объяснить?

Чтобы в светлом будущем строго математически доказать что ООП не нужно

anonymous
()

А Степанов считает, что ООП "unsound".

seiken ★★★★★
()

Отлично. Теперь можно закапывать.

anonymous
()

Лень читать, наверно очень много букв плюс весь греческий алфавит.

А а побочные эффекты там тоже формализуют? Если не формализуют, то нафиг такая формализация.

Macil ★★★★★
()
Ответ на: комментарий от JackYF

> А кому-то лишь бы всё формализовать... Вот на кой фиг это надо, кто-то может объяснить?

А ты не понимаешь?

Это необходимо для того, чтобы:

a) иметь возможность доказывать свойства ОО-систем, выводить формально новые (пока неизвестные) свойства, автоматически оптимизировать системы (для формальных систем можно определять множество тождественных преобразований)

б) иметь чёткий критерий, что отнести к ОО, а что - нет

в) иметь возможность производить ОО- системы типов, получая таким образом более консистентные и корректные языки, чем нынешние, с придуманными от балды системами типов

Только вот Робин Милнер ещё лет N назад дал полную формализацию subtyping (то есть, ОО целиком). Цитируемая тут работа особой новизны не содержит.

anonymous
()
Ответ на: комментарий от Macil

Побочные эффекты ООП по боку, проблема формализации ООП была в сложности записи аксиоматики subtyping для любой выбранной системы типов. Но эту проблему решили много лет назад (и автор даже на ту самую работу как раз и сослался, хоть и в целом библиография весьма унылая и глубоко не полная).

anonymous
()
Ответ на: комментарий от anonymous

P.S. Склероз и бокланопоцтоз гойловного моска, не Милнер, конечно же, а Кардели.

anonymous
()
Ответ на: комментарий от anonymous

>Побочные эффекты ООП по боку

Это как это побоку? Если не учитывать побочные эффекты, то как же можно доказать какое-то свойство ООП системы? Или здесь не рассматривается ООП система "в работе"? (извини не знаю как правильно это назвать).

Ведь любая реальная программа создается как раз ради побочных эффектов.

Macil ★★★★★
()

имхо абсолютно бессмысленная статья. формализация имеет смысл только в том случае, если позволяет получить какие-то практически весомые выводы. выводов в статье нет. может ли мы, скажем, на основании этой формализации оптимизировать по какому-нибудь критерию существующую ООП-модель ? если да, то пусть автор покажет - как. до тех пор этим текстом разве что печку растапливать. да и то только после распечатывания...

jtootf ★★★★★
()
Ответ на: комментарий от Macil

> Это как это побоку?

Так, побоку. ООП - это система типов, никакого отношения к операционной семантике какого бы то ни было конкретного ООП-языка не имеет вообще.

> Ведь любая реальная программа создается как раз ради побочных эффектов.

А вот это, грубо говоря, чушь.

anonymous
()
Ответ на: комментарий от jtootf

Ну, дело автора - модель предложить, может другие из неё что практически ценное и получат. Я прикладных применений этой модели не вижу, в отличии от того, что делал тот же Лука Кардели.

anonymous
()

К примеру, machine.pdf. Статье не хватает нормальной постановки задачи и выводов по полученным результатам в рамках объявленной цели.

В начале мелькает разговор о пошаговой разработке и приближении языка описания задачи к языку реализации, но далее тема никак не раскрыта.

Сейчас это выглядит как будто автор проснулся и решил, "а не формализовать ли мне с бодуна чего еще".

Начиная с аннотации должно говорится зачем это все. Например ускорить процесс разработки. путем сокращения количества шагов между языком постановки задачи и языком реализации.

По ходу статьи должны быть какие-то намеки на то, как это помогает в достижении поставленной цели и выводах рассказать об этом сжато.

Ну и поменьше помпезности о законченности формализации ;)

dr_jumba
()
Ответ на: комментарий от anonymous

>Ну, дело автора - модель предложить, может другие из неё что практически ценное и получат

не на ЛОРе

jtootf ★★★★★
()
Ответ на: комментарий от dr_jumba

Ну, что статья крива - это никто и не спорит, там и библиография ущербна (так что любой рецензент сразу статью завернёт даже без комментариев), и структуры нет. Но, я подозреваю, что автор хотел именно тут, на ЛОРе и получить предварительную критику, пока статья недоделанная. Если это так, то он ошибся адресом.

Так же, конечно же, автор не имеет права претендовать на первенство - формализовали всё уже давно. Но вот по поводу ценности самой работы я бы так с ходу судить не стал, может подход этот и разовьётся во что-то полезное.

anonymous
()

Соглашусь с предыдущим оратором. Название статей слишком "громоке". Создается впечатление, что автор претендует на первенство в деле формализации ООП вообще. Надо "заузить", акцентировать внимание, что предлагается еще один способ формализации, еще одна модель. Типа "Способ формализации бла-бла-бла в виде абстрактных автоматов состояний бла-бла-бла" или "Формальная модель бла-бла-бла в виде абстрактных автоматов состояний бла-бла-бла"

Burbaka ★★
()
Ответ на: комментарий от anonymous

Да, чем бы дитяти не тешились. Доказывать ненужность определения предела по Коши, когда есть определение по Гейне - это сильно. :)

anonymous
()

Мда...а польза та от этого какая? Очередной бред страдающих от безделья ученых которым весело выдумывать аналогии.....

Maniac
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.