RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > >> эк тебя скрутило... однако при желании и к фортрану оо приделать можно. > > >> правда судя по дельфям/паскалям это оо столько ресурсов жрет > > >> что потеряется сам смысл использования именно фортрана. > > > > > > А скажи-ка мне дружок, знаешь ли ты какой реальный оверхед при реализации вызова метода объекта в так охаеваемом тобой дельфи-паскале? Так вот, это всего один дополнительный указатель (self) передаваемый как первый параметр при вызове метода. > > > > Я однажды проходил программу, написанную на чём-то обьектно-ориентированном, под отладчиком. Не под тем, который с исходниками работает, а под тем, который ассемблерный код показывает. Мрак - это ещё слабо сказано. 60% кода - вложенные друг в друга jump-ы и call-ы вперёд-назад по таблицам методов классов. > > Ну я не знаю, я такого не припомню, хоть и смотрел когда-то ассемблерный код в Turbo Pascal и VP. Там, кстати все весьма прозрачно. Может это и очевидные всем тут вещи, но повторюсь. Вызов обычного метода - прямой call с одним доп. параметром. С виртуальными методами чуть сложнее: есть таблица VMT и она статическая. Вызов виртуального метода - просто переход по адресу из этой таблицы. Адрес достается по индексу. Т.е. оверхед в дополнение к параметру в стеке - загрузка адреса перехода из таблицы. Но ведь и в программе без ОО какое-то ветвление в этом месте должно быть, что бы выполнение от условий зависело. Посему говорить о существенном замедлении я бы не стал. Иное дело C++ со своим множественным наследованием. Там такая простая штука с VMT не проходит. До сих пор не знаю как это у них сделано :( Однако, это все говорит о качестве компилятора, а не структуры языка... > > > > Зато я видел не объектный код когда в функцию передается 20-30 параметров, вот это действительно Ж. > > > > Это можно исправить практикуемым в некоторых кругах методом: "металлической линейкой по рукам". А вот код, генерируемый компилятором, уже не исправить. > > А ты пробовал? И как, помогло? :) Кстати, а какой рецепт, если действительно много параметров? Структура? Так это и есть почти использование ОО (только без виртуальных методов) > > > > НЕТУ в IV явного динамического распределения памяти. Почитайте стандарт. Вот напишите-ка мне древовидную структуру произвольного размера на Фортране IV. > > > > Я лично к фортану равнодушен, но знавал людей, писавших на нём компиляторы и не видевших в этом ничего особенного. > > Да не, я не против Фортрана, ни боже упоси. Я против тезиса "все козлы, кроме Фортрана". Я ведь пытаюсь понять, а что такого людям в Си, скажем не нравится в смысле "идеологии". Почему они считают, что код "непрозрачный", "глюкавый". И пока увидел только один реальный пример: <= и = в if(). Но это же не единственное? Или если это все, то чем же Си так плох? А человек молчит, признаваться не хочет... >
_, _, _, _, _ _ _,_
(_ | / \ |\ | | |_/
, ) | , \ / | \| | | \
~ ~~~ ~ ~ ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.