Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  07:37[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 3766—3757 | 3756—3747 | 3746—3737 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 251


№ 3756   08-04-2007 13:52 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3754« (pepper)
___________________________

Ответ на »сообщение 3746« (Илья Ермаков)
___________________________
если просто запретить менять входные параметры, а результат возвращать как результат. Что мы и имеем в чистых функциональных языках.

А у нас - не чистый функциональный язык с иными подходами.
Если бы да кабы..
Возвращая результат "как результат" будем иметь либо а) оверхед на копирование, если возвращаем структуру данных статически б) либо оверхед на динамику, если будем использовать только динамические структуры.
Запрещая менять входные параметры, теряем возможность полиморфной передачи на изменение расширяемых типов данных. В частности, станет невозможной Generic Bus.

Если на минутку представить, что оберон не идеален,
Идеальность бывает разной. Можно говорить об идеальности как об абсолютном превосходстве - такие разговоры бессмысленны, и, как можно заметить, мы их никогда не вели.
А можно говорить об "идеальности в себе" как доведенности некоторого инструмента до той "вылизанности", когда особо нечего ни прибавить, ни убавить... Как идеально отлаженный хронометр, в который нечего лезть с молотком и зубилом... И добавлять в хронометр шестерни от типовых "будильников" мейнстрима тоже вряд ли стоит.

А сарказм Ваш неуместен. Как показывают многие примеры, Оберон очень хорош для системного программирования. Заглядывая в будущее, рискну сказать, что из на сегодня существующих подходов к системному программированию высокоуровневый подход Оберона - самый перспективный (время покажет, прав я или нет). И неспроста Керниган свой Лимбо произвел от Модулы и Оберона, а не от потомков своего раннего детища...


№ 3755   08-04-2007 13:36 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3747« (AVC)
___________________________
>>>И операторы можно перегружать, и запись возвращать в качестве результата.
>>>Это все еще Оберон?
Обычный ETH Oberon тоже такие фокусы умеет. И  OBJECT понимает.


№ 3754   Удалено модератором


№ 3753   08-04-2007 10:49 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3747« (AVC)
___________________________

Я прошу прощения.
Разбираясь с письмом читателя GeniePro, я ускакал за зайцами в красных шапочках. :)
Покрутился в WinAos, зашел в IDE, быстро набросал некий код и откомпилировал.
MODULE AlexTest;

....

END AlexTest.

AlexTest.Test

Это "работает", но вызывает столько вопросов...
И операторы можно перегружать, и запись возвращать в качестве результата.
Это все еще Оберон?
Как вы полагаете?
(Нет, я догадываюсь, что это влияние "научного" Оберона X, но речь о принципах. :) )


Перегрузки операторов нет в определении Активного Оберона. Похоже, компилятор поддерживает по умолчанию и расширение XSC. IDE ведёт некоторый предварительный анализ исходников, возможно и определяет автоматом какой компилятор вызвать. Но это предположения, нужно смотреть...


№ 3752   08-04-2007 09:39 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3751« (Geniepro)
___________________________

Ответ на »сообщение 3746« (Илья Ермаков)
___________________________

Процедуры же возвращают результат через VAR(OUT) параметры. И не надо кричать об их "нечистоте" - их смысл кардинально отличается от смысла функциий.

Логично было бы различать процедуры и функции, как в Паскале или Ada.

Тонкий момент. Возможно, что было бы и логично...
В Паскале, однако, дальше слова FUNCTION дело не шло - компилятор не запретит заиметь побочные эффекты и VAR-параметры...


№ 3751   08-04-2007 09:19 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3746« (Илья Ермаков)
___________________________

Процедуры же возвращают результат через VAR(OUT) параметры. И не надо кричать об их "нечистоте" - их смысл кардинально отличается от смысла функциий.

Логично было бы различать процедуры и функции, как в Паскале или Ada.


№ 3750   08-04-2007 08:52 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3747« (AVC)
___________________________

Это "работает", но вызывает столько вопросов...
И операторы можно перегружать, и запись возвращать в качестве результата.
Это все еще Оберон?
Как вы полагаете?
(Нет, я догадываюсь, что это влияние "научного" Оберона X, но речь о принципах. :) )

Мне кажется, многие вещи из Active Oberon надо было оставлять на уровне библиотек...
Такая штука, как перегрузка операторов - это мелочь, ничего не портящая, как ничего и принципиально не добавляющая.
А вот введение в язык понятия OBJECT лично меня сильно раздражает - ломает идеологию.
Явно как и привязка активности к ООП. Привязка эксклюзивности к объекту - это понятно. Но активность/параллельность выполнения не должна быть концептуально завязана на ООП. Активный объект - это всего лишь частный случай активности.
А в более общем случае может быть как активная процедура, так и объект с несколькими активностями...
(Я вот до сих пор не знаю, что делать с Active BlackBox - сделать там модуль Ao псевдомодулем компилятора, или так и оставить в библиотеке... Буду благодарен мнениям).

Вообще говоря, Component Pascal остается гораздо более цельным и "обероновским", чем Active Oberon. Но и в нем кое-что хотелось бы видеть по-другому. В частности, наследование реализации, ООП - это можно было сделать несколько по-другому. Зачем было вводить средства, которые потом приходится рекомендовать не использовать... Зато можно было более явно поддержать конструкции межмодульной коммутации...
Из Active Oberon хотелось бы видеть DEFINITIONs - интерфейсы - и возможность их множественного имплементирования - вместо ABSTRACT RECORDs КП. Короче, получился fork, в каждом ответвлении которого введены и хорошие вещи, и не очень. Пора думать о сведении воедино? :-) С вырезанием нехорошего и объединением хорошего...


№ 3749   08-04-2007 08:42 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3748« (Geniepro)
___________________________

Ответ на »сообщение 3744« (AVC)
___________________________

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

Мда, забавная эта WinAOS. Я пока не понял, чем она отличается от AOS, которая грузится с диска. Вроде файлы можно сохранять на диск?
Интересно, её можно использовать для создания реальных приложений?

Отличается в первую очередь тем, что это разные проекты, над которыми работают разные люди. AOS - модель выполнения языка Active Oberon. Она легла в основу OS Bluebottle (той самой, что "грузится с диска", и не только с диска).
Параллельно другие авторы (точно не помню) развивают AOS поверх Windows и других OS. Поскольку верхушка BlueBottle абстрагирована от железа, то она легко ложится и на WinAOS, и на любой другой AOS.
Однако WinAOS гораздо менее доведена до ума, чем native-вариант. Если BlueBottle можно рассматривать как экспериментальную, но рабочую вещь, пригодную для использования (если нужна "замкнутая" в себе система, например, серверная), то WinAOS пока, ИМХО, только как игрушку, полезную для проб и отработки AO-приложений.
В частности - параллельность в WinAOS во много десятков раз менее эффективна, чем в BlueBottle, поскольку эмулировать модель активных объектов поверх менеджера потоков Винды (который сам по себе весьма посредственен) - ну, сами понимаете... Более того, как я смотрел в предыдущих версиях, для синхронизации используются стандартные семафоры Винды - а это тормоз по определению (семафоры WinAPI предназначены для межпроцессной, а не межпоточной синхронизации)! В Active BlackBox я писал свою реализацию семафоров пользовательского режима, которые при тестировании в некоторых режимах показали параметры, в сотни раз лучшие, чем стандартные.
С графикой та же история - ведь не по голому железу...
Кстати, BlueBottle работает на VESA, не используя никаких современных возможностей видеокарт - при этом рисует прозрачность и эффекты пооперативнее Винды & оболочек Linux-а...


№ 3748   08-04-2007 08:13 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 3744« (AVC)
___________________________

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

Мда, забавная эта WinAOS. Я пока не понял, чем она отличается от AOS, которая грузится с диска. Вроде файлы можно сохранять на диск?
Гоняясь за этими зайцами и скелетами заметил, что нужно немедленно убирать wallpaper, иначе весь интерфейс, все кнопки уменьшаются и ничего не понятно...
Интересно, её можно использовать для создания реальных приложений?


№ 3747   08-04-2007 06:39 Ответить на это сообщение Ответить на это сообщение с цитированием
Я прошу прощения.
Разбираясь с письмом читателя GeniePro, я ускакал за зайцами в красных шапочках. :)
Покрутился в WinAos, зашел в IDE, быстро набросал некий код и откомпилировал.

MODULE AlexTest;

IMPORT Out;

TYPE
Point* = RECORD x, y: REAL END;

PROCEDURE NewPoint(x, y: REAL): Point;
VAR pt: Point;
BEGIN
pt.x := x;
pt.y := y;
RETURN pt
END NewPoint;

PROCEDURE "+" (a, b: Point): Point;
VAR pt: Point;
BEGIN
pt.x := a.x + b.x;
pt.y := a.y + b.y;
RETURN pt
END "+";

PROCEDURE Test* ;
VAR a, b, c: Point;
BEGIN
Out.String("Hello, world!"); Out.Ln;
a := NewPoint(2, 3);
b := NewPoint(5, 7);
c := a + b;
Out.Real(c.x, 0); Out.Real(c.y, 10); Out.Ln
END Test;

END AlexTest.

AlexTest.Test



Это "работает", но вызывает столько вопросов...
И операторы можно перегружать, и запись возвращать в качестве результата.
Это все еще Оберон?
Как вы полагаете?
(Нет, я догадываюсь, что это влияние "научного" Оберона X, но речь о принципах. :) )
 AVC


<<<... | 3766—3757 | 3756—3747 | 3746—3737 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 251


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования