OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 18 Ноябрь, 2019 04:13

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 15:22 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
prospero78 писал(а):
Option Explicit превращает VBA в такой типизированный язык, что чтобы сделать Variant -- придётся прилично поизвращаться.
В итоге он написал не про Visual Basic, а про VBScript, но это не отменяет того факта, что он несёт пургу.


Последний раз редактировалось Kemet Вторник, 10 Октябрь, 2017 16:17, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 15:33 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Что с вами со всеми?
Будто в палату для душевнобольных заглянул.
Один другого краше. По существу ни слова.
Одно говно во все стороны.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 16:22 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Я тебе сказал по существу:
1) по моему мнению, динамические интерфейсы в Оберонах не нужны. И написал почему.
2) ты путаешь динамическую типизацию с полиморфизмом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 16:30 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1133
Откуда: СССР v2.0 rc 1
Кхм... Редкий случай, когда я согласен с Кеметом)))
Кемет, у тебя всё в порядке?))

Боря, ну а чего ты ожидал? Ты предлагаешь штуку, которая тяжела в поддержке, поломает кучу всего. Нет, если хочешь делай. Но это начало дороги в ад.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 16:54 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Kemet писал(а):
Я тебе сказал по существу:
1) по моему мнению, динамические интерфейсы в Оберонах не нужны. И написал почему.
2) ты путаешь динамическую типизацию с полиморфизмом.


1) Принято
2) Я ничего не могу тут путать, ибо не мыслю в этих категориях.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 17:04 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
prospero78 писал(а):
Боря, ну а чего ты ожидал?


Я получил ровно то, что ожидал.

ps https://en.wikipedia.org/wiki/Type_syst ... nformation


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Октябрь, 2017 23:33 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
albobin писал(а):
Опять же Франц, stand-alone messages (в Lagoonа) и всё остальное, предотвращают семантические конфликты.
http://citeseerx.ist.psu.edu/viewdoc/do ... 1&type=pdf
Это опять к тому, что полезно поискать о чём уже подумано было :)


Почитал. Говорится вроде все то же самое.

Я правильно понял, что они конфликты разруливают тупо явным втыканием в интерфейс указателей на процедуры?
Т.е. типа есть интерфейс:
Код:
Foo
    Read()
    Write()
end


А в нашем объекте говорим:
Object имплементирует Foo таким образом:
Код:
Foo.Read = Object.Proc1
Foo.Write = Object.Proc2


Я просто слабо понял суть мессаг у них.

ps Вот в данном конкретном случае я бы как раз поступил типа как info21 предлагал. Завернул бы свой объект в другой объект и все. И ничего бы не городил в языке. Ради разрешения редкого конфликта немного телодвижений меня не пугают.
pps Но я папир не до конца понял. Все же я английский сильно плохо знаю. А скрупулезно переводить лень.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 11 Октябрь, 2017 10:56 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 700
Откуда: Псков
У Франца с привлечёнными лицами не один этот "папир" вокруг и около 'Lagoon'ы написан, некоторые гуглятся,яндексятся , а вот по самой 'Lagoon'е не очень.
Если повезёт наткнутся на текст "The Programming Language Lagoona - A Fresh Look at Object-Orientation", то там идеи изложены на Оберон-базе.
Я сам не эксперт, не берусь перевирать. Но как-то примерно так:
Вводятся два "взгляда" на объекты, первый - место в иерархии типов, второй - принадлежность к неким Интерфейсам (И.),определяющее поведение объекта.
Месседжи (Мес.) вводятся на уровне модуля как самостоятельная сущность, вроде абстрактной операции. Они при определении не привязанны ни к каким типам.
(И.) группируют (Мес.). (И.) - это тоже типы. Вводятся Объекты (О.) на базе Рекордов и с принадлежностью к (И.) Методы (Мет.) прибиты к (О.) и реализуют реакцию на (Мес.) Если (О.) принадлежит к некому (И.), то должны быть все (Мет.), реализующие реакции на все (Мес.) данного (И.) . Это статически контролируется компилятором. В принципе любой (Мес.) можно послать любому (О.). Если у (О.) нет соответствующего (Мет.), то (Мес.) игнорируется, но есть еще механизм перенаправления (Мес.) другим (О.) и дефолтный (Мет.) - реакция на всё непонятное.
Переменные интерфейсного типа могут "принимать" (О.) любых типов (из разных мест иерархии типов) , но принадлежащих данному интерфейсу. Это - одна из "фишек" подхода.
Вообщем, лучше читать оригинал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 11 Октябрь, 2017 11:03 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Спасибо. Немного яснее стало.
Хотя я примерно на том же уровне понял )

Но я не понял для чего это все? Без всякого сарказма это выглядит сложновато и для понимания и для реализации.

Другими словами я не вижу чем это лучше того же Go


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 11 Октябрь, 2017 11:19 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 700
Откуда: Псков
Всё ради делания больших систем проще, легче и безопаснее. :)
Получилось или нет, долбит ли автор эту тему в настоящее время, - не знаю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 11 Октябрь, 2017 22:21 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Все же я зря стал использовать собственный термин "утиные интерфейсы"
Сейчас погуглил по интернетам... Думаю что наиболее правильно использовать термин "структурная типизация"

https://en.wikipedia.org/wiki/Structural_type_system


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 08:00 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Структурная типизация в Модуле-3, не нужно путать.
Но в М3 есть и типизация по имени, но сбоку.
И интерфейсы там есть )


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 10:55 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Поделись, плиз, ссылкой про интерфейсы модулы 3. Чет с ходу не могу нагуглить


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 13:05 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Интерфейсы там обычные,но у объекта может быть несколько интерфейсов, они распологаются в разных модулях. Когда определили интерфесы объекта, определяешь реализацию, она, кстати, тоже по разным модулям может быть раскидана, и вот ту каке дело, в м3 методы могут быть назначены не только при компиляции, но и в рантайме - главное, чтобы сигнатура процедуры была совместима с объявленной в интерфейсе. Да, кстати, методы там 0- простые процедуры, у которых первый параметр - тип объекта. и их можно вызывать и кка процедуры и как методы.
Получается, что интрефейсы статичны для объекта, но методы могут динамически меняться.
Полистай доки про модули-интерфейсы и про ROOT, REVEAL


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 13:28 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Описание на Lagoon смахивает )
Цитата:
методы могут динамически меняться

Это для каких целей? Тоже конфликты разруливать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 14:35 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
ilovb писал(а):
Описание на Lagoon смахивает )
Цитата:
методы могут динамически меняться

Это для каких целей? Тоже конфликты разруливать?
Какие конфликты? Нет, например при создании из потока контрола, или еще чего, мутация там, изменяем поведение объекта на лету, в зависимости от всякого разного. в Активном Обероне что-то такое можно сделать используя делегаты, но это не то, делегат это просто процедурная переменная в объекте и записи, а не метод. Но делегат может содержать как процедуру так и метод, но доступа к SELF там в общем случае нет.
А в М3 это настоящий метод, меняется запись в таблице методов - там методы как в Оберонах, все виртуальные.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 14:59 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1549
Конфликт, например, такой:
У тебя есть два интерфейса с методом Read(), но реализация должна быть разной.


add:

Эммм... а там точно есть интерфейсы?
Потому как я вижу чет только интерфейсы модулей. Но это как я понимаю совершенно из другой оперы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 16:03 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
ilovb писал(а):
Эммм... а там точно есть интерфейсы?
Потому как я вижу чет только интерфейсы модулей. Но это как я понимаю совершенно из другой оперы.
Ну это другие интерфейсы да )
это интерфейсы объекта, они по разным модулям раскиданы могут быть, и эти интерфейсы же можно реализовать у других объектов.
Там же может быть интерфейс к ROOT, а это ваще все объекты, просто указатель.
а в реализации ты уточняешь


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 16:06 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Это то, что в Шарпе заимстdовав из М3 назвали Partial Types


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 12 Октябрь, 2017 16:12 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
ilovb писал(а):
Конфликт, например, такой:
У тебя есть два интерфейса с методом Read(), но реализация должна быть разной.
Два метода с одинаковым именем в м3 не выйдет, вот два метода с одной и той же реализацией это да - просто при реализации объекта укажи одну и ту же процедуру.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB