> man operating_systems
Переход на страницу  1 [2] 3
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
brasset
Понедельник 18.07.2005 20:30
ID пользователя #198
Зарегистрирован: Среда 02.02.2005 13:17
Местонахождение: Моск. обл. г.Дмитров
Сообщений: 45
captain cobalt написал(а) ...

Dreamer написал(а) ...
объекты хранятся не в программе, а непосредственно в операционной системе.

Объекты - это сущности, которые храняться в памяти, у которых можно вызывать методы, которые исполняет процессор.
Dreamer написал(а) ...
Есть только один язык - Си (без плюсов).

Будь пр0клято то место, в котором есть только один этот язык.


Люди вы чего? Объекты это никак не сущьности, которые хранятся в памяти. В Операционной Системе (да и программе) формализованы классы объектов, а уж экземпляры данных классов могут находится и вне ее. Например, физически на другой машине (В другом экземпляре ОС ), даже с не ОО ОС.
Сущьность - есть понятие ложное, которое потом логически приведет вас к путанице.
Наверх
Alexandoros
Понедельник 18.07.2005 23:06
ID пользователя #329
Зарегистрирован: Среда 01.06.2005 10:01
Местонахождение: Ukraine
Сообщений: 14
ООП есть всего-навсегго реализацией интерфейса. А ОС есть объявлением интерфейса. Как правило,( хотя я не знаю исключений, но все же..,) интерфейс можно реализовать в ЛЮБОЙ КОНЦЕПЦИ ЛЮБОГО ЯЗыКА.
И нефиг тут базарить что тот язык ОО, а тот не ОО. ОС - это правила потроения обработки даных. А чем их обрабатывать, уже личное дело программера.

ПС ДРОН - Каток, вид спереди:) Дарю.

|__^__|
(=)-(=)
<span class='smallblacktext'>[ Редактирование вторник 19.07.2005 00:28 ]</span>
Наверх
Dron
Вторник 19.07.2005 11:06


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Дык я тож самое говорю... ОО - это подход... а язык - может быть более или менее удобен для ОО...

а С++ - давить!!!

{\_ `^}
-------
(о) (о)c++

[ Редактирование вторник 19.07.2005 11:11 ]

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
mzprog
Вторник 19.07.2005 14:43
ID пользователя #306
Зарегистрирован: Четверг 05.05.2005 10:16
Сообщений: 23
написал(а) ...
Даже если использовать C++, то все равно, как работать с объектом? Объект-то хранится непосредственно в системе, и в процессе компиляции компилятор о нем ровным счетом ничего не знает.


Вот так бы я сделал на C++:

<div class='codec'> class CMyClass
{
...
public:
void PutToOS();
void GetFromOS();
...
};

...
//Положить объект в OS при нажатии на кнопку Button1
CMyClass *MyObject = new CMyClass();
MyObject->PutToOS();
...
//Достать объект из OS при нажатии на кнопку Button2
CMyClass *MyObject = new CMyClass();
MyObject->GetFromOS();
...
</div>
Наверх
Сайт
Freeman
Среда 20.07.2005 03:24
ID пользователя #3
Зарегистрирован: Четверг 01.07.2004 14:57
Сообщений: 207
Dreamer написал(а) ...
На каком языке не была бы написана ОС, обычный способ доступа к объекту (т.е. класс.метод или класс.переменная) сделать невозможно, т.к. объекты хранятся не в программе, а непосредственно в операционной системе.

Они опять в дебри ушли. Есть простейший пример с очень глубоким смыслом. Вот ты писал на Дельфи. А знаешь, например, как читается DFM? Если знаешь, то знаешь и ответ на вопрос, как строить ОС схожих принципах. .NET и Oberon делают почти то же самое, только по-своему.
Наверх
Dreamer
Среда 20.07.2005 10:56

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
2mzprog: ну да, можно и так. Но меня смущает вариант, когда:

a) экземпляр объекта сам находится в системе и попытка обратиться по адресу какой-то процедуры этого экземпляра может закончится для программы попыткой обращения не в свое пространство данных.

б) объект имеет больше процедур, чем read, write и т.д. Где хранить имена этих процедур?

Еще такой вопрос: если создается экземпляр объекта, до должны ли у хозяина этого экземпляра создаваться копии процедур от класса, либо они остаются в системе, а копируются только переменные?

И еще: как осуществлять наследование при создании наследуемого объекта? Есть идеи?

Жизнь на Линуксе есть!
Наверх
Freeman
Среда 20.07.2005 12:48
ID пользователя #3
Зарегистрирован: Четверг 01.07.2004 14:57
Сообщений: 207
Dreamer написал(а) ...

a) экземпляр объекта сам находится в системе и попытка обратиться по адресу какой-то процедуры этого экземпляра может закончится для программы попыткой обращения не в свое пространство данных.

б) объект имеет больше процедур, чем read, write и т.д. Где хранить имена этих процедур?

Еще такой вопрос: если создается экземпляр объекта, до должны ли у хозяина этого экземпляра создаваться копии процедур от класса, либо они остаются в системе, а копируются только переменные?

И еще: как осуществлять наследование при создании наследуемого объекта? Есть идеи?

Все эти вопросы решает Дельфи, и весьма успешно. Если заглянешь на SysBin, можешь лицезреть таблицу сравнения возможностей языков программирования в свете реализации классических парадигм ООП.

Так вот. Несмотря на крикливые возгласы оппонентов, Дельфи как систему программирования нельзя сбрасывать со счетов, ибо она является намного более последовательной в реализации ООП, нежели так нежно любимый всеми Си++. К тому же ты его знаешь, если не путаю.

Задача чтения DFM при всей кажущейся простоте, отвечает практически на все поставленные тобой вопросы. Причем, это есть только в Дельфи, и нет в Си++. Даже в Билдере используется реализация на Дельфи. Поэтому тебе предлагается перейти на следующий уровень. Я бы мог это все популярно объяснить, но хочется, чтобы ты раскопал все самостоятельно, ибо личный опыт - самая надежная штука, если базируется на надежных источниках. Заодно убедишься, что самодокументирующиеся исходники рулят.
Наверх
mzprog
Четверг 21.07.2005 10:20
ID пользователя #306
Зарегистрирован: Четверг 05.05.2005 10:16
Сообщений: 23
написал(а) ...

a) экземпляр объекта сам находится в системе и попытка обратиться по адресу какой-то процедуры этого экземпляра может закончится для программы попыткой обращения не в свое пространство данных.

Значит и не надо к нему обращаться!!!

написал(а) ...

б) объект имеет больше процедур, чем read, write и т.д. Где хранить имена этих процедур?

Вот, например, у меня в MZC/COS будет специальный менеджер классов, который будет хранить всю возможную инфу о них, так называемую RTTI - RunTime Type Info, то есть во время работы программа может у любого своего класса, например, посмотреть список функций этого класса...

написал(а) ...

Еще такой вопрос: если создается экземпляр объекта, до должны ли у хозяина этого экземпляра создаваться копии процедур от класса, либо они остаются в системе, а копируются только переменные?

Естественно, код один, а переменные для каждого объекта разные, в пределах одной программы...

[/quote]
И еще: как осуществлять наследование при создании наследуемого объекта? Есть идеи?[/quote]
Я не понял, ты пишешь компилятор? или ось? Это проблемы компилятора, а не оси...Перейди на С++ и никаких проблем!!!
Наверх
Сайт
Dreamer
Четверг 21.07.2005 12:28

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
> К тому же ты его знаешь, если не путаю.

Знаю Только уже около года не использую.

> Значит и не надо к нему обращаться!!!

Оригинально! Так может выкинуть компьютер и уйти в лес разводить пчел? Например, если объект - это устройство, например винчестер. Других методов обращения к винту нет. Что делать программе, которой необходимо обратиться к винчестеру? Самоуничтожиться? Я бы так не хотел.

> Вот, например, у меня в MZC/COS будет специальный менеджер классов, который будет хранить всю возможную инфу о них, так называемую RTTI

Имена процедур будут храниться в текстовом формате?

> Я не понял, ты пишешь компилятор? или ось? Это проблемы компилятора, а не оси...

Я думаю, что в ОО системе должно быть все средства работы с классами, включая и наследование.

> Перейди на С++ и никаких проблем!!!

Агитация не пройдет

Жизнь на Линуксе есть!
Наверх
sem
Понедельник 01.08.2005 20:54
ID пользователя #76
Зарегистрирован: Вторник 31.08.2004 23:07
Местонахождение: Молдавия
Сообщений: 27
Dreamer написал(а) ...

Как обращаться к объектам? Стандартный Си даже не знает такой конструкции с точками, исключая работу со структурами.

Я думаю, ООП - это не язык, а способ мышления. Вот пример: в некоей системе открываем файл "file.txt", и получаем handle. Вызываем функцию FileRead(handle,...).
на самом деле, мы обратились к объекту handle класса File и вызвали метод Read() этого класса. Ну, а то, что мы используем handle вместо указателя - это лишь способ представления объекта.
Кстати, вызов метода "с точкой" это лишь синтаксис. Ведь вызываемый метод в этом случае даже не является полем структуры. Это отдельная процедура. А привязка к классу - через составное имя процедуры "class@method@type@args"

Ну, а если вам не нравятся handle, а вы хотите использовать указатели, использовать прямое наследование и работать в C++? Так кто же вам мешает написать библиотеку-wrapper(или взять готовую)?
А если писать ОС под один язык - эта ОС долго не проживет. Потому, что каждый пользователь хочет иметь возможность выбора...

<span class='smallblacktext'>[ Редактирование понедельник 01.08.2005 21:01 ]</span>
Наверх
Переход на страницу  1 [2] 3  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.