Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 4586 06-05-2007 17:00 | |
Ответ на »сообщение 4585« (AVC)
___________________________
Прежде чем ломать копья, хотелось бы все-таки уразуметь, в чем именно Вы со мной не согласны?
См. »сообщение 4565« и »сообщение 4572«. Я говорю, что type extension в языке Оберон само по себе, а ООП - частный случай. Вы: а чего тогда у Вирта они рядом? Я пояснил, чего они там. Где, как и почему. Спора вроде и нет, если понятно.
№ 4585 06-05-2007 16:47 | |
Ответ на »сообщение 4583« (Посторонний В)
___________________________
Ответ на »сообщение 4581« (AVC)
___________________________
Подтверждаю: в любой по Оберону (см. цитируемое Вами мое утверждение). Например, в обоих вариантах Programming in Oberon (как 1992 вместе с Рейзером, так и 2004 -- в электронном варианте).
А в чем именно Вы со мной не согласны?
Ну хорошо. Если Вы настаиваете, что только эти две книги подпадают под "любую по Оберону", давайте рассмотрим только их.
Я не настаиваю. :)
Просто полагаю, что ADS (2004) никак не может быть отнесена к числу книг, посвященных именно Оберону.
Прежде чем ломать копья, хотелось бы все-таки уразуметь, в чем именно Вы со мной не согласны?
№ 4584 06-05-2007 16:04 | |
Ответ на »сообщение 4580« (AVC)
___________________________
Это было настолько очевидно, что автор предисловия к "паскалевскому" и "модульному" (кажется, Подшивалов?) даже позволил себе критические высказывания по этому поводу (мол, книга просто "постарела" на 10 лет).
Вообще-то книга постарела на 10 лет уже при появлении первого отечественного перевода паскалевской версии (оригинал вышел в 1975 г., перевод - в 1985 г.). Редактором перевода Паскаль-версии и автором перевода Модула-версии был Д.Б.Подшивалов. "Все прежние разделы как бы постарели". Ну да, переписывание с Паскаля на Модулу-2 - это явное устаревание. При этом в самом переводе Модула-версии (он вышел в 1989 г., а оригинал - в 1985 г. - уже прогресс) приводится предисловие Вирта: "В новом издании пересмотрены многие детали алгоритмов и, кроме того, сделаны некоторые изменения, носящие более принципиальный характер". Как нетрудно догадаться, переводил его на русский все тот же Д.Б.Подшивалов. Врет, понимаешь, этот Вирт. Впаривает нам, доверчивым программистам, вторсырье. А мы и уши развесили. Ну и конечно, классический Паскаль даст сто очков вперед какой-то там Модуле-2.
№ 4583 06-05-2007 15:45 | |
Ответ на »сообщение 4581« (AVC)
___________________________
Подтверждаю: в любой по Оберону (см. цитируемое Вами мое утверждение). Например, в обоих вариантах Programming in Oberon (как 1992 вместе с Рейзером, так и 2004 -- в электронном варианте).
А в чем именно Вы со мной не согласны?
Ну хорошо. Если Вы настаиваете, что только эти две книги подпадают под "любую по Оберону", давайте рассмотрим только их.
Книга в соавторстве с Рейзером (1992): рассмотрение type extension начинается с главы 11 "Type extension and procedure types". Никакого раздела, связанного с ООП, которое появляется в гл. 12, там не наблюдается. Если только Вы не считаете разделом часть книги, куда входит упомянутая глава 11. Но это уж явный формализм. Перечитайте внимательно упомянутую главу, и Вы увидите, что ООП там не пахнет. Ах да, на стр. 189 мы там найдем такую замечательную фразу: Our introductory examples show how type extension and procedure variables are instrumental to realize the notion of a generic module. Through their combination, however, an even more powerful concept emerges - that of an object (in specific sense of object-oriented programming).
Книга по языку Оберон (2004) не имеет отношения к книге 1992 г. Ее Вирт переделывал с Programming in Modula-2 под Оберон. Да она вообще и писалась сначала без Part 4. На стр. 39 Вы найдете следы этого: Note: Oberon’s concept of record type extension is not discussed in this book. Про эту книгу я уже говорил: в "довеске" Вирт просто хотел проиллюстрировать type extension через ООП, что более известно читателям.
№ 4582 06-05-2007 15:05 | |
Ответ на »сообщение 4580« (AVC)
___________________________
В поддержку Сергея Перовского. Я сам учился программировать по паскалевскому варианту ("Алгоритмы + структуры данных = программы").
Никаких принципиальных отличий от первоначального у изданий на основе Модулы-2 и Оберона нет.
Чудеса, да и только. Сначала заявляете о том, что "В любой книге Вирта по Оберону расширяемые записи появляются в разделе, связанным с ООП". Потом, когда Вам привели контраргументацию, начинаете поддерживать Сергея Перовского, который явно недопонял, о какой редакции шла речь. Если Вы смотрели все три версии книги Вирта, то могли убедиться в том, что паскалевская версия была самой полной. В Модула-версии хеширование выделили в отдельную главу, но заметной усушке подверглись деревья.
Оберон-версия - это косметика Модула-версии. Факт остается фактом: бестселлер излагает идеи, иллюстрируемые на базе Оберона, но расширению типа место там находится, а ООП - нет.
№ 4581 06-05-2007 14:47 | |
Ответ на »сообщение 4574« (Посторонний В)
___________________________
Ответ на »сообщение 4572« (AVC)
___________________________
В любой книге Вирта по Оберону расширяемые записи появляются в разделе, связанным с ООП.
Это просто факт. :)
К чему такое напускное лукавство? Не думаю, что сильно Вас удивлю, если скажу, что Вирт считает ООП просто ТЕРМИНОЛОГИЕЙ. Вид сбоку. В профиль. Одна из проекций более общего механизма.
Говорите, в любой?
Подтверждаю: в любой по Оберону (см. цитируемое Вами мое утверждение).
Например, в обоих вариантах Programming in Oberon (как 1992 вместе с Рейзером, так и 2004 -- в электронном варианте).
А в чем именно Вы со мной не согласны?
№ 4580 06-05-2007 14:39 | |
Ответ на »сообщение 4577« (Илья Ермаков)
___________________________
Ответ на »сообщение 4576« (Сергей Перовский)
___________________________
Сергей, ADS ведь имеет три переиздания-переработки: 198(5) г. - под Модулу-2 - и 2004 - под Оберон...
В поддержку Сергея Перовского.
Я сам учился программировать по паскалевскому варианту ("Алгоритмы + структуры данных = программы").
Никаких принципиальных отличий от первоначального у изданий на основе Модулы-2 и Оберона нет.
Разве что 5-я глава (о компиляторах) переросла в отдельную книгу (Compiler Construction).
Это было настолько очевидно, что автор предисловия к "паскалевскому" и "модульному" (кажется, Подшивалов?) даже позволил себе критические высказывания по этому поводу (мол, книга просто "постарела" на 10 лет).
№ 4579 06-05-2007 14:23 | |
Ответ на »сообщение 4574« (Посторонний В)
___________________________
ООП - это частный случай расширяемых типов Оберона, когда поле записи имеет процедурный тип. Повторю еще раз - ЧАСТНЫЙ!
Глубочайшее заблуждение, точнее, недопонимание связано с тем, что язык Оберон создавался для реализации Oberon System. Эта система построена на принципах ООП и использует ОО-приемы. А вот сам язык Оберон рассматривает ООП просто как разновидность расширения типа, очень частный случай. При этом для реализации индустриального ООП накладываются такие ограничения:
1. Среди полей расширяемого типа должны присутствовать поля процедурного типа (методы).
2. Поля процедурного типа после инициализации не должны изменяться во время выполнения (методы-константы для всех объектов данного "класса").
Несоблюдение требования 2 приводит к возможности предоставить разную функциональность разным объектам одного и того же класса (методы-переменные). Несоблюдение требования 1 приводит к отсутствию каких бы то ни было методов у "класса". Интересная и наименее изученная область языка Оберон. Фактически это расширяемые каналы обмена информацией, лежащие в сфере иерархии типов при межмодульном взаимодействии. Фиксируются коммуникации (в интерфейсе), а поверх них реализуются многоуровневые протоколы сколь угодно сложной структуры, за что отвечает RECORD с возможностью использования ссылочных полей. Это не ООП.
№ 4578 06-05-2007 13:58 | |
Ответ на »сообщение 4576« (Сергей Перовский)
___________________________
Было бы странно встретить термины object-oriented и OOP в книге, выпущенной в 1975 году.
Не менее странным было предположить, что я буду при обсуждении Оберона и расширяемых типов ссылаться ни с того ни с сего на первую редакцию книги, посвященную другому языку - Паскалю. Бестселлер Вирта выходил в нескольких редакциях. Если брать редакции на немецком и английском, то:
1. Algorithmen und Datenstrukturen. Teubner-Verlag, Stuttgart (1975)
2. Algorithms and Data Structures = Programs. Prentice-Hall (1975, 1976, 1978). Pascal Edition
3. Algorithmen und Datenstrukturen. Teubner-Verlag, Stuttgart (1985)
4. Algorithms and Data Structures. Prentice-Hall (1985, 1986). Modula-2 Edition
5. Algorithms and Data Structures (2004). Oberon Edition
Если есть сомнения, загрузите PDF-версию по Оберону с сайта ETH http://www.oberon.ethz.ch/books.html
№ 4577 06-05-2007 12:47 | |
Ответ на »сообщение 4576« (Сергей Перовский)
___________________________
Ответ на »сообщение 4574« (Посторонний В)
___________________________
>>>В Algorithms and Data Structures термины object-oriented и OOP не встречаются вообще ни разу, нигде, ни на одной странице (!).
Было бы странно встретить термины object-oriented и OOP в книге, выпущенной в 1975 году. Не потому, что этих терминов не было, а потому, что до понимания, что это не экзотика, а мощная технология борьбы со сложностью оставалось еще десяток лет минимум.
Сергей, ADS ведь имеет три переиздания-переработки: 198(5) г. - под Модулу-2 - и 2004 - под Оберон...
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|