thedeemon: (faculty of numbers)
2020-08-07 02:52 pm

Abstract Data Types vs. Objects

On Understanding Data Abstraction, Revisited
http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf

Занятный легко читаемый обзор о том, как сильно отличаются абстрактные типы данных (ML-style) от объектов (OOP-style). При выбранных определениях довольно четкая картина вырисовывается.
Показывает, в каком смысле "the typical object-oriented program makes far more use of higher-order values than many functional programs."
Рассказывает, что Reynolds еще в 70-х описывал Expression Problem задолго до того, как Вадлер ей дал название.
Показывает, как некоторые принципы, которые могли казаться фольклором / best practices, тут выходят естественными математическими следствиями. "In a pure object-oriented style, classes are only used to construct objects, and interfaces are used for types."
Становится видно естественное тяготение динамически типизированных языков к ООП.
Что значат в этом ключе autognosis и complex operations.
Тайпклассы хаскеля тоже затрагиваются.

Ничего особого нового, но приводит мысли в порядок. Особенно, если свой язык дизайнить собираешься.
thedeemon: (Default)
2010-12-15 01:30 am
Entry tags:

Object-Oriented Languages

В книжке Аппеля про компиляторы на ML каждая глава начинается со словарного определения ключевого слова. Первые 13 были обычными, а 14-е порвало.